Waterfall vs Agile

Sebelum memulai pengembangan sebuah perangkat lunak, tim yang baik akan menentukan metode pengembangan yang sesuai dengan tipe perangkat lunak yang akan dikerjakan. Terdapat 2 model pengembangan perangkat lunak yang populer, yaitu Waterfall & Agile.

Waterfall, terlalu kaku?

Waterfall adalah model pengembangan perangkat lunak yang mengikuti urutan langkah-langkah linier dan terstruktur. Setiap tahap dalam model Waterfall harus diselesaikan sepenuhnya sebelum tahap berikutnya dimulai. Tahap-tahap tersebut biasanya mencakup:

  1. Mengumpulkan dan mendokumentasikan semua kebutuhan sistem.
  2. Merancang arsitektur dan desain sistem berdasarkan kebutuhan yang telah dikumpulkan.
  3. Menulis kode dan mengembangkan perangkat lunak sesuai dengan desain.
  4. Menguji perangkat lunak untuk memastikan bahwa semua fitur berfungsi dengan benar dan sesuai dengan kebutuhan.
  5. Meluncurkan perangkat lunak ke lingkungan produksi.
  6. Memperbaiki bug dan melakukan pembaruan sesuai kebutuhan setelah perangkat lunak diluncurkan.

Model Waterfall dikenal karena pendekatannya yang sistematis dan berurutan, namun sering kali dianggap kaku karena kesulitan dalam mengakomodasi perubahan pada tahap-tahap sebelumnya setelah sebuah tahap selesai.

Model waterfall paling efektif digunakan dalam proyek di mana persyaratan jelas dan tidak berubah secara signifikan.

image

Banyak orang beranggapan bahwa Waterfall itu prosesnya seperti diagram di atas. Dari atas turun ke bawah sehingga muncul anggapan bahwa Waterfall itu kaku. Akan tetapi apabila dirunut kembali ke original paper, proposal metodologi waterfall tersebut disarankan menggunakan diagram sebagai berikut.

Waterfall, complete workflow

Apabila mengacu ke diagram tersebut, dapat terlihat bahwa Waterfall mempunyai prinsip untuk melibatkan customer, menyesuaikan program design dan requirement berdasarkan hasil testing, dan banyak proses review lainnya.

💡
Silahkan baca original paper yang menjadi awal mulai Waterfall di sini https://www.praxisframework.org/files/royce1970.pdf

Agile, solusi untuk "kekakuan" Waterfall?

Agile muncul sebagai respons terhadap keterbatasan implementasi model pengembangan perangkat lunak tradisional seperti Waterfall, yang dianggap terlalu kaku dan tidak fleksibel dalam menghadapi perubahan dan ketidakpastian. Agile dimulai dari perancangan Agile Manifesto.

Agile Manifesto adalah sebuah dokumen yang dirumuskan pada tahun 2001 oleh sekelompok pengembang perangkat lunak yang merasa bahwa pendekatan tradisional dalam pengembangan perangkat lunak terlalu kaku dan tidak efektif dalam menghadapi perubahan yang cepat. Kelompok ini, yang terdiri dari 17 ahli dalam pengembangan perangkat lunak (Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming, dll) berkumpul di Snowbird ski resort, Utah, untuk membahas cara-cara baru dalam mengelola proyek perangkat lunak. Hasil dari pertemuan ini adalah Agile Manifesto, yang menekankan empat nilai inti dan dua belas prinsip yang bertujuan untuk meningkatkan fleksibilitas, kolaborasi, dan efisiensi dalam pengembangan perangkat lunak.

  1. Individu dan Interaksi lebih diutamakan daripada proses dan alat.
  2. Perangkat Lunak yang Berfungsi lebih diutamakan daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan Pelanggan lebih diutamakan daripada negosiasi kontrak.
  4. Respon Terhadap Perubahan lebih diutamakan daripada mengikuti rencana yang kaku.

Keempat nilai ini menekankan pentingnya fleksibilitas, kolaborasi, dan respons cepat terhadap perubahan dalam pengembangan perangkat lunak. Mereka dirancang untuk memandu tim dalam menerapkan pendekatan Agile yang efektif dan adaptif.

Kelebihan dari Agile adalah kemampuannya untuk meningkatkan fleksibilitas dan responsivitas terhadap perubahan, yang sangat penting dalam lingkungan pengembangan perangkat lunak yang dinamis.

Agile juga memfasilitasi kolaborasi yang lebih baik dan memastikan bahwa produk yang dihasilkan lebih sesuai dengan kebutuhan pengguna. Namun, Agile juga memiliki tantangan, seperti memerlukan komitmen yang tinggi dari seluruh anggota tim dan pemangku kepentingan, serta dapat menjadi sulit untuk diimplementasikan dalam organisasi dengan struktur yang sangat hierarkis.

💡
Baca agile manifesto di sini https://agilemanifesto.org/

Apakah Agile selalu lebih baik dari Waterfall?

Tergantung.

Dalam sebuah post di sosial media, salah satu pencetus Agile memberikan informasi mengenai kapan Agile sebaiknya digunakan. Ada beberapa kriteria yang sebaiknya dipenuhi oleh Customer, Manager & Team untuk memastikan Agile dapat diadopsi dengan baik, di antaranya:

☑️ Apabila tim anda dapat dengan mudah berdiskusi dan melibatkan customer untuk setiap tahap pengembangan sistem.

☑️ Apabila pihak pihak terkait (sponsor, developer, user) dapat menjaga tempo kerja secara konsisten tanpa banyak distraksi

☑️ Apabila tim mampu untuk berdiskusi secara rutin dan melakukan evaluasi terhadap proses pengembangan dan hasil dari pengembangan sistem

Allistair Cockburn, https://www.facebook.com/photo?fbid=10156214339084035&set=pcb.10156214284634035