Agile Implementation in Scrum
Apa itu “agile”?
Sebelum kita bahas jauh lebih dalam ke agile di software development. Kita harus tau apa itu makna dari kata agile itu sendiri. “Agile” memiliki arti dalam bahasa indonesia adalah “tangkas”. Tangkas yang dimaksud disini adalah kita sebagai pembuat dari sebuah software dapat menangani sebuah masalah dengan fleksibel dan cepat. Sehingga “Agile” adalah sebuah konsep dari sebuah proses yang mana proses tersebut bersifat fleksibel terhadap perubahan dan dapat mengatasi perubahan itu dengan cepat.
Agile in software development
Nah, kita pasti sering dengar kata “agile” di dunia IT kan. Memang prinsip agile ini sering dipakai karena memberikan banyak manfaat terhadap perusahaan-perusahaan yang mengimplementasikannya. Agile ini sering dibilang cocok dengan perkembangan jaman yang ada sekarang yang sifatnya dinamis dan cepat, sehingga dengan agile kita dapat memberikan produk yang adaptif terhadap lingkungan yang ada. Karena sifatnya yang adaptif, pastinya agile mampu memberikan kita kemampuan untuk membuat sebuah software yang benar-benar sesuai dengan kebutuhan target pasar.
Di dalam agile juga terdapat 4 manifesto utama yang terdiri dari :
- Memberikan customer kepuasan dengan memberikan software yang bernilai secara kontinu
- Software yang berguna lebih penting daripada dokumentasi yang komprehensif
- Kolaborasi customer sangat vital pada perkembangan projek
- Proses nya harus bisa menangani perubahan dibandingkan mengikut plan yang ada
Methodology Agile Development
Terdapat beberapa metodologi atau software development cycle yang digunakan untuk menerapkan prinsip Agile tersebut. Salah satu SDC yang populer dan sering digunakan adalah Scrum, yang mana akan dibahas lebih setelah ini
What is Scrum?
Scrum adalah sebuah framework yang bersifat iteratif sehingga dapat mendeliver sebuah produk yang berguna dan bernilai secara incremental. Scrum bersifat iteratif karena durasi pengerjaaan terhadap suatu value dibagi menjadi beberapa sprint(+- 2–4 minggu). Di setiap sprintnya harus memutuskan value apa yang ingin dibangun sebuah produk dan dalam durasi satu sprint tersebut fokus untuk menyelesaikan value tersebut. Satu sprintnya juga terdiri dari beberapa tahapan yaitu :
- Sprint planning = sprint planning adalah tahap awal dari sebuah sprint yang mana kita semua yang terlibat dalam pembuatan produk tersebut berdiskusi backlog apa yang ingin menjadi fokus pada sprint tersebut. Sprint planning melibatkan semua pihak yang terlibat dalam pembuatan produk tersebut seperti developer, designer, scrum master, product owner. Selain memilih fokus nilai apa yang ingin dibangun di produk tersebut, sprint planning juga digunakan sekaligus untuk meng-assign tiap task yang sudah dibagi dari suatu backlog kepada tiap orang yang memang bertanggung jawab pada task tersebut.
- Daily Scrum Meeting = Untuk memastikan setiap anggota yang terlibat dalam pembuatan software dapat menjalankan tugasnya dengan baik, maka itu ada sebuah tahapan yang dinamakan daily scrum meeting. Yang mana biasanya dilakukan setiap hari. Biasa di dalamnya setiap orang menceritakan apa saja yang mereka sudah lakukan terhadap tasknya, lalu juga menyampaikan apa hambatan yang mereka punya dalam pengerjaan task tersebut. Dengan adanya DSM ini membuat kita saling tau progres pekerjaan dari setiap teman kita.
- Sprint Review = Sprint review dilakukan di akhir sprint yang mana diharapkan setiap hasil dari task yang ada sudah digabungkan membuat sebuah backlog yang bernilai dan berguna bagi stakeholder produk tersebut. Pada sprint review ini, kita mendemokan dan menjelaskan hasil kerjaan dari sprint tersebut, yang mana akan ada product owner dan stakeholder lainnya yang menilai produk yang diberikan tersebut. Hasil akhir di tahap ini product owner dan stakeholder yang memutuskan apakah produk ini sudah siap untuk diimplementasikan kepada customer mereka atau masih perlu perbaikan.
- Sprint Retrospective = ketika sebuah sprint selesai, maka akan lebih baik apabila terdapat evaluasi terhadap tim yang membuat produk tersebut. Maka itulah adanya sprint retrospective ini berguna sebagai mengevaluasi setiap anggota yang terlibat dalam pembuatan sebuah produk tersebut. Biasa mereka berkumpul di suatu tempat lalu mengungkapkan evaluasi yang mereka ingin ungkapkan kepada setiap orang demi perkembangan dan kemajuan tim tersebut. Harapan dalam sprint retrospective ini adalah setiap kekurangan yang ada di sprint sebelumnya bisa diperbaiki di sprint selanjutnya.
Satu sprint diakhiri dengan tahap akhirnya yaitu sprint retrospective, yang mana akan dilanjutkan dengan sprint planning untuk menginisiasi dan melanjutkan sprint selanjutnya.
Dengan dibagi menjadi beberapa sprint, scrum ini mendeliver sebuah produk secara incremental dan sesuai dengan kemauan customer. Karena di awal scrum sebenarnya belum ada plan yang pasti sehingga setiap backlog atau value yang ada bisa berubah setiap saat cara penyampainnya .
Sekian penjelasan saya tentang agile, terimakasih telah membaca! Happy life, happy coding!