Saya memulai karir saya sebagai karyawan magang di sebuah perusahaan telekomunikasi besar. Saat itu, proyek pengembangan perangkat lunak akan berlangsung berbulan-bulan, bahkan bertahun-tahun. Manajer proyek memiliki lembar Excel yang panjang dan dasbor yang rumit untuk melacak penyelesaian proyek. Saat itu, setiap manajer proyek menggunakan metode waterfall.
Waterfall merupakan metode klasik dan teruji waktu. Dengan struktur spesifik dan fase yang terdefinisi dengan baik, perusahaan besar dan kecil mengandalkan metode penyelesaian proyek mereka. Waterfall mendominasi industri pengembangan perangkat lunak selama bertahun-tahun.
Kemudian pada tahun 2001, sekelompok 17 pengembang bertemu di Utah untuk bermain ski dan mendiskusikan cara-cara baru untuk mengembangkan perangkat lunak. Mereka tidak lagi ingin menunggu bertahun-tahun untuk menyelesaikan proyek. Sebaliknya, mereka melakukan brainstorming cara untuk mengirimkan produk ke pelanggan lebih cepat. Di akhir pertemuan mereka, mereka menciptakan metodologi baru: agile. Lebih menyukai fleksibilitas dan iterasi yang cepat, metode agile ini menggemparkan dunia. Di kalangan startup khususnya, metode ini dengan cepat mendapatkan popularitas.
Saat ini, kedua metodologi tersebut masih digunakan dan sering dibandingkan. Memiliki pilihan antara dua pendekatan, tim perlu membuat pendekatan yang tepat karena perubahan dapat memakan banyak waktu.
Apa itu metodologi waterfall dan agile ? Apa yang paling cocok untuk tim Anda? Apa pro dan kontranya ? Artikel ini akan membahas perbandingan metodologi waterfall dan agile beserta kelebihan dan kekurangannya masing-masing.
Dasar-dasar Pengembangan Waterfall
Metodologi air terjun atau waterfall adalah pendekatan tradisional untuk pengembangan perangkat lunak. Waterfall memiliki pendekatan yang sangat linier dan terdiri dari fase spesifik dan terdefinisi dengan baik yang diikuti proyek satu demi satu. Setiap fase tergantung pada penyelesaian yang sebelumnya.
Beberapa fase dapat mencakup:
- Analisis
- Pengumpulan kebutuhan bisnis dan fungsional
- Desain
- Pengembangan
- Pengujian (fase ini dapat dibagi lebih lanjut dalam pengujian penerimaan sistem vs pengguna)
- Perbaikan bug
- Distribusi dan pengiriman ke pelanggan
Di antara setiap fase, ada proses peninjauan dan penandatanganan. Proses peninjauan memastikan semua persyaratan terpenuhi. Setelah peninjauan selesai, pemangku kepentingan utama menandatangani dan proyek dapat dilanjutkan. Setiap fase memiliki kiriman utama, tenggat waktu tertentu bersama dengan tanggal akhir yang diharapkan. Akibatnya, fase berikutnya tidak dapat dimulai sampai yang sebelumnya telah selesai dan sign-off telah dilakukan.
Tim cenderung ditentukan terlebih dahulu dan hanya mengerjakan proyek saat giliran mereka. Misalnya, pengembang hanya diperlukan selama fase pengembangan. Selama fase lain, mereka dapat mengerjakan proyek lain.
Dasar-dasar Pengembangan Agile
Agile atau metode cepat menghargai fleksibilitas atas struktur kaku dari metode air terjun. Tujuan utama dari agile adalah untuk memberikan nilai kepada pelanggan sesegera mungkin dan sebagai hasilnya, mengumpulkan umpan balik dengan cepat. Meoted agile memungkinkan tim untuk mengulangi dan mengubah prioritas mereka berdasarkan umpan balik itu.
Akibatnya, proyek dipecah menjadi sprint. Tim dapat memutuskan berapa lama mereka menginginkan sprint, tetapi umumnya mereka cenderung antara satu hingga empat minggu. Setiap sprint dimulai dengan sesi perencanaan. Perusahaan biasanya memiliki backlog item. Backlog ini terdiri dari daftar fitur yang ingin mereka berikan kepada pelanggan mereka. Selama sesi perencanaan ini, tim meninjau backlog untuk memutuskan apa yang ingin mereka berikan di akhir sprint. Setelah pertemuan, tim mulai bekerja.
Untuk menjaga kemajuan tim, diadakan stand-up harian. Selama pertemuan ini, tim berkumpul bersama, dan penanggung jawab memberi setiap orang kesempatan untuk memberikan pembaruan cepat tentang status tugas yang diberikan kepada mereka.
Sprint diakhiri dengan retrospektif di mana anggota tim membahas kemenangan dan area peningkatan mereka. Jika sprint berjalan dengan baik, fitur akan diluncurkan ke pelanggan dan sprint baru dimulai.
Perbandingan Antara Waterfall dan Agile
Sebagai metodologi baru yang mengkilat, banyak yang mungkin berasumsi bahwa agile lebih baik dari pada waterfall. Namun, jawaban sebenarnya adalah salah satunya tidak lebih baik dari yang lain: itu semua tergantung pada metodologi mana yang lebih cocok untuk tim Anda. Banyak faktor yang perlu dipertimbangkan.
Kelebihan Metode Waterfall
Beberapa keunggulan waterfall antara lain:
1. Bekerja dengan baik untuk proyek besar.
Dengan perencanaan yang rinci, waterfall sangat membantu untuk proyek yang kompleks. Metode waterfall biasanya melibatkan bagian-bagian tertentu yang harus dirancang dengan interaksi yang dipetakan. Dengan membuat desain teknis solusi dari awal, masalah dapat diantisipasi dan diselesaikan.
2. Persyaratan yang jelas.
Ini didefinisikan dan didokumentasikan sejak awal. Setiap orang yang terlibat dalam proyek dibuat sadar akan mereka. Jika persyaratan tersebut tidak diharapkan berubah, waterfall bisa menjadi solusi yang bagus.
3. Proses pengembangan yang detail dan hati-hati.
Mengetahui semua hasil, juga lebih mudah bagi pengembang untuk membuat kode dan merencanakan setiap kasus tepi atau situasi rumit. Hal yang sama berlaku untuk tes yang dibuat oleh penguji kualitas.
4. Keterlibatan pelanggan terbatas.
Pelanggan hanya terlibat dalam fase persyaratan dan pengiriman produk akhir, yang memakan waktu lebih sedikit bagi pelanggan Anda.
5. Menetapkan anggaran.
Metodologi waterfall mencakup keseluruhan proyek dari awal. Ini memungkinkan perusahaan menentukan anggaran sejak awal, yang dapat sangat membantu untuk proyek berbasis kontrak.
Kekurangan Metode Waterfall
Disamping mempunyai kelebihan, tentu saja metode waterfall juga memiliki beberapa kekurangan antara lain:
1. Perbaikan arah tujuan sangat sulit.
Tidak jarang persyaratan disalah pahami atau bahkan dilupakan selama tahap persyaratan. Sayangnya, masalah ini seringkali hanya muncul di akhir proyek. Pelanggan kemudian menyadari bahwa produk yang dikirimkan berbeda dengan apa yang diharapkannya.
2. Perubahan yang mahal dalam hal waktu dan uang.
Ini sebagian besar disebabkan oleh proses liniernya yang kaku dan betapa sulitnya mengoreksi arah.
Kelebihan Metode Agile
1. Dapat mengoreksi arah tujuan jauh lebih mudah.
Dengan mengumpulkan umpan balik dari pelanggan dengan cepat, tim dapat menilai apakah mereka memberikan apa yang diharapkan atau tidak. Jika pelanggan tidak puas, tim agile dapat dengan cepat menyesuaikan diri selama sprint berikutnya. Hal ini memungkinkan mereka untuk beradaptasi dan melakukan iterasi bila diperlukan.
2. Tim agile cenderung mengatur diri sendiri dan kolaboratif.
Mereka sering memiliki kontak yang sering dengan pelanggan, dan sebagai hasilnya pengembangan dalam tim yang gesit cenderung sangat berfokus pada pengguna.
Kekurangan Metode Agile
1. Persyaratan tidak terdefinisi dengan baik dan perencanaan longgar.
Karena sifat agile yang iterative, backlog dapat berubah di antara dua sprint. Apakah fitur ditambahkan atau diperbarui, daftar kiriman dapat sering berubah. Jika tim tidak memperhatikan, produk jadi mungkin berbeda dari yang mereka perkirakan.
2. Keterlibatan yang tinggi dari pelanggan.
Tim agile sangat bergantung pada umpan balik dari penggunanya. Sayangnya, tidak semua pengguna memiliki waktu atau tenaga untuk itu.
3. Sprint memiliki irama tertentu.
Tidak seperti waterfall yang memiliki fase dengan jangka waktu yang berbeda, sprint dibatasi oleh waktu. Apakah pekerjaan selesai atau tidak, sprint selesai pada tanggal tertentu dan pekerjaan kadang-kadang harus dibawa atau ditunda ke sprint mendatang.
4. Pengujian yang kurang ketat.
Karena dipecah oleh sprint yang berbeda, jika tim tidak teliti dalam pengujian mereka, lebih banyak bug dapat masuk ke produksi.
5. Fokus tinggi dari tim.
Karena sprint pendek, metodologi agile menuntut fokus dan dedikasi penuh pada proyek dari tim.
Kesimpulan
Memilih metodologi mana yang tepat untuk tim Anda bergantung pada banyak faktor.
Struktur kaku metodologi waterfall dengan perencanaan rinci dan fase yang ditetapkan telah digunakan selama beberapa dekade. Banyak perusahaan besar, khususnya, lebih menyukainya karena waterfall memungkinkan mereka untuk menjangkau seluruh proyek yang dapat berlangsung berbulan-bulan atau bahkan bertahun-tahun.
Memiliki perencanaan yang sangat rinci sejak awal memungkinkan perusahaan merencanakan anggaran dan sumber daya. Ini juga memberi pengembang dan penguji pandangan tentang solusi lengkap yang memungkinkan mereka bekerja lebih efektif. Misalnya, perusahaan yang memiliki banyak proyek berbasis kontrak, katakanlah dengan pemerintah, cenderung lebih memilih metode waterfall.
Agile, di sisi lain, sangat cocok untuk startup yang tidak harus memiliki persyaratan yang ketat dan terdefinisi dengan baik. Mereka mungkin belum memiliki visi spesifik tentang produk mereka dan mungkin perlu menguji. Dengan mengulangi dengan cepat dan sering, mereka dapat mengukur nilai produk mereka dan meningkatkannya.
Dengan mendapatkan umpan balik pelanggan sesegera mungkin, tim yang gesit dapat memperbaiki arah jika diperlukan. Oleh karena itu, metode agile bekerja sangat baik untuk perusahaan kecil dengan tim yang terorganisir sendiri dan berdedikasi yang ingin menguji solusi mereka dengan cepat.
Perusahaan besar telah mulai bereksperimen dengan metodologi agile dengan menciptakan tim tangkas tertentu di tempat kerja. Hanya waktu yang akan menentukan apakah perusahaan-perusahaan itu akan terus condong ke agile atau tetap dengan pendekatan yang lebih hybrid.
Terlepas dari pendekatan mana yang Anda adopsi, pertimbangkan semua faktor yang tercantum—persyaratan, tim, klien—untuk membuat pilihan terbaik bagi tim Anda