Scrum Methodology – Agile Software Development
Metodologi
Scrum termasuk ke dalam kumpulan metode Pengembangan Perangkat Lunak Agile
(Agile Software Development). Pengembangan Perangkat Lunak Agile sendiri
meliputi beberapa metode, di antaranya Extreme Programming (XP), Scrum, Dynamic
Systems Development Methods (DSDM), dan Crystal. (Sutherland, 2014)
Scrum
adalah sebuah kerangka kerja untuk pengembangan secara inkremental dengan
menggunakan satu atau lebih tim yang cross-functional dan self-organizing yang
terdiri dari kurang lebih tujuh orang pada tiap-tiap tim. Scrum menggunakan
iterasi tetap bernama Sprint, yang dijalankan dalam waktu dua minggu atau tiga
puluh hari. Tim Scrum berusaha untuk membangun inkremen produk (perangkat lunak)
yang siap digunakan dan telah diuji pada setiap proses iterasi ini. (James,
2012
Perangkat-perangkat
Scrum
Penjelasan
berikut ini merupakan hasil kolaborasi antara apa yang dikemukakan Michael
James (2012) dan Hamid Shojaee (2012) mengenai beberapa perangkat yang
digunakan dalam sebuah pengembangan menggunakan metode Scrum ini, di antaranya:
- Product Backlog. Product Backlog berisi kumpulan User Story yang akan
menentukan fitur-fitur yang akan dibuat pada perangkat lunak. Kumpulan
User Strory ini kemudian dibuat skala prioritasnya oleh Product Owner.
- Product Backlog Item (PBI). PBI atau secara tradisional dikenal sebagai User Story
ini secara tertulis kurang lebih berisi mengenai “Sebagai seorang (nama
peran), saya menginginkan (nama fitur), sehingga dapat berguna untuk
(keuntungan fitur)”.
- Sprint Backlog. Sebuah Sprint berisi beberapa PBI yang telah
diprioritaskan dalam rapat antara Product Owner dan Tim Pengembang. Sprint
merupakan milestone dalam pengembangan produk yang akan berlangsung hingga
maksimal tiga puluh hari, tidak boleh lebih. Pada akhir tiap-tiap Sprint
harus menghasilkan shipped product (produk yang siap digunakan). Oleh
sebab itu, pada Sprint pertama, pastikan semua fitur dasar dan utama yang
telah diprioritaskan dimasukkan ke dalam Sprint ini. Dengan kata lain,
setelah Sprint 1, perangkat lunak / aplikasi / produk dasar telah siap
digunakan. Adapun pelengkapan fitur-fitur pelengkap atau lainnya pada
produk dengan tingkatan prioritas yang lebih rendah dapat dikembangkan
pada Sprint 2 dan seterusnya.
- Burndown Chart. Burndown chart digunakan untuk mengawasi setiap fase
perkembangan Sprint agar berjalan mulus dan tidak melebihi tenggat waktu
yang telah ditentukan. Chart ini menampilkan pengukuran harian terhadap
jumlah dan sisa pekerjaan hingga produk siap dirilis. Dengan demikian tim
dapat membuat perkiraan mengenai kapan sebuah Sprint atau sebuah shipped
product akan selesai, sehingga apabila diperkirakan akan melebihi batas
waktu, tim dapat melakukan penyesuaian dengan meningkatkan waktu/jam kerja
mereka tiap harinya.
- Daily Scrum. Perangkat ini merupakan sarana komunikasi yang sangat
penting bagi seluruh anggota tim Scrum. Daily Scrum juga sering disebut
stand-up meeting karena akan berlangsung sangat singkat, yaitu kurang
lebih lima belas menit. Secara teknis, Daily Scrum merupakan rapat singkat
harian di mana seluruh anggota tim bertemu dan hanya mengemukakan tiga hal
utama, yaitu “apa yang telah saya lakukan kemarin”, “masalah yang saya
hadapi/telah diselesaikan”, dan “apa yang akan/sudah saya selesaikan hari
ini”. Sedangkan Scrum Master hanya akan membuka rapat, mencatat,
mengawasi, dan memfailitasi diskusi untuk menyelesaikan beberapa
permasalahan yang dihadapi tim.
- Sprint Retrospective Meeting. Rapat ini dilakukan oleh seluruh tim saat setiap Sprint
selesai dijalankan dan shipped product dihasilkan. Dalam rapat ini, tim
akan mengevaluasi mana saja yang telah berjalan baik dalam proses, dan
mana saja yang masih membutuhkan perubahan/perbaikan/improvement.
Peran
Dalam Scrum
Menurut
Michael James (2012), dalam proses pengembangan sebuah perangkat lunak
menggunakan metode Scrum, teradapat beberapa aktor penting, di antaranya:
- Product Owner. Orang ini bertugas untuk menentukan Product Backlog
dan menentukan prioritas fitur yang akan disajikan pada perangkat lunak.
Ia juga berhak untuk menerima atau menolak setiap hasil yang telah
dikembangkan pada tiap iterasi.
- Tim Pengembangan Scrum. Tim yang beranggotakan antara 7-9 orang ini bersifat
cross-functional, yaitu tim yang berisi orang-orang dengan kemampuan dan
perang yang berbeda, misalnya terdiri dari tester, developer, business
analyst, domain expert, dan lain-lain. Tim ini mendiskusikan kepada
Product Owner mengenai tiap-tiap Sprint yang akan dijalankan.
- Scrum Master. Orang ini secara tradisional disebut sebagai Project
Mabager dan bertugas untuk mengawasi keseluruhan proses Scrum, membantu
mengatasi halangan yang dihadapi selama proses tersebut, menciptakan
suasana yang kondusif bagi tim pengembang, dan melindungi tim dari
gangguan eksternal sehingga tim dapat bekerja dengan baik pada zonanya.
Akan tetapi, Scrum Master tidak memiliki otoritas untuk mengatur tim. Orang
yang memiliki otoritas untuk mengatur tim ditentukan oleh tim tersebut.
Perangkat-perangkat
Scrum
Penjelasan
berikut ini merupakan hasil kolaborasi antara apa yang dikemukakan Michael
James (2012) dan Hamid Shojaee (2012) mengenai beberapa perangkat yang
digunakan dalam sebuah pengembangan menggunakan metode Scrum ini, di antaranya:
- Product Backlog. Product Backlog berisi kumpulan User Story yang akan menentukan fitur-fitur yang akan dibuat pada perangkat lunak. Kumpulan User Strory ini kemudian dibuat skala prioritasnya oleh Product Owner.
- Product Backlog Item (PBI). PBI atau secara tradisional dikenal sebagai User Story ini secara tertulis kurang lebih berisi mengenai “Sebagai seorang (nama peran), saya menginginkan (nama fitur), sehingga dapat berguna untuk (keuntungan fitur)”.
- Sprint Backlog. Sebuah Sprint berisi beberapa PBI yang telah diprioritaskan dalam rapat antara Product Owner dan Tim Pengembang. Sprint merupakan milestone dalam pengembangan produk yang akan berlangsung hingga maksimal tiga puluh hari, tidak boleh lebih. Pada akhir tiap-tiap Sprint harus menghasilkan shipped product (produk yang siap digunakan). Oleh sebab itu, pada Sprint pertama, pastikan semua fitur dasar dan utama yang telah diprioritaskan dimasukkan ke dalam Sprint ini. Dengan kata lain, setelah Sprint 1, perangkat lunak / aplikasi / produk dasar telah siap digunakan. Adapun pelengkapan fitur-fitur pelengkap atau lainnya pada produk dengan tingkatan prioritas yang lebih rendah dapat dikembangkan pada Sprint 2 dan seterusnya.
- Burndown Chart. Burndown chart digunakan untuk mengawasi setiap fase perkembangan Sprint agar berjalan mulus dan tidak melebihi tenggat waktu yang telah ditentukan. Chart ini menampilkan pengukuran harian terhadap jumlah dan sisa pekerjaan hingga produk siap dirilis. Dengan demikian tim dapat membuat perkiraan mengenai kapan sebuah Sprint atau sebuah shipped product akan selesai, sehingga apabila diperkirakan akan melebihi batas waktu, tim dapat melakukan penyesuaian dengan meningkatkan waktu/jam kerja mereka tiap harinya.
- Daily Scrum. Perangkat ini merupakan sarana komunikasi yang sangat penting bagi seluruh anggota tim Scrum. Daily Scrum juga sering disebut stand-up meeting karena akan berlangsung sangat singkat, yaitu kurang lebih lima belas menit. Secara teknis, Daily Scrum merupakan rapat singkat harian di mana seluruh anggota tim bertemu dan hanya mengemukakan tiga hal utama, yaitu “apa yang telah saya lakukan kemarin”, “masalah yang saya hadapi/telah diselesaikan”, dan “apa yang akan/sudah saya selesaikan hari ini”. Sedangkan Scrum Master hanya akan membuka rapat, mencatat, mengawasi, dan memfailitasi diskusi untuk menyelesaikan beberapa permasalahan yang dihadapi tim.
- Sprint Retrospective Meeting. Rapat ini dilakukan oleh seluruh tim saat setiap Sprint selesai dijalankan dan shipped product dihasilkan. Dalam rapat ini, tim akan mengevaluasi mana saja yang telah berjalan baik dalam proses, dan mana saja yang masih membutuhkan perubahan/perbaikan/improvement.
Peran Dalam Scrum
Menurut
Michael James (2012), dalam proses pengembangan sebuah perangkat lunak
menggunakan metode Scrum, teradapat beberapa aktor penting, di antaranya:
- Product Owner. Orang ini bertugas untuk menentukan Product Backlog dan menentukan prioritas fitur yang akan disajikan pada perangkat lunak. Ia juga berhak untuk menerima atau menolak setiap hasil yang telah dikembangkan pada tiap iterasi.
- Tim Pengembangan Scrum. Tim yang beranggotakan antara 7-9 orang ini bersifat cross-functional, yaitu tim yang berisi orang-orang dengan kemampuan dan perang yang berbeda, misalnya terdiri dari tester, developer, business analyst, domain expert, dan lain-lain. Tim ini mendiskusikan kepada Product Owner mengenai tiap-tiap Sprint yang akan dijalankan.
- Scrum Master. Orang ini secara tradisional disebut sebagai Project Mabager dan bertugas untuk mengawasi keseluruhan proses Scrum, membantu mengatasi halangan yang dihadapi selama proses tersebut, menciptakan suasana yang kondusif bagi tim pengembang, dan melindungi tim dari gangguan eksternal sehingga tim dapat bekerja dengan baik pada zonanya. Akan tetapi, Scrum Master tidak memiliki otoritas untuk mengatur tim. Orang yang memiliki otoritas untuk mengatur tim ditentukan oleh tim tersebut.