Mengembangkan mobile apps membutuhkan metode dalam mengatur projek. Digunakannya metode ini adalah untuk mencapai hasil akhir dari aplikasi mobile yang sesuai dengan timeline, tidak menghabiskan banyak sumber daya baik tenaga maupun biaya, serta aplikasi yang dapat berfungsi sebagai solusi dari masalah yang sudah didefinisikan di awal.
Dari beberapa metode pengembangan yang umum digunakan, 2 diantaranya adalah Waterfall dan Agile. Waterfall adalah metode pengembangan SDLC yang paling tradisional, sedangkan Agile adalah metode yang dianggap revolusioner dan mengedepankan kecepatan (agility). Mari kita bahas satu per satu metode dalam Software Development Life Cycle ini.
Apa itu Waterfall, Kelebihan dan Kekurangan Metode Waterfall
Metode Waterfall pertama kali diperkenalkan oleh Herbert D. Benington di Symposium on Advanced Programming Method for Digital Computers pada tanggal 29 Juni 1956, pada simposium yang membahas mengenai pengembangan perangkat lunak untuk SAGE (Semi Automatic Ground Environment). Seperti namanya, metode ini dianalogikan layaknya air terjun yang airnya mengalir dari atas, secara berjenjang ke bawah. Software development dengan metode Waterfall dilakukan berjenjang berturut-turut dari satu tahapan ke tahapan selanjutnya, dengan tahapan sebelumnya yang dipastikan sudah diselesaikan terlebih dahulu. Waterfall adalah sebuah metode pengembangan mobile apps yang lebih tradisional dan linear.
Menurut Ian Sommerville, ada 5 tahapan dari metode Waterfall.
Kelima tahapan itu adalah Requirements and Definition, System and Software Design, Implementation and Unit Testing, serta terakhir Operation and Maintenance.
Kelebihan dan kekurangan Waterfall
Kelebihan utama dari Waterfall adalah kita dapat memprediksikan seperti apa aplikasi yang akan kita buat. Hal itu disebabkan dalam metode ini kita akan menentukan hal-hal ini sedari awal :
- Structure aplikasi yang sudah dibakukan sejak awal
- Anggaran biaya yang dapat diprediksi dari awal, oleh karena itu beban biaya akan dapat dipersiapkan dengan lebih baik
- Gambaran kebutuhan sumber daya yang sudah jelas sejak awal
Sedangkan kekurangan dari Waterfall diantaranya adalah
- Sulit mengubah rencana awal pengembangan aplikasi. Jika customer atau user merasa bahwa aplikasi yang dibuat tidak mereka sukai atau tidak sesuai kebutuhan, maka kita harus bersiap memulai pengembangan dari awal.
- Tidak fleksibel. Terutama karena blueprint aplikasi sudah ditentukan di awal, sehingga mengubah bagian tertentu sama saja dengan mengubah banyak aspek.
- Testing harus menunggu aplikasi selesai
Apa itu Agile
Berkebalikan dengan metode Waterfall yang cenderung rigid dan linear, mobile app development dengan Agile mengedepankan fleksibilitas dan proses berkelanjutan yang diulang ulang. Dalam metode Agile, tidak ada requirement pengembangan yang spesifik.
Alasan dari ketiadaan requirement yang spesifik adalah karena Agile mengutamakan fleksibilitas, kolaborasi, dan user insight.
Kelebihan dan kekurangan Agile
Pengembangan aplikasi dengan metode Agile diantaranya adalah
Pengembangan yang fleksibel
Dalam metode Agile, pengembangan aplikasi akan dibagi-bagi menjadi beberapa modul. Tentunya di awal kita harus membuat MVP produk terlebih dahulu. Setelah itu, modul akan dikerjakan umumnya dalam jangka waktu 2 minggu, lalu diluncurkan ke user untuk dievaluasi hasilnya. Jika respon user baik, maka hasil modul tersebut akan dipertahankan. Sedangkan jika kebalikannya, maka akan diperbaiki di pengembangan tahapan sebelumnya. Pada umumnya satu tahap akan memakan waktu pengembangan total 1 bulan dengan rincian produksi 2 minggu, dan 2 minggu selanjutnya untuk insight dan decision making. Satu siklus ini disebut dengan reiteration.
Kualitas aplikasi sesuai kebutuhan user
Setiap modul dikembangkan sesuai dengan insight dari user, sehingga tidak ada fitur yang sia-sia.
Keterlibatan stakeholder dalam tiap tahap pengembangan
Dalam metode Agile, stakeholder perlu turun langsung dalam proses pengembangan, karena ada data kebutuhan user akan langsung didapatkan untuk pengembangan selanjutnya. Keterlibatan stakeholder akan membuat tim memahami visi dan misi pengembangan aplikasi secara lebih baik.
Tentunya ada kekurangan dari metode ini, diantaranya adalah
Biaya dan waktu tidak dapat dibatasi
Kita tidak dapat mematok berapa biaya pasti yang akan dikeluarkan selama tahap pengembangan. Yang bisa dilakukan akan estimasi biaya yang dikeluarkan setiap satu kali sprint (±1 bulan).
Perubahan yang cukup radikal dari waktu ke waktu
Dengan metode ini, semua anggota team harus siap dengan perubahan yang signifikan dari waktu ke waktu. Bisa jadi ketika awal kita mengembangkan dengan fitur A, tetapi harus segera diubah menjadi berlawanan 180°.
Metode ini juga membutuhkan aplikasi MVP untuk dibuat terlebih dahulu, baru setelahnya dikembangkan lagi per modul.
Kapan menggunakan Waterfall atau Agile?
Crocodic berpengalaman selama lebih dari 10 tahun. Kami berulang kali menggunakan kedua metode di atas untuk pengembangan lebih dari 200 aplikasi. Dari pengalaman tersebut, kami menyimpulkan bahwa ada kondisi-kondisi tertentu yang membuat kita dapat memilih salah satu dari kedua metode.
Waterfall dapat dipilih jika kita akan mengembangkan mobile apps di awal dengan mengedepankan fitur-fitur MVP. Waterfall juga cocok jika digunakan pada pengembangan aplikasi dengan tugas-tugas yang familiar. Apabila stakeholder kita cenderung kaku,dengan adanya time limit dan budget yang terbatas, maka metode inilah yang paling disarankan.
Sedangkan Agile, cocok digunakan jika mobile apps yang akan kita kembangkan cenderung fleksibel untuk bisa menangkap kebutuhan utama user. Pengembangan mobile apps akan berubah-ubah, sesuai dengan insight yang didapat setelah modul atau fitur tertentu diluncurkan. Oleh karena itu, jika stakeholder kita menginginkan untuk mengembangkan aplikasi dengan requirement yang belum terlalu jelas, pengembangan proyek dengan metode ini sangat direkomendasikan.
Source
Sommerville, Ian, 2011, Software Engineering (9th Edition). USA, Pearson Education.
BSI
Agile vs Waterfall