
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.
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 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 :
Sedangkan kekurangan dari Waterfall diantaranya adalah
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.
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.
Setiap modul dikembangkan sesuai dengan insight dari user, sehingga tidak ada fitur yang sia-sia.
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.
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).
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.
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