Metode Pengembangan Aplikasi Secara Cepat dan Adaptif Menggunakan Agile Software Development


Minggu lalu ketika berdiskusi dengan partner peneliti saya, Putra, kami mendapatkan bahwa metode pengembangan yang kami gunakan sebelumnya, yaitu berbasis spiral development tidak cocok dengan apa yang kami lakukan. Hal ini dikarenakan kami membutuhkan metode pengembangan yang dapat beradaptasi secara cepat sesuai dengan situasi dan kondisi yang ada. Secara tidak sengaja saya menemukan apa yang disebut dengan Agile Software Development ketika sedang mencari bahan penelitian dan saya langsung tertarik dengan metode pengembangan ini karena cocok dengan apa yang tim saya butuhkan.

Agile Software Development
Agile Software Development

Agile Software Development adalah sebuah grup metodologi-metodologi pengembangan software yang berbasis pada pengembangan iteratif dimana keperluan dan solusi pengembangan software berubah terus menerus.  Agile Software Development terdiri dari beberapa model pengembangan seperti SCRUM dan Extreme Programming (XP) yang cukup terkenal di kalangan para pengembang berbasis Agile. Pada Agile, kepuasan pelanggan adalah nomor 1, oleh karena itu Agile menekankan pada komunikasi yang intens dengan pelanggan.

Dokumen-dokumen design awal software pada Agile tidak selengkap metode pengembangan lainnya seperti Waterfall dan Spiral. Sejalan dengan perkembangan software di tiap iterasi pengembangan, design software nantinya akan lengkap dengan sendirinya.

Iterasi pengembangan software pada Agile biasanya maksimal 1 bulan lama pengembangannya dan waktu pengembangan diukur secara mingguan. Jika pada suatu iterasi terjadi kegagalan, design software dapat diubah tanpa memerlukan biaya dan penundaan yang signifikan. Idealnya setiap akhir iterasi, software sudah siap atau setidaknya hampir siap untuk dikirimkan ke pelanggan. Setelah akhir iterasi, tim pengembang mengevaluasi kembali seluruh proyek dan menentukan langkah ke depan.

Fitur-fitur yang diberikan oleh Agile Software Development adalah sebagai berikut:

  1. Iterasi yang cepat dan pengiriman software yang berfungsi secara reguler memastikan kepuasan pelanggan
  2. Perubahan yang telat dapat ditangani dengan mudah dan juga diterima secara terbuka
  3. Perkembangan dinilai berdasarkan implementasi software
  4. Komunikasi pelanggan dan pengguna ditekankan secara bertatap muka
  5. Setiap pertemuan dengan anggota tim dilakukan secara bertatap muka
  6. Setiap anggota tim pengembang adalah orang yang berkomitmen dan bermotivasi tinggi serta kompeten dan dapat dipercaya

Agile, dengan segudang keuntungannya tentu memiliki kekurangan juga, berikut saya jabarkan kelebihan dan kekurangan Agile yang saya temukan:

Kelebihan

  1. Meningkatkan rasio kepuasan pelanggan
  2. Bisa melakukan review pelanggan mengenai software yang dibuat lebih awal
  3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
  4. Besar kerugian baik secara material atau imaterial tidak terlalu besar jika terjadi kegagalan

Kekurangan

  1. Total lama pengembangan menjadi lebih lama
  2. Meningkatkan resiko kesalahan teknis
  3. Proses pengembangan menjadi agak kurang terorganisir

Meskipun memiliki beberapa kekurangan, Agile memiliki banyak kelebihan yang menutupi kekurangan tersebut. Beberapa perusahaan besar seperti Microsoft juga sering menggunakan metode Agile untuk mengembangkan beberapa produk mereka. Mungkin untuk para pembaca Agile Software Development bisa dijadikan salah satu pilihan untuk memilih metode yang tepat untuk mengembangkan sebuah aplikasi

Saat ini saya masih belajar menganai metode Agile, mungkin untuk pembaca yang memiliki ketertarikan di metode Agile ini bisa berdiskusi dengan kami dengan mengisi komen di artikel ini. Kedepan akan saya tulis artikel-artikel lainnya mengenai Agile seperti perbandingan Agile dengan metode lainnya atau penggunaan Agile untuk pengembangan software independen.

Ini ada beberapa bahan bacaan dan podcast yang bisa pembaca baca-baca dan dengar untuk lebih memperdalam apa itu agile dan metodologi-metodologi di dalamnya:

  1. http://refcardz.dzone.com/refcardz/scrum
  2. http://www.infoq.com/minibooks/scrum-xp-from-the-trenches
  3. http://www.infoq.com/minibooks/kanban-scrum-minibook
  4. http://www.infoq.com/minibooks/agile-patterns
  5. Podcast: Apa sih Agile itu?
  6. Podcast: Ngebahas soal Scrum bersama Ifnu Bima

Referensi:
http://www.relativitycorp.com/projectmanagement/article5.html
http://en.wikipedia.org/wiki/Agile_software_development
http://lecturer.ukdw.ac.id/othie/agile_model.pdf