Metodologi Agile in Glance
Pada awal tahun 2001, tim pengembang software pada sebagian besar perusahaan terjebak pada proses yang terus-menerus bertambah dan berubah dengan cepat. Hal ini menyebabkan sekumpulan ahli untuk bertemu dan merumuskan nilai-nilai serta prinsip-prinsip yang memungkinkan tim pengembang untuk bekerja dengan cepat dan menghadapi perubahan. Sekumpulan orang ini disebut Agile Alliance, yang kemudian mendeklarasikan pernyataan “The Manifesto of the Agile Alliance” dengan nilai-nilai:
- Individuals and interaction over process
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Pengembangan perangkat lunak secara agile merupakan penggabungan antara filosofi dan sekumpulan panduan pengembangan. Filosofinya adalah mengutamakan kepuasan customer dan penyelesaian product secara cepat dan bertahap, dengan tim pengembangan yang kecil dan memiliki motivasi tinggi, serta memperhatikan kesederhanaan. Sedangkan panduan pengembangan menekankan pada penyelesaian produk dibandingkan dengan proses analisa dan perancangan, serta mengharuskan adanya komunikasi yang aktif dan berkelanjutan antara user dan tim pengembang. Filosofi dan panduan pengambangan secara agile kemudia dirumuskan menjadi 12 prinsip agile sebagai berikut:
- Prioritas tertinggi adalah kepuasan customer melalui delivery product yang cepat dan berkala
- Memungkinkan terjadinya perubahan requirement meskipun pada tahap akhir pengembangan software.
- Mengirimkan hasil pengerjaan softwar secara cepat dan berkala, dari range minggu hingga bulan, dengan preferensi skala waktu yang lebih pendek.
- End user dan tim pengembang harus bekerja sama secara rutin dalam project.
- Membangun proyek diantara individu-individu yang termotivasi.
- Metode yang paling efektif dan efisien dalam penyampaian informasi adalah dengan pembicaraan face-to-face
- Software yang dapat digunakan adalah ukuran utama progress yang dicapai
- Proses agile mendukung pengembangan yang berkelanjutan
- Perhatian berkelanjutan pada kualitas teknikal dan perancangan yang baik meningkatan agility
- Kesederhanaan merupakan hal yang penting
- Arsitektur, kebutuhan, dan perancangan terbaik muncul dari tim yang mandiri
- Pada interval regular, tim menunjukkan bagaimana cara menjadi efektif, kemudian mengatur dan menyesuaikan perilaku.
Metodologi agile merupakan pendekatan yang saat ini banyak diterapkan karena tututan kondisi yang terus berubah dan serba cepat. Hal ini menggantikan pendekatan-pendekatan konvensional dan kaku seperti waterfall, dimana semua requirement dari sistem dianalisa diawal dan tidak memungkinkan terjadinya perubahan ditengah siklus pengembangan perangkat lunak. Seperti diilustrasikan pada gambar 2.1, pendekatan waterfall hanya memiliki satu siklus mulai dari perencanaan, analisis, perancangan, pemrograman, pengujian, dan pengiriman sistem. Sedangkan pada metode agile, proses pengembangan perangkat lunak dibagi menjadi beberapa iterasi, dimana satu iterasi merupakan satu siklus waterfall yang disederhanakan. Pada akhir setiap iterasi, produk akan diberikan kepada customer secara bertahap.
Pada praktek penerapan agile, terdapat beberapa model yang dapat digunakan, seperti Extreme Programming (XP), Crystal, Scrum, Agile Unified Process (AUP), atau Dynamic Systems Development Method (DSDM).
References:
- Glenford J. Myers , Corey Sandler, T. B. (2011). The Art of Software Testing, 3rd edition. Wiley.
- Martin, R. C. (2002). Agile Software Development – Principles, Patterns, and Practices. Prentice Hall.