Apa yang dimaksud dengan Scrum pada pengembangan perangkat lunak?

Banyak metode-metode pengembangan sistem yang dilabeli dengan agile seperti eXtreme Programming (XP), Crystal, Dynamic System Development Method (DSDM), Feature Driven Design, Lean Software Development dan juga Rational Unified Process (RUP).

Salah satu metode agile yang paling banyak digunakan adalah scrum, scrum pertama kali diperkenalkan oleh Takeuchi dan Nonaka yang menggunakan nya untuk menjelaskan inovasi dalam sebuah pendekatan pengembangan produk yang mengambil filosofi dari pelatihan olahraga rugby.

Scrum berbeda dengan SDLC tradisional seperti waterfall, perbedaan itu dapat dilihat dari segi pembagian roles, meeting yang dilakukan juga bagaimana proses pembuatan product berlangsung. Pada scrum proses development suatu sistem tidak sama dengan yang dilakukan oleh framework tradisional seperti waterfall dimana setiap proses akan sangat bergantung pada proses lainnya sehingga bila ada suatu proses yang terhambat maka akan sangat mengganggu dan dapat membawa kepada kegagalan proyek.

Pada Scrum pembagian roles dibagi menjadi tiga yaitu product owner, scrum master, dan scrum team (Mahalaksmi & Sundararajan, 2013).

  • Product Owner disini adalah wakil dari pelanggan yang kita miliki dimana product owner adalah tempat keputusan terakhir terkait product yang akan dibuat baik dari pengaturan bagaimana fitur yang akan disediakan, kapan product akan di release dan apa konten apa saja yang disediakan, product owner pun harus mengurus product backlog dimana product backlog dapat diubah oleh product owner bila dirasa ada yang lebih prioritas. Product owner pun harus bertanggung jawab terkait dengan keuntungan dari pada product yang akan dibuat.

  • Scrum master bertugas untuk membantu anggota tim dan bertanggung jawab untuk menyelesaikan semua halangan yang dihadapi saat membuat product. Scrum master juga bertanggung jawab dalam pelaksanaan daily scrum baik dari kapan dan bagaimana meeting akan berlangsung, selain itu scum master pun harus bisa membuat tim fokus kepada proyek pembuatan produk dan tidak teralihkan kepada hal lain.Untuk menjadi seorang scrum master dibutuhkan kepemimpinan yang hebat dan juga kemampuan yang hebat sehingga tim dapat mempercayai mereka.

  • Scrum team bisa dipastikan adalah kumpulan dari orang yang bertanggung jawab dalam membuat product baik itu seorang programmer, tester, designer dan lainnya yang terkait dalam pembuatn product.

Biasanya scrum team dibentuk dari 5-10 orang. Team juga dibentuk dalam dua nilai yaitu untuk self-organizing dan juga cross-functional.

Nilai self-organizing disini adalah bagaimana mengatur karakter-karakter dari tiap anggota team sehingga team tidak hanya dikendalikan oleh satu orang yang sangat berpengaruh, team akan selalu bekerja layaknya perusahaan start-up yang mau mengambil inisiatif dan resiko, tim membentuk konsep yang dimengerti oleh mereka.

Self-organizing ini akan bisa terjadi dengan adanya tiga kondisi yaitu otonomi mereka untuk bekerja yang tidak akan diganggu oleh top-management, self-transcendence dimana tim akan mengambil resiko untuk membuat sistem yang lebih baik lagi melewati dari ekspektasi top-management walaupun akan menimbulkan perdebatan seperti yang pernah terjadi pada tim projek honda, dan kondisi yang terakhir adalah cross-fertilization adalah kondisi dimana tim dibuat dengan berbagai macam background sehingga pemikiran akan semakin kaya dan setiap orang akan mendapatkan masukan yang berbeda untuk membangun pengetahuan mereka akan proyek dari berbagai sudut pandang (Takeuchi & Nonaka, 1986).

Dikarenakan keberagaman background maka setiap tim akan mendapatkan informasi dari berbagai bentuk sehingga fungsi mereka tidak hanya satu saja untuk seorang programmer tidak melulu hanya memikirkan tentang program tetapi bisa juga dia menjadi pemberi ide mengenai pasar yang ada ini lah yang disebut nilai cross-functional.

