Agile 101

Fari Qodri Andana
PPLSalemba
Published in
3 min readMar 20, 2019

What is Agile?

Agile adalah sekelompok metodologi pengembangan software yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari developer terhadap perubahan dalam bentuk apapun. Agile berfokus pada kepuasan customer dengan menghasilkan produk siap pakai secara cepat. Pelaksanaan Agile akan dilaksanakan dengan cara memecah produk menjadi beberapa incremental build, dan setiap build akan dibangun pada setiap iterasi. Setiap iterasi terdiri dari 6 tahapan:

  1. Planning
  2. Requirement Analysis
  3. Design
  4. Coding
  5. Unit Testing
  6. UAT

Agile Manifesto

Agile memiliki 4 nilai utama yang sering disebut sebagai Agile Manifesto. Keempat nilai tersebut adalah:

  1. Interaksi dan personel lebih penting daripada proses dan alat — Di dalam Agile, interaksi antar anggota tim sangatlah penting. Karena tanpa adanya interaksi yang baik, maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap — Pada saat melakukan demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak — Kolaborasi yang baik dengan klien saat proses pembuatan software sangatlah penting karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan, diimprovisasi, dan disesuaikan dengan keinginan klien.
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana — Metode Agile berfokus kepada kecepatan respon tim ketika klien menginginkan perubahan saat proses pengembangan software.

Agile Principles

Selain Agile Manifesto, Agile juga memiliki 12 prinsip yang ditetapkan oleh Agile Alliance. Keduabelas prinsip tersebut adalah

  1. Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai dengan cepat dan rutin.
  2. Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat lunak. Proses Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.
  3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan preferensi kepada jangka waktu yang lebih pendek.
  4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang proyek.
  5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan dengan baik.
  6. Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim pengembang perangkat lunak adalah dengan komunikasi secara langsung.
  7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
  8. Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.
  9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik meningkatkan Agility.
  10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat penting.
  11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang dapat mengorganisir diri sendiri.
  12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.

Kelebihan dan Kekurangan

Beberapa kelebihan Agile diantaranya adalah:

  • 82% Menambah produktivitas tim.
  • 77% Menambah kualitas perangkat lunak.
  • 78% Menambah kepuasan klien.
  • 37% Menghemat biaya.

Sedangkan kekurangan dari Agile antara lain :

  • Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
  • Tidak cocok dalam skala tim yang besar (>20 orang).
  • Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

Sumber: Silverburg,A.(2012).Agile Analytics in Higher Education.USA:Phytorion.

Sekian penjelasan mengenai Agile dari saya. Agile merupakan salah satu metodologi pengembangan software yang memiliki banyak kelebihan. Namun Agile belum tentu cocok untuk digunakan di semua pengembangan software. Pilihlah metodologi pengembangan software yang dirasa cocok dengan kondisi tim dan pengembangan software itu sendiri.

--

--