Agile & Its + - Sides




Hai semuanya!
Kali ini saya ingin membahas mengenai Agile, sesuai judul yang saya buat. Metode agile merupakan salah satu dari beberapa metode yang telah digunakan dalam pengembangan sebuah perangkat lunak. Agile, yang mana dalam Bahasa Indonesia berarti tangkas ini adalah jenis pegembangan yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.
Agile is an iterative, team-based approach to development. This approach emphasizes the rapid delivery of an application in complete functional components. Rather than creating tasks and schedules, all time is “time-boxed” into phases called “sprints.” Each sprint has a defined duration (usually in weeks) with a running list of deliverables, planned at the start of the sprint. Deliverables are prioritized by business value as determined by the customer. If all planned work for the sprint cannot be completed, work is reprioritized and the information is used for future sprint planning. The goal of each sprint is to deliver a working, functional product. -- Segue Technologies, Inc.
Ada beberapa hal yang patut digaris bawahi terhadap Agile yaitu bersifat bahwa software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan client (project owner) lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. Selain itu, uniknya Agile pula ialah project owner atau client juga merupakan bagian dari tim pengembang software itu pula.

Tentunya, di PPL ini kami menggunakan metode Agile dalam pengembangan yang dilakukan. Tentunya banyak sekali plus dan minus yang kami rasakan, seperti:

PLUS
- Dikarenakan PO juga merupakan bagian dari tim pembangun software, komunikasi yang terjalin cukup baik dan mengurangi miskomunikasi yang ada dikarenakan setiap anggota pengembang dan PO juga memiliki tanggung jawab akan software
- Menerima perubahan kebutuhan, sekalipun diakhir pengembangan. Ini sangat terasa di Allocateam. Diawal, tentunya kita sudah menyiapkan detail terkait pengembangan yg akan dilakukan. Namun, ditengah-tengah pengembangan tentunya banyak hal yang harus diadaptasi sehingga memerlukan perubahan. Agile memudahkan hal tersebut untuk terjadi.
- Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi
- Testing dilakukan setiap saat
- Meningkatkan kepuasan kepada client

MINUS
- Agile memungkinkan untuk perubahan requirement dari PO sewaktu-waktu. Hal tersebut tentunya kadang membuat lelah, maka dari itu diperlukan komitmen yang besar agar dapat bertahan sampai pengembangan selesai dilakukan
- Agile sulit diimplementasikan dalam proyek yang berskala besar
- Tidak maksimal apabila requirement banyak berubah ditengah-tengah masa pengembangan dan waktu yang diberikan relatif sebentar

Seperti yang tertulis juga pada buku Adopting Agile Development versi 1.0 yang ditulis oleh Segue Technologies, Inc., ada beberapa advantages dan disadvantages dari pemakaian metode agile, yaitu:
ADVANTAGES
- PO memiliki kesempatan yang sering untuk melihat pekerjaan yang disampaikan, dan untuk membuat keputusan dan perubahan terhadap proyek pengembangan disetiap tahap.
- PO mendapatkan rasa kepemilikan yang kuat dengan bekerja secara luas dan langsung dengan tim pengembang terkait pengembangan yang dilakukan
- Agile dapat lebih cepat menghasilkan versi dasar dari perangkat lunak yang dapat dibangun dalam iterasi yang berurutan.
- Pengembangan sering lebih berfokus pada keinginan PO, kemungkinan hasil dari arah yang lebih sering dari sisi PO.

DISADVANTAGES
-Tingkat keterlibatan PO yang sangat tinggi, sementara bagus untuk proyek, namun sebaliknya, dapat menimbulkan masalah bagi beberapa PO yang mungkin tidak memiliki waktu atau minat untuk jenis partisipasi ini.
- Agile bekerja paling baik ketika anggota tim pengembangan berdedikasi penuh waktu untuk proyek, daripada dibagi di antara beberapa proyek.
- Karena kemungkinan seringnya perubahan requirement sesuai keinginan PO, mungkin beberapa item yang di set untuk selesai tidak akan selesai dalam jangka waktu yang ditentukan sebelumnya. Maka Sprint tambahan (di luar yang semula direncanakan) mungkin diperlukan, menambah biaya proyek.
- Sifat iteratif pengembangan Agile dapat menyebabkan refactoring sering jika ruang lingkup penuh dari sistem tidak dipertimbangkan dalam arsitektur awal dan desain. Tanpa refactoring ini, sistem dapat mengalami penurunan kualitas secara keseluruhan. Ini menjadi lebih jelas dalam implementasi berskala lebih besar, atau dengan sistem yang menyertakan tingkat integrasi yang tinggi.


Sekian informasi yang ingin saya sharing mengenai Agile dan sisi baik serta buruknya, semoga bermanfaat bagi kalian semua yang sudah meluangkan waktu untuk membacanya! :)

-xoxo


source:
Adopting Agile Development book version 1.0 by Segue Technologies, Inc.

0 komentar:

Post a Comment