Scrum Development Framework
Scrum merupakan salah satu framework pengembangan perangkat lunak yang termasuk dalam Agile development. Dalam prosesnya, pengembangan dibagi ke dalam beberapa iterasi kecil yang disebut dengan sprint. Menurut Ken Schwaber (1997), scrum merupakan metode yang menerapkan konsep gabungan antara pendekatan iterative dan incremental. Suatu sprint merupakan iterasi dan semakin bertambahnya sprint maka fitur yang diimplementasikan semakin banyak (incremental). Saat ini scrum cukup banyak digunakan oleh para pengembang perangkat lunak di seluruh dunia. Scrum yang merupakan Agile development juga mewarisi kelebihan-kelebihan seperti agility dan flexibility. Scrum telah terbukti sebagai Agile framework yang baik dan dapat membantu dalam menyukseskan pengembangan.
Istilah dalamScrum
Dalam scrum terdapat beberapa istilah seperti berikut:
- Product Backlog
Sekumpulan product backlog item dan merupakan requirement dari sistem. Terdiri dari MVP dan non-MVP.
- Product Backlog Item
Suatu unit pekerjaan yang biasanya merupakan user story dari requirement. Backlog item ini kemudian dipecah lagi kedalam beberapa task.
- Scrum Team
Sekumpulan individu yang mengeksekusi pengerjaan project, terdiri dari development team dan scrum master.
- Scrum Master
Dapat dikatakan sebagai fasilitator antara tim dan product owner. Scrum master juga memfasilitasi berlangsungnya Daily Scrum Meeting.
- Sprint
Suatu iterasi. Pada proses pengembangan terdiri dari beberapa sprint yang bersifat incremental (penambahan fitur).
- Sprint Backlog
Sekumpulan baclog item yang diambil untuk dikerjakan pada suatu sprint.
- Daily Scrum Meeting
Dilakukan setiap hari untuk mengevaluasi apa saja yang telah dilakukan oleh tim, apa saja kendala yang ditemukan, dan apa yang akan dilakukan selanjutnya.
Fase Scrum
Proses pengembangan pada scrum dapat dikelompokkan ke dalam lima fase (Satpathy, 2016. hal. 16–19). Fase-fase tersebut adalah sebagai berikut
- Initiate
Fase ini merupakan tahap awal dari proses pengembangan dengan scrum. Fase ini meliputi pembentukan tim, pembuatan project vision, dan penentuan product backlog.
- Plan and Estimate
Pada fase ini dilakukan perencanaan untuk memulai pelaksanaan sprint, meliputi penulisan user story, penjabaran task pada tiap user story, melakukan estimasi nilai terhadap setiap user story dan task, serta menentukan sprint backlog.
- Implement
Fase ini merupakan tahap untuk mengeksekusi setiap task yang telah didefinisikan serta melakukan aktivitas-aktivitas untuk membentuk produk. Pada tahap ini juga terdapat daily standup meeting, dimana tim melakukan evaluasi apa yang telah dilakukan oleh anggota tim selama jangka waktu tertentu. Pada saat tersebut juga dapat diceritakan masalah apa saja yang ditemui selama melakukan implementasi.
- Review and Retrospect
Pada tahap ini dilakukan review terhadap hasil pekerjaan tim (deliverable product) selama satu sprint. Tidak hanya hasilnya, proses bekerja tim juga dinilai sehingga dapat ditentukan apa saja yang perlu ditingkatkan untuk proses pengembangan pada sprint berikutnya. Sprint dianggap berhasil apabila pada sprint tersebut dihasilkan (deliverable product) yang sesuai dengan acceptance criteria yang telah ditentukan dan disetujui oleh product owner.
- Release
Pada tahap ini produk yang telah memenuhi seluruh acceptance criteria dikirimkan ke klien. Selain itu juga dilakukan dokumentasi mengenai pelajaran apa saja yang didapat selama melakukan pengembangan.