###Cara Kerja SCRUM

Gambar diatas adalah bagaimana proses dari bagaimana framework scrum akan dilakukan.

Awalnya dimana product owner akan memulainya dengan mengkonversi segala keinginan dari pelanggan menjadi product backlog dimana product backlog adalah segala list terkait dengan keberhasilan proyek, dalam pengembangan software bisa dalam bentuk fitur ataupun bagaimana arsitektur sistem yang akan dibuat.

Lalu product backlog itu akan dibawa kepada sprint planning meeting yang akan didatangi oleh semua team agar dapat memberikan pengetahuan kepada semua anggota team bagaimana sistem yang akan dibuat sehingga dari situ akan dibuatlah sprint backlog yaitu apa saja yang akan dilakukan agar pengembangan dapat berhasil.

Setelah sprint backlog dibuat maka akan dilakukan lah sprint yaitu proses pengembangan atau pembuatan sistem yang biasanya berlangsung selama 1-4 minggu, saat proses sprint tidak boleh ada gangguan dari luar, yang dilakukan oleh team adalah tetap mengikuti dari sprint backlog yang sudah dibuat.

Selama pelaksanaan sprint diadakan daily scrum yaitu pertemuan yang dihadiri oleh semua anggota team untuk sharing masalah apa saja yang mereka hadapi saat pengembangan kemarin. Saat jangka waktu pelaksanaan suatu sprint selesai maka akan dilaksanakan review yang dimana menunjukan fitur apa saja yang sudah diselesaikan pada proses sprint yang sudah dilakukan.

Lalu akan dilakukan lagi proses sprint dengan sprint backlog yang berbeda hingga semua product backlog dapat dipenuhi semuanya, saat team merasa product backlog dapat di refinemenet atau dievolusi maka team dapat melakukannya saat proses sprint.

Saat semua product backlog semuanya terpenuhi maka akan dilaksanakan retrospective yang beguna untuk mereview secara keseluruhan kinerja dari project owner, scrum master dan juga team yang nantinya akan digunakan sebagai feedback agar proyek selanjutnya dapat lebih baik lagi.

Perlu diingat juga walaupun diberikan kebebasan pada team tetapi management tetap juga memiliki beberapa control (Takeuchi & Nonaka, 1986) yaitu:

  • Memilih orang yang akan masuk ke dalam tim atau proyek dan juga memonitpring team tersebut juga menambahkan dan mengurangi jumlah anggota team bila dirasa perlu.
  • Membuat suasana kerja yang terbuka
  • Meyakinkan para developer ataupun engineers untuk mendengarkan secara langsung bagaimana keinginan dari pelanggan mereka.
  • Mengevaluasi serta memberikan penghargaan berdasarkan performa team
  • Mengatur bagaimana ritme yang ada pada proses pengembangan
  • Mentoleransi dan juga mengantisipasi kesalahan
  • Bila menggunakan supplier maka management pun akan meyakinkan supplier agar menjadi self-organizing. Mengikutkan mereka dalam proyek juga merupakan langkah yang tepat

Ada lima nilai yang perlu diperhatikan agar scrum framework ini dapat berhasil diimplementasikan pada suatu proyek yaitu fokus, keberanian, keterbukaan, komitmen dan respect (Jeldi & Chavali, 2013). Setiap nilai ini harus dimiliki oleh setiap orang yang berada pada team baik dari project owner, scrum master dan juga scrum team.

Dalam menggunakan scrum kita pun harus mencocokan apakah proyek yang kita jalani cocok atau tidak untuk mengimplementasikan scrum dikarenakan scrum juga memiliki beberapa kelemahan yaitu scrum sangat kurang dalam hal dokumentasi sehingga kita harus memastikan apakah dokumentasi proyek sangat berpengaruh pada proyek anda atau tidak (Mahalaksmi & Sundararajan, 2013). Selain itu kerjasama tim sangat dibutuhkan dalam menggunakan scrum sehingga bila kerjasama team kurang dan dedikasi untuk mengerjakan proyek kurang maka proyek akan bisa menemui kegagalan.

Referensi :

1 Like