Apa itu Agile Development ?
Agile merupakan model pengembangan jangka pendek yang memerlukan adaptasi cepat dan pengembangan terhadap perubahan dalam bentuk apapun.Ada beberapa hal yang perlu diperhatikan dalam agile
- Interaksi antar personal lebih penting daripada proses dan alat.
- Software yang berfungsi lebih penting daripada dokumentasi yang lengkap
- Kolaborasi dengan klien lebih penting daripada negoisasi kontrak.
- Sikap tanggap lebih penting daripada mengikuti rencana/plan.
Jenis-jenis Agile
1.Extreme Programmning (XP)
2.Adaptive Software Development (ASD)
3.Dynamic Systems Development Method (DSDM)
4.Scrum Methodology.
5.Crystal.
6.Feature Driven Development (FDD)
7.Agile Modeling (AM)
8.Rational Unified Process.
Tujuan Agile
- High-value & working App system, dapat menghasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
- Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner.
- Cost control & value-driven development, mengembangkan perangkat lunak yang sesuai dengan kebutuhan pengguna dan tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
- High-quality production, Kualitas dari perangkat lunak yang dibuat tetap terjaga,meskipun waktu dan biaya lebih sedikit.
- Flexible & risk management, Pertemuan dengan klien untuk melakukan tes perangkat lunak dapat sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
- Collaboration, Tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien untuk ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
- Self-organizing, self-managing teams, Dengan agile, pengembang dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan pengembang perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.
Kelebihan dari agile
- Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
- Pembangunan system dibuat lebih cepat.
- Perubahan dengan cepat ditangani
- Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari agile
- Pengembang harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
- Tidak cocok dalam skala tim yang besar (>20 orang).
Dengan mengesampingkan kelebihan dan kekurangan agile , dapat dikatakan bahwa agile memiliki sifat yang adaptif terhadap suatu perubahan dan interaktif sehingga cocok diterapkan sebagai metode pengembangan software.
Referensi :