Pengembangan Aplikasi Menggunakan Web Service & Framework Laravel

Hallo kreatif readers..
Di era pengembangan aplikasi sekarang, web services menjadi sangat populer karena kemampuannya dalam mengintegrasikan aplikasi-aplikasi yang berbeda platform menggunakan internet. Sehingga harus dipastikan informasi yang dialirkan dalam keadaan aman.

Nah, kali ini akan dibahas mengenai pengembangan aplikasi menggunakan web service & framework laravel..
Kenapa sih menggunakan web service? 
Karena web services memiliki web protokol (HTTP) yang mampu mengintegrasikan aplikasi yang berbeda platform dengan lebih sederhana. Web services juga memiliki interface berupa web API (Application Programming Interface) untuk mengakses aplikasi yang mengimplementasikan layanan web services.
Kenapa menggunakan framework laravel?
Laravel merupakan developments tool framework yang cocok karena Laravel memiliki waktu eksekusi yang sedikit sehingga website memiliki proses loading yang cepat.

Berikut ini adalah beberapa jenis web service yang umum digunakan, terutama yang dapat mendukung integrasi dan komunikasi antar aplikasi.
web-service

  1. SOAP (Simple Object Access Protocol)
    SOAP adalah protokol komunikasi yang menggunakan XML untuk pertukaran informasi antara sistem yang berbeda. Biasanya digunakan dalam lingkungan perusahaan dan aplikasi yang membutuhkan keamanan dan keandalan tinggi. SOAP juga mendukung metode panggilan jarak jauh (remote procedure call) dengan menggunakan WSDL (Web Services Description Language) untuk mendefinisikan struktur pesan.
    Contohnya:
    a. Aplikasi Enterprise Resource Planning (ERP)
    b. Sistem Manajemen Pelanggan (CRM)
  2. REST (Representational State Transfer)
    REST merupakan gaya arsitektur untuk sistem terdistribusi yang menggunakan HTTP seperti (GET, POST, PUT, DELETE) untuk mengakses, memanipulasi data, serta komunikasi antara klien dan server. REST biasanya digunakan dalam aplikasi web modern dan layanan yang dapat diskalakan karena lebih ringan dan sederhana dibandingkan SOAP.
    Contohnya:
    a. Aplikasi E-Commerce (melacak pesanan, transaksi, dll)
    b. Aplikasi M-Banking (transfer, cek saldo, dll)
    c. Aplikasi Pemesanan Tiket (Booking.com atau Expedia)
  3. JSON-RPC
    JSON-RPC adalah format pertukaran data/informasi yang ringan, mudah dibaca dan ditulis, serta mudah diterjemahkan dan dibuat (generate). JSON (JavaScript Object Notation) menggunakan format yang merupakan bagian dari Bahasa Pemrograman JavaScript untuk pertukaran informasi antara klien dan server. JSON-RPC serupa dengan SOAP, tetapi lebih mudah diimplementasikan dan lebih efisien dalam penggunaan sumber daya karena menggunakan format JSON yang lebih ringan.
    Contohnya:
    a. Aplikasi Keuangan (platform perdagangan mata uang kripto)
    b. Aplikasi Permainan (untuk menangani aksi pemain secara dinamis)
  4. WebSocket
    WebSocket merupakan protokol komunikasi dua arah yang memungkinkan komunikasi real-time antara klien dan server. Biasanya digunakan untuk aplikasi yang memerlukan komunikasi real-time seperti permainan online, obrolan, atau pembaruan data real-time.
    Contohnya:
    a. Aplikasi Sosial Media (Twitter, Facebook)
    b. Aplikasi Chat Real-Time (Slack, Discord)

Kesimpulan
Web service dapat mempermudah dalam proses integrasi data/informasi yang dapat dilakukan secara terpusat. Selain itu, penggunaan framework Laravel juga bermanfaat karena membuat sistem memiliki peforma yang cepat dalam memproses data serta ringan untuk dijalankan.

Referensi:
[1] Manes, Anne T. (2003). Web Services: A Manager Guide. Pearson Education, Inc: Boston USA.
[2] Ramos Somya, Tan Michelle Esmeralda Nathanael. (2019). Pengembangan Sistem Informasi Pelatihan Berbasis Web Menggunakan Teknologi Web Service dan Framework Laravel. Jurnal TECHNO Nusa Mandiri Vol. 16.
[3] Das, R., dan Saikia, L. P. (2016). NComparison of Procedural PHP with Codeigniter and Laravel Frameworko Title. International Journal of Current Trends in Engineering & Research (IJCTER), 2(6), 42–48.

Laravel Eloquent ORM

Hallo kreatif readers..
Di era pengembangan aplikasi sekarang banyak yang menggunakan Laravel. Dengan kerangka kerja Laravel, anda memiliki akses ke Eloquent ORM yang merupakan salah satu fitur penting untuk mengatasi berbagai tantangan.

Apa sih Eloquent ORM?
Eloquent ORM adalah sistem ORM (Object-Relational Mapping) yang terdapat di dalam framework PHP Laravel, yang memungkinkan pengembang untuk berinteraksi dengan basis data menggunakan objek dan kelas daripada menulis query SQL secara langsung. Eloquent menyediakan antarmuka yang ekspresif dan intuitif untuk mengelola data dalam basis data menggunakan model PHP.

Beberapa fitur utama dari Eloquent ORM

  • Model: Eloquent dapat merepresentasikan tabel dalam basis data. Pengembang dapat menentukan relasi antara model, seperti one-to-one, one-to-many, dan many-to-many.
  • Query Builder: untuk membangun query basis data dengan sintaks yang ekspresif dan mudah dipahami. Ini memungkinkan pengembang untuk menulis query kompleks tanpa perlu menulis SQL mentah.
  • Eloquent Collections: Hasil query dikembalikan dalam bentuk koleksi yang merupakan objek terstruktur yang dapat diiterasi dan dimanipulasi dengan mudah.
  • Soft Deletes: memungkinkan penghapusan data dengan menandai data yang dihapus daripada menghapusnya secara permanen dari basis data.
  • Event System: memungkinkan pengembang untuk menetapkan tindakan sebelum atau sesudah operasi dasar pada model, seperti menyimpan, menghapus, atau memperbarui.

Penggunaan Eloquent ORM di Laravel
laravel-eloquent-2-1

  1. Pastikan sudah menginstal Laravel dan mengonfigurasi proyek. Jika belum melakukannya, Anda dapat mengikuti panduan instalasi resmi Laravel di (https://laravel.com/docs/10.x/installation).
  2. Lakukan pembuatan model yang akan mewakili tabel dalam basis data. Anda juga perlu membuat migrasi untuk tabel tersebut. Berikut cara melakukannya:
    #Membuat Model
    php artisan make:model Article
    
    #Membuat Migrasi
    php artisan make:migration create_articles_table

    Selanjutnya dapat mengedit file migrasi yang baru dibuat dan menentukan skema tabel. Kemudian jalankan migrasi untuk membuat tabel:

    php artisan make:model Article

Salah satu kekuatan terbesar Laravel Eloquent adalah kemampuannya untuk menangani relasi antar tabel, berikut ini merupakan jenis relasi yang dapat di definisikan dalam model Eloquent:

  • Relasi BelongsTo
    Misalnya, jika setiap artikel “memiliki” satu penulis:
class Article extends Model {
 public function author() {
  return $this->belongsTo(User::class, 'user_id');
 }
}
  • Relasi HasOne
    Misalnya, jika anda ingin menetapkan bahwa setiap pengguna “memiliki” satu profil:
class User extends Model {
 public function profile() {
  return $this->hasOne(Profile::class);
 }
}
  • Relasi HasMany
    Misalnya, hubungan antara pengguna dan komentar. Setiap pengguna dapat memiliki banyak komentar:
class User extends Model {
 public function comments() {
  return $this->hasMany(Comment::class);
 }
}
  • Relasi BelongsToMany
    Misalnya, pengguna dan peran. Diman, setiap pengguna nantinya bisa mempunyai banyak peran dan setiap peran dapat dimiliki oleh banyak pengguna:
class User extends Model {
 public function roles() {
  return $this->belongsToMany(Role::class);
 }
}

Kesimpulan
Eloquent sangat membantu dalam pengelolaan basis data dengan mudah dan efisien. Dengan memahami konsep dasar, relasi, pengoptimalan query, dan fitur-fitur terbaru dalam Laravel. Anda akan menjadi pengembang yang lebih produktif dan terampil dalam mengelola data untuk proyek PHP Laravel.

Referensi
[1] Febryan Akhdani dan Danur Wijayanto, 2022, Comparison of Eloquent ORM with Query Builder in Work Management System, Faculty of Science and Technology, Universitas Aisyiyah Yogyakarta Indonesia.
[2] M. Mahdi Maulana Lubis, Tommy, Divi Handoko, Nur Wulan, 2023, Analisis Implementasi Laravel 9 pada Website E-Book Dalam Mengatasi N+1 Problem serta Penyerangan Csrf dan Xss, Prodi Teknik Informatika Universitas Harapan Medan.
[3] Laravel Eloquent ORM 

PHPUnit Testing pada Laravel

1200px-phpunit_logo-svg_-1024x413

Hallo kreatif reader, pada kesempatan kali ini aku mau sharing dari artikel yang udah aku baca..

Apa sih itu PHPUnit?
PHPUnit adalah kerangka pengujian (testing framework) untuk bahasa pemrograman PHP yang bertujuan untuk memastikan bahwa setiap bagian kecil dari program berfungsi sebagaimana mestinya. Dengan menggunakan PHPUnit, developer PHP dapat meningkatkan kualitas software dengan mengidentifikasi dan memperbaiki bug lebih awal dalam siklus pengembangan.

Adapun tahapan-tahapan yang dilakukan dalam automated testing menggunakan PHPUnit adalah sebagai berikut:

1. Instalasi software testing menggunakan PHPUnit yang terintegrasi dengan framework laravel untuk pengembangan aplikasi. Ini dapat dilakukan menggunakan Composer. Sebelumnya pastikan Composer telah diinstal, kemudian buka terminal dan eksekusi perintah berikut:

composer require --dev phpunit/phpunit ^9.6

2. Menuliskan kode pengujian pada PHPUnit dengan nama file pengujian (misalnya: MyMathTest.php) untuk menguji fitur yang telah ditentukan sesuai dengan kebutuhan output yang diharapkan. Berikut contoh kode pengujian pada PHPUnit:

// File: MyMathTest.php

use PHPUnit\Framework\TestCase;

class MyMathTest extends TestCase {
 public function testAdd() {
 $math = new MyMath();
 $result = $math->add(3, 5);
 $this->assertEquals(8, $result);
 }

 public function testSubtract() {
 $math = new MyMath();
 $result = $math->subtract(8, 3);
 $this->assertEquals(5, $result);
 }
}

3. Menjalankan PHPUnit untuk mengetahui hasil pengujian (lulus atau tidak), lakukan perintah berikut melalui terminal dari direktori proyek:

vendor/bin/phpunit MyMathTest.php

Jika memiliki banyak file pengujian, dapat menjalankan semua pengujian dengan perintah berikut:

vendor/bin/phpunit

4. Jika fitur yang diuji lulus, status hasil pengujian menjadi “passed”.
5. Jika fitur yang diuji tidak lulus, maka PHPUnit akan menampilkan pesan error.
Catatan: untuk mempermudah deteksi dan eksekusi pengujian oleh PHPUnit, sebaiknya developer memberikan nama file pengujian dengan format “nama class” dan akhiran “.php”

Berikut ini adalah beberapa fitur PHPUnit dengan keunggulannya:
1. Pengujian Unit Otomatis: Fitur ini membantu dalam mendeteksi kesalahan dan memastikan bahwa perubahan kode tidak merusak fungsionalitas yang ada.
2. Pelaporan Hasil: PHPUnit memberikan laporan hasil pengujian yang jelas dan terstruktur. Ini membantu developer untuk dengan cepat mengidentifikasi masalah dan memperbaikinya.
3. Pengujian Fungsionalitas dan Integrasi: PHPUnit juga mendukung pengujian fungsionalitas dan integrasi, untuk menguji sejauh mana berbagai komponen bekerja bersama.
4. Kemampuan Pengujian Paralel: PHPUnit mendukung pengujian paralel, yang dapat menjalankan beberapa unit pengujian secara bersamaan untuk meningkatkan efisiensi.

Sehingga dapat disimpulkan, apabila tim developer sudah menggunakan PHPUnit untuk pengujian otomatis maka dapat mengurangi error dan menghemat waktu dalam pengembangan aplikasi.

Referensi:
[1] Zhang Tao and He Lei, 2018, Design and Implementation of HTTP Interface Automation Test Framework PHPUnit, Department of Informatics, Beijing University of Technology, China, Atlantis Press.
[2] PHPUnit Testing.

PHP Framework Symfony

Hallo kreatif reader, aku mau sedikit sharing nih dari artikel yang udah aku baca..

Apa itu Web Framework?
Web framework atau yang biasa dikenal dengan web application framework merupakan sebuah software yang menyediakan struktur dan alat untuk membangun dan mengembangkan aplikasi web, web service, dan web dinamis.
Salah satu contoh web framework adalah Symfony (PHP).

logoLalu, apa sih Framework Symfony?
Symfony dibangun pada tahun 2005 sesuai dengan standar PSR yang direkomendasikan oleh standar PHP. Symfony adalah framework lengkap yang dirancang untuk mengoptimalkan kode PHP dalam pengembangan aplikasi Web berdasarkan pola Model View Controller (MVC).

Adapun beberapa fitur pada framework symfony:
1. Struktur MVC (Model-View-Controller)
Symfony mengikuti pola desain arsitektur MVC, yang membantu dalam memisahkan logika aplikasi menjadi komponen-komponen yang terpisah, termasuk Model untuk representasi data, View untuk tampilan, dan Controller untuk mengelola logika bisnis.
2. Twig Template Engine
Symfony menggunakan Twig sebagai mesin template resmi. Twig adalah mesin template yang digunakan dalam kerangka kerja Symfony untuk membangun tampilan (views) dalam aplikasi web. Twig dirancang untuk membuat proses penulisan template lebih bersih, aman, dan ekspresif.
3. Doctrine ORM
Symfony menggunakan Doctrine sebagai Object-Relational Mapping (ORM) untuk berinteraksi dengan basis data. Doctrine memudahkan pengembangan basis data dengan memetakan objek PHP ke struktur basis data.
4. Security Component
Symfony memiliki komponen keamanan yang menyediakan alat dan fitur-fitur untuk mengelola otentikasi, otorisasi, dan perlindungan terhadap ancaman keamanan.
5. Routing
Symfony menyediakan sistem routing yang kuat yang memetakan URL ke tindakan-tindakan dalam aplikasi. Ini memungkinkan untuk pengelolaan URL yang fleksibel dan pembuatan tautan antar halaman.

Beberapa contoh aplikasi yang menggunakan framework symfony:
1. Accenture
accenture 2. Trivago
trivago 3. Typeform
typeform

Kesimpulan
Symfony adalah framework lengkap yang dirancang untuk memaksimalkan pengembangan aplikasi berbasis web dengan memperkenalkan beberapa fitur yang dapat diandalkan untuk pemula.

Referensi:
[1] M. Laaziri, K. Benmoussa, S. Khoulji, K. M. Larbi, and A. El Yamami, “A comparative study of laravel and symfony PHP frameworks,” vol. 9, no. 1, pp. 704–712, 2019
[2] Website Symfony

PHP Framework Laravel

laravel

Hallo kreatif reader, aku mau sedikit sharing nih dari buku yang udah aku baca..

Apa itu PHP framework?
PHP framework dapat membantu mempromosikan metode Rapid Application Development (RAD) atau bersifat incremental terutama untuk waktu pengerjaan yang pendek, menghemat waktu, membantu membuat aplikasi lebih stabil dan mengurangi jumlah pengkodean berulang bagi pengembang aplikasi.

Apa sih Laravel itu?
Laravel adalah PHP framework yang mengikuti pola arsitektur Model-View-Controller (MVC). Sejak diluncurkan tahun 2011, laravel banyak digunakan oleh programmer karena mudah dipahami dan dokumentasinya yang lengkap. Framework ini menyediakan beberapa jenis library dan fungsi lain yang bisa memudahkan dalam penulisan baris kode dengan tujuan memperindah website.

12-fitur-laravel-framework-php-untuk-membangun-website-2Fitur-fitur yang ada pada framework laravel adalah sebagai berikut:
1. Blade Template Engine
Laravel menggunakan blade template engine yang memungkinkan programer untuk mendesain layout yang unik, konsisten dan terstruktur selama proses pengembangan. Kelebihannya dapat menggunakan kode PHP biasa di dalam tampilan, kemudian desain tampilan akan tetap di cache sampai adanya modifikasi.
2. Routing
Laravel memiliki sistem routing yang memungkinkan programer mendefinisikan rute URL dengan mudah, menentukan rute untuk mengarahkan permintaan HTTP ke tindakan (controller) yang sesuai. Routing membantu untuk memperluas dan meningkatkan performa aplikasi web.
3. Eloquent ORM
Eloquent adalah sistem ORM (Object-Relational Mapping) yang terintegrasi dengan Laravel. Ini memungkinkan pengembang berinteraksi dengan database menggunakan model PHP, mengurangi kompleksitas dalam bekerja dengan database.
4. Middleware
Middleware dalam laravel memungkinkan pengembang untuk memodifikasi permintaan HTTP sebelum atau setelah mencapai tujuan akhir, memberikan fleksibilitas dalam memanipulasi permintaan.
5. Authentication and Authorization
Laravel menyediakan sistem autentikasi yang terintegrasi dengan kemudahan konfigurasi dan ekstensibilitas, serta fitur otorisasi yang memungkinkan pengembang mengontrol akses ke bagian-bagian tertentu dari aplikasi.
6. Artisan Command-Line Tool
Laravel dilengkapi dengan Artisan, sebuah perintah baris yang memudahkan pengembang dalam menjalankan tugas-tugas rutin seperti migrasi database, pembuatan controller, dan pengelolaan modul.
7. Migrations
Migrations dalam Laravel memungkinkan programmer mengelola struktur basis data menggunakan kode ataupun membuat dan mengubah tabel serta kolom menggunakan file migrasi. Hal ini memungkinkan tim bekerjasama dengan mudah dan menjaga konsistensi skema basis data dalam pengembangan aplikasi.
8. Testing Support
Laravel mendukung pengujian aplikasi menggunakan framework pengujian PHPUnit. Programmer dapat membuat dan menjalankan pengujian dengan mudah menggunakan alat bawaan Laravel.

Contoh laravel untuk e-commerce
working-of-mvc-1024x686-removebg-preview
Pengembang aplikasi dapat mengunakan konsep Model-View-Controller (MVC) untuk mengorganisir logika aplikasi yang diuraikan seperti berikut:
1. Model, dalam framework laravel akan mewakili entitas. Contohnya: produk dan keranjang belanja, kemudian berinteraksi dengan database untuk menyimpan dan mengambil data.
2. Controller, dalam framework laravel akan mengatur aliran informasi antara model dan view, kemudian mengambil data dari model lalu memperbarui tampilan yang relevan ke view.
3. View, dalam framework laravel akan menangani tampilan. Contohnya: halaman daftar produk, halaman detail produk dan halaman keranjang belanja.

Kesimpulan
Dengan kombinasi fitur-fitur yang sudah dijelaskan dan konsep Model-View-Controller (MVC) yang jelas, Laravel menjadi pilihan untuk pengembangan aplikasi web modern. Penggunaan laravel dapat meningkatkan efisiensi, kualitas, keamanan pengembangan aplikasi web, dan juga dokumentasi yang lengkap. Terimakasih..

Software Engineering #Chapter 22 : Project Management – Risk Management

risk_management-removebg-preview

 

Hallo teman-teman Akhdani, aku mau sedikit sharing nih dari buku yang udah aku baca

Apa itu Project Management?
Project Management adalah metode penyelesaian proyek dengan melakukan proses initiating, planning, executing, control and monitoring, hingga closing untuk mencapai output/tujuan yang sudah ditentukan.

Dalam pengelolaan proyek dapat mengikuti panduan dari PMBOK Guide 4th Edition yang salah satu isinya ada Risk Management.

Apa itu Risk Management?

Risk Management adalah salah satu pekerjaan terpenting seorang Project Manager yang memikirkan kemungkinan terjadinya risiko dan konsekuensinya terhadap proyek. Risk Management dapat mengantisipasi risiko yang mungkin mempengaruhi jadwal proyek atau kualitas software yang sedang dikembangkan, kemudian mengambil tindakan untuk menghindari risiko tersebut.

Beberapa tahapan yang dapat dilakukan:

screenshot-2023-10-30-105801

  1. Risk Identification
    Pada tahapan ini tim berkumpul untuk bertukar pikiran mengenai kemungkinan risiko yang terjadi sehingga project manager dapat mengidentifikasi risiko berdasarkan pengalaman pada proyek sebelumnya.
    Sebagai titik awal untuk identifikasi risiko, ada 6 (enam) jenis risiko yang dapat dimasukkan dalam daftar risiko:
    a. Estimation
    b. Organizational
    c. People
    d. Requirements
    e. Technology
    f. Tools
  2. Risk Analysis
    Pada tahapan ini project manager harus mempertimbangkan setiap risiko yang teridentifikasi dan mengambil tindakan penilaian tentang kemungkinan dan keseriusan risiko tersebut. Project manager tidak mungkin membuat penilaian numerik yang tepat mengenai probabilitas dan keseriusan setiap risiko, sehingga dapat dilakukan penilaian dengan cara berikut ini:
    a. Kemungkinan risiko dapat dinilai sebagai tidak signifikan (rendah, sedang, tinggi, atau sangat tinggi).
    b. Dampak risiko dapat dinilai sebagai bencana besar (mengancam kelangsungan hidup proyek), serius (akan menyebabkan penundaan besar), dapat ditoleransi (keterlambatan akan terjadi kontingensi yang diperbolehkan), atau tidak signifikan.
  3. Risk Planning
    Pada tahapan ini project manager mengembangkan strategi untuk mengelola risiko-risiko utama yang mengancam proyek. Untuk setiap risiko, project manager harus memikirkan tindakan yang memungkinkan dalam meminimalisir gangguan terhadap proyek jika masalah yang diidentifikasi dalam risiko tersebut terjadi.
  4. Risk Monitoring
    Pada tahapan ini project manager harus memantau risiko secara teratur di semua tahapan proyek, mempertimbangkan dan mendiskusikan setiap risiko utama secara terpisah, memutuskan apakah risiko tersebut lebih besar atau lebih kecil kemungkinannya untuk timbul dan apakah konsekuensi risiko telah berubah.

Sehingga dapat disimpulkan untuk pengajuan proposal manajemen proyek bagian Risk Management tertulis seperti berikut ini: 

421315

Software Engineering #Chapter 3 – Agile Software Development

blog-removebg-preview

Ringkasan Agile Software Development
Metode agile adalah metode pengembangan berulang yang berfokus pada pengurangan biaya overhead dan proses dokumentasi serta pengiriman perangkat lunak tambahan. Metode ini cocok untuk pengembangan aplikasi dimana persyaratan sistem biasanya berubah dengan cepat, kemudian mengusulkan persyaratan baru dan perubahan untuk disertakan dalam iterasi sistem selanjutnya selama proses pengembangan.

Scrum merupakan metode agile yang telah muncul sebagai metode yang paling banyak digunakan. Proses scrum atau siklus sprint menghasilkan peningkatan produk dari setiap iterasi proses, kemudian dapat dikirimkan ke pelanggan. Titik awal siklus sprint scrum adalah product backlog. Product backlog merupakan daftar dari item seperti fitur produk, dokumen requirement, daftar cerita pengguna, atau deskripsi lain dari software yang akan dikembangkan oleh tim Scrum. Kemudian seluruh tim dilibatkan dalam memilih item mana yang memiliki prioritas tertinggi dan memperkirakan waktu yang dibutuhkan untuk menyelesaikan setiap sprint.

Dalam berbagai kisah sukses Scrum (Schatz and Abdelshafi 2005; Mulder and van Vliet 2008; Bellouiti 2009), hal-hal yang disukai pengguna tentang metode Scrum adalah:

  1. Produk dipecah menjadi serangkaian bagian yang dapat dikelola bersamaan dan dipahami oleh para pemangku kepentingan.
  2. Perubahan requirement saat pengembangan software tidak menghambat kemajuan progress.
  3. Seluruh tim dapat melihat progress pengerjaan produk, sehingga komunikasi dan semangat tim meningkat.
  4. Pelanggan melihat kemajuan progress, deliverable tepat waktu, dan mendapatkan feedback tentang produk dengan jangka waktu yang cukup pendek.
  5. Kepercayaan antara pelanggan dan pengembang terjalin, dimana setiap pelanggan mengharapkan produk berhasil dan sesuai dengan yang diharapkan.

Diketahui sebagian besar software engineering melakukan pemeliharaan dan pengembangan dari sistem yang ada. Berikut adalah keunggulan pada metode agile software development:

  1. Up to date, karena lebih fleksibel dan menerima perubahan berkelanjutan.
  2. Resource yang dibutuhkan tidak terlalu banyak.
  3. Alur kerja lebih singkat dan efisien,  sehingga kinerja tim menjadi lebih stabil.
  4. Interaksi antara client dan developer menjadi lebih intens dan responsif terhadap kebutuhan pengembangan software.

Tetapi bagaimana jika business requirement saat pemeliharaan perangkat lunak melibatkan sistem kustom yang harus diubah, tidak ada konsensus yang jelas mengenai kesesuaiannya?
Tiga jenis masalah dapat terjadi:

  1. Kurangnya dokumentasi produk dari pembangunan perangkat lunak sebelumnya
  2. Menjaga keterlibatan pelanggan dalam proses pengembangan
  3. Tim pengembangan harus dapat memahami perangkat lunak sebelumnya

Kesimpulan
Menurut saya buku ini sangat menarik untuk pembaca yang ingin mengetahui teknik agile development seperti user stories, refactoring, pair programming and test-first development. Pada buku ini pembaca juga dapat memahami perbedaan antara metode agile software development dengan plan-driven development, dan isu-isu pada scaling agile methods.