Waterfall Difficulties Create Agile Methodology
Pernahkah kamu mendengar kata agile? Di Indonesia sendiri kata berikut populer semenjak bertumbuhnya banyak startup teknologi dan menjadi konsep yang diaplikasikan didalamnya. Agile yang dimaksud sangat berkaitan dengan proses pengembangan produk teknologi informasi. Agile terlahir dari keresahan beberapa orang terhadap metodologi waterfall. Namun apa itu agile ? dan apa hubungannya dengan waterfall ?
Apa itu Waterfall dan Mengapa Beralih Menjadi Agile ?
Waterfall sendiri merupakan metodologi software development tradisional yang proses pembuatannya terjadi secara iteratif dari requirement gathering hingga development. Waterfall dimulai dari request client dan akan dijadikan menjadi plan yang akan menyelesaikan semua fitur pada requirement tersebut menjadi satu proses yang dinamakan fall. Waterfall dianggap tidak efisien dikarenakan terdapat proses lama pada requirement dan jeda panjang ke product delivery. Waterfall juga dianggap tidak fleksible terhadap perubahan karena memaksa untuk mengikuti rencana yang telah ditetapkan. Oleh karena itu keresahan yang dialami menjadi dorongan utama untuk menciptakan dasar agile yang disebut dengan agile manifesto
Apa itu Agile?
Agile merupakan metode untuk pengembangan software yang dirancang oleh 17 orang developer pada tahun 2001. Pada tahun tersebut mereka menciptakan agile manifesto yang terdiri dari 4 poin utama yaitu :
- individual and interaction over processes and tools
- working software over comprehensive documentation
- customer collaboration over contract negotiation
- responding to change over following a plan
Dari ke empat poin tersebut dapat disimpulkan bahwa kecepatan dalam mengembangkan suatu software dan kolaborasi dengan pengguna aplikasi menjadi kunci dalam pengembangan software tersebut. Manifesto yang dibuat memprioritaskan untuk bertindak “agile” atau dalam bahasa indonesia yaitu tangkas dalam setiap situasi.
Dengan menetapkan prioritas dalam pengembangan, deliverable yang diberikan kepada pengguna juga dapat tersampaikan dengan cepat dan hasil yang memuaskan tanpa harus terganggu dengan task lain seperti membuat dokumentasi yang komprehensif. Kecepatan yang menjadi prioritas menjadi alasan mengapa startup indonesia menggunakan metodologi ini untuk dapat bersaing dan memberikan dampak tercepat kepada pengguna.
Terdapat beberapa framework / kerangka kerja yang mendukung agile methodology, berikut diantaranya :
- Scrum
- Scaled Agile Framework
- Lean Software Development
- Kanban
- Extreme Programming
Dalam perkuliahan PPL sendiri, framework yang digunakan adalah scrum yang akan menjadi bahasan utama dalam artikel kali ini.
Scrum sebagai kerangka kerja Agile
Dalam menciptakan software development cycle yang agile, diperlukan suatu framework / kerangka kerja yang mendukung metodologinya, salah satunya adalah scrum. Scrum berfokus untuk membuat tugas yang kompleks menjadi tugas tugas kecil yang akan diselesaikan dalam beberapa sprint yang akan dibuat. Scrum terdiri dari 3 komponen utama yaitu :
- Scrum Master, sebagai sprint planner dan moderator pada rapat
- Product Owner, sebagai penentu nilai bisnis dan keterkaitannya dengan sprint yang akan dijalankan
- Developer, sebagai engineer yang akan menyelesaikan task pada sprint yang dibuat
Tugas tugas besar tersebut dipecah menjadi suatu tugas kecil dan dapat dianggap sebagai suatu fitur. Fitur berikut yang biasa dinamakan sebagai backlog. Secara seri, berikut adalah kegiatan yang terjadi pada saat sebelum sprint hingga selesai sprint :
- Sprint planning, Penentuan backlog yang akan dikerjakan dan pembagian assignee pada fiturnya
- Daily Standup, merupakan kegiatan pada pertengahan sprint berlangsung dan diadakan sebagai forum diskusi kesulitan dan cerita hal yang telah dilakukan selama menyelesaikan task tersebut.
- Sprint review, forum untuk menentukan apakah deliverable yang diberikan sudah sesuai dengan planning yang dilakukan
- Sprint retrospective, adalah kegiatan pada akhir sprint dimana menjadi kegiatan evaluasi pada sprint yang telah berlangsung, pada forum ini seluruh pihak dapat menyampaikan keresahan dan saran kepada individu yang lain
Dalam penerapan scrum, tim scrum tersebut dapat dibentuk menjadi pohon yang dapat dikatakan menjadi scrum of scrum.
Suatu task yang lebih besar dapat digolongkan menjadi suatu epic. Epic tersebut dapat diperkecil scopenya menjadi suatu task kecil yang levelnya dapat dikerjakan pada suatu tim scrum. Apabila fitur pada suatu epic terlalu banyak, fitur tersebut dibagi ke kelompok scrum lain yang masih menjadi satu tanggung jawab pada scrum of scrums. Scrum of scrums inilah yang akan berfokus untuk manajemen tim scrum yanng berada dibawah.