Kenalan sama Scrum dalam Membangun Produk

Ardi
Impruvia
Published in
4 min readFeb 15, 2019

Kamu memiliki sebuah ide produk dan ingin mewujudkannya menjadi suatu produk berbasis perangkat lunak? Dari ide tersebut, kamu mungkin sudah melakukan validasi ide atau masalah, misalnya menemui beberapa orang yang menjadi target pengguna kamu untuk diskusi apakah ide tersebut benar-benar membantu mereka; apakah masalah yang kamu asumsikan benar-benar masalah bagi mereka. Setelah yakin dengan hadirnya masalah tersebut bagi pengguna, kemudian kamu lengkapi dengan validasi solusi, misalnya membawa purwarupa solusi untuk didiskusikan lebih lanjut dengan target pengguna kamu. Kamu berdiskusi apakah solusi yang kamu tawarkan menyelesaikan masalah mereka atau menjawab kebutuhan mereka.

Saat kamu sudah yakin dengan solusi kamu, inilah saatnya untuk membangun produk yang sebenarnya, bukan sekedar purwarupa. Ini berarti kamu sudah siap untuk memasuki fase pengembangan produk. Kamu siap membangun produk perangkat lunak yang bernilai bagi pengguna. Meskipun demikian, mengembangkan produk bukanlah pekerjaan yang sederhana. Jika kamu pernah terlibat langsung dalam pengembangan produk perangkat lunak, kamu seharusnya pernah menghadapi tantangan dan menjumpai kompleksitas di sana. Kamu melihat risiko 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 kamu 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 proses perangkat lunak (software process).

Seperti Botol Permen

Scrum bukan merupakan proses atau teknik untuk membangun produk (Schwaber & Sutherland, 2017). Scrum merupakan kerangka kerja yang di dalamnya kita dapat menempatkan berbagai macam proses dan teknik untuk membangun produk.

Scrum seperti Botol Permen (Photo by Clem Onojeghuo)

Jika saya 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.

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.

Elemen-elemen dari Scrum

Sebagai sebuah kerangka kerja, Scrum terdiri dari elemen-elemen inti (core) yang membentuknya. Elemen-elemen itu sederhananya kita kelompokkan dalam pertemuan, peran, dan artefak.

Elemen-elemen dalam Kerangka Kerja Scrum (Image by Scrum.org)

Sudah cukup mengenal Scrum? Jika kamu punya pertanyaan tentang Scrum, silakan tanyakan di kolom komentar. :D

***

Yuk pelajari Scrum secara lengkap dan mudah di online course “Belajar Scrum: Membangun Produk secara Efektif dengan Scrum

--

--

Ardi
Impruvia

Sharing my learning and experience in product management and software process like Scrum. Sometimes inspiration from life