Mengenal Scrum dalam Pengembangan Aplikasi

Badr Interactive
- 16 Februari 2020

Saat kita memiliki sebuah ide produk dan ingin mewujudkannya menjadi suatu produk berbasis perangkat lunak, maka tahap selanjutnya yang bisa kita lakukan adalah memvalidasi ide atau masalah tersebut. Misalnya, menemui beberapa orang yang menjadi target pengguna untuk diskusi apakah ide tersebut benar - benar membantu mereka; apakah masalah yang kita asumsikan benar - benar masalah bagi mereka. Setelah yakin dengan hadirnya masalah tersebut bagi pengguna, kemudian kita lengkapi dengan validasi solusi, misalnya membawa berbagai macam solusi untuk didiskusikan lebih lanjut dengan target pengguna produk kita. Lalu berdiskusi apakah solusi yang kita tawarkan menyelesaikan masalah mereka atau menjawab kebutuhan mereka.

Saat kita sudah yakin dengan solusi kita, inilah saatnya untuk membangun produk sebenarnya. Ini berarti kita sudah siap untuk memasuki fase pengembangan produk. Kita siap membangun produk perangkat lunak yang bernilai bagi pengguna. Meskipun demikian, mengembangkan produk bukanlah pekerjaan yang sederhana. Jika kita pernah terlibat langsung dalam pengembangan produk perangkat lunak, kita seharusnya pernah menghadapi tantangan dan menjumpa kompleksitas di sana. Kita melihat resiko yang perlu ditangani, baik di sisi teknis maupun bisnis, dan memahami bahwa banyak hal yang tidak pasti.

Pada titik waktu ini, mengenal kerangka kerja pengembangan produk bernama Scrum akan membantu kita melalui perjalanan pengembangan yang penuh dengan ketidakpastian, untuk membangun produk perangkat lunak yang bernilai bagi pengguna.


Apa itu Scrum?

Sebenarnya Scrum itu apaan sih? Tulisan awal ini akan mengenalkan hal abstrak bernama Scrum kepada kita. Mari kita lihat definisi Scrum dari penyusun konsep Scrum dalam panduan definitif Scrum bernama The Scrum Guide (Schwaber & Sutherland, 2017).

Scrum (n): A framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.

Scrum merupakan sebuah kerangka kerja (framework) yang menangani masalah kompleks saat membangun produk. Perangkat lunak dapat dilihat sebagai sebuah produk yang menawarkan sebuah nilai (value) bagi penggunanya. Scrum juga dilihat sebagai kerangka kerja untuk kolaborasi tim secara efektif dalam membangun produk yang kompleks  seperti perangkat lunak. 

Scrum juga merupakan proses perangkat lunak (software process). Summerville (2011) mendefinisikan proses perangkat lunak sebagai serangkaian aktivitas yang terstruktur untuk membuat produk perangkat lunak. Yup, dalam suatu pengembangan perangkat lunak, kita akan menemukan berbagai macam aktivitas pengembangan seperti menyusun requirements produk aplikasi, membuat desain aplikasi, menuliskan kode, melakukan pengujian dan pengecekan aplikasi, hingga menaruh aplikasi untuk lingkungan produksi. 

Elemen proses dalam Scrum membuat aktivitas - aktivitas tersebut dilakukan secara efektif. TIdak hanya itu, Scrum memberikan ruang untuk melakukan aktivitas pengembangan secara kreatif. Secara sederhana, kita dapat mengatakan Scrum itu adalah sebuah kerangka kerja (framework); juga sebuah prses perangkat lunak (software process).


Seperti Botol Permen

Scrum bukan merupakan proses atau tekni untuk membangun produk (Schwaber & Sutherland, 2017). Scrum merupakan kerangka kerja yang di dalamnya kita dapat menempatkan berbagai macam proses dan teknik untk membangun produk. Jika kita buat perumpamaannya, Scrum seperti botol permen dan permen - permen di dalamnya adalah teknik, metode, dan proses dalam membangun produk. Di dalam botol itu, kita bisa menempatkan berbagai jenis permen yang kita sukai. Scrum adalah botol permennya. Beberapa contoh permen yang bisa kita masukkan adalah seperti user story dalam menuliskan requirements, customer journey mapping untuk memahami dan menyusun pengalaman (experience) bagi pengguna, unit testing untuk pengujian otomatis, hingga Model-View-Presenter (MVP) dalam menuliskan kode.


Scrum Membantu Menangani Ketidakpastian

Membangun produk perangkat lunak merupakan hal yang kompleks karena kita akan menemukan berbagai macam ketidakpastian di sana. Pernah menghadapi requirements aplikasi yang berubah - ubah di tengah pengembangan, entah karena permintaan stakeholders atau permintaan pasar? Pernah merasa kurang tepat memilih teknologi yang digunakan untuk membangun aplikasi? Pernah merasa pengembangan terhambat karena salah seorang dari tim kita sakit berhari - hari lamanya?

Ketidakpastian tersebut menuntut kita untuk adaptif agar dapat merespon ketidakpastian tersebut dengan baik. Dalam konteks perangkat lunak, Scrum hadir membantu kita untuk membangun produk berbasis perangkat lunak yang memberikan nilai atau manfaat ke pengguna setinggi mungkin sekaligus menangani ketidakpastian yang umum terjadi dalam pengembangan.

Sekian sekilas gambaran tentang scrum. Tertarik untuk menggunakan framework scrum untuk pembuatan aplikasi? Jangan terburu - buru. Nantikan tulisan kami lebih detail seputar scrum ya.


Referensi: