Apakah yang dimaksud dengan metode SCRUM?

SCRUM saat ini merupakan framework yang paling banyak digunakan dalam me-manage proyek perangkat lunak.

Bagaimana framework SCRUM dalam mengelola proyek perangkat lunak ?

Sejarah Scrum

Scrum pertama kali diperkenalkan dalam artikel Takeuchi and Nonaka yang berjudul “The New New Product Development Game”[1] dan dipublikasikan oleh Harvard Business Review (HBR) pada tahun 1986.

Pada artikel tersebut Takeuchi dan Nanaka melakukan survey pada beberapa perusahaan di Jepang, antara lain ; Fuji Xerox, Canon, 3M dan Honda. Survei tersebut dilakukan untuk melihat bagaimana perusahaan-perusahaan tersebut dapat membuat produk baru dengan kualitas produk yang sangat bagus, secara sukses.

Takeuchi dan Nanaka menemukan bahwa perusahaan-perusahaan tersebut menggunakan pendekatan yang sama dalam mengembangkan produknya. Metode Scrum digunakan pertama kali dalam pengembangan perangkat lunak dimulai oleh Jeff Sutherland, Easel Corporation pada tahun 1993.

Metode Scrum pertama kali diformulasikan dan dipresentasikan pada Object Management Group tahun 1995 dengan judul paper “Scrum Development Process” [2].

Apa itu Scrum ?

Scrum secara garis besar dapat diilustrasikan sebagai berikut [3],

Scrum building block disebut Sprint. Sprint adalah sebuah kotak-waktu (yang biasanya mempunyai durasi 1 hingga 4 minggu) dimana tim pengembang fokus dalam mencapai target yang jelas. Setiap Sprint selalu berakhir dengan diikuti Sprint Review, dimana hasil yang sudah dibuat dipresentasikan dan didemontrasikan didalam sebuah rapat tim.

Istilah-istilah dalam Scrum

Product Backlog

Pemilik Proyek menyusun dan mengumpulkan semua permintaan dan kebutuhan sistem, misalnya fitur-fitur yang dibutuhkan dan-atau kebutuhan non-fungsional sistem. Setelah tujuannya sudah ditetapkan, semua permintaan dan kebutuhan tersebut dibagi-bagi menjadi bagian-bagian kecil yang mana setiap bagian kecil tersebut harus mempunyai nilai dan layak untuk dikembangkan.

Pemilik Proyek juga menentukan skala prioritas dalam pengerjaan bagian-bagian kecil tersebut. Bagaimana dan seperti apa bagian-bagian kecil tersebut diimplementasikan dan di-deliver?
Pertanyaan tersebut akan menghasilkan sebuah to-do-list berdasarkan kebutuhan pasar dan kebutuhan pelanggan yang selalu berubah seiring dengan berjalannya waktu.

Backlog Refinement

Backlog harus di-maintain dengan baik dan tepat oleh Tim Scrum untuk dilakukan perencanaan, sehingga Sprint dapat berjalan dengan lancar. Hal-hal yang harus dilakukan dalam me-maintain backlog antara lain adalah melakukan proses estimasi dan breakdown kebutuhan, Hal tersebut dilakukan agar kondisi Sprint (1-4 minggu) terpenuhi.

Oleh karena itu, sangat membantu apabila tim mengalokasikan waktu khusus setiap minggu untuk melakukan Penghalusan Backlog (Backlog Refinement), dan disaat yang sama juga melakukan perencanaan.

Sprint

Sprint adalah kotak-waktu yang berisi periode kerja dimana pada sprint fokus terhadap delivery produk berdasarkan item-item yang dipilih dari Product Backlog.

Didalam Sprint selalu ditetapkan waktu pekerjaan secara konsisten dan Sprint yang baru dimulai sesegera mungkin setelah sprint yang ada telah selesai dikerjakan.

Daily Scrum

Setiap hari, Tim Scruam harus melakukan pertemuan (rapat) selama maksimal 15 menit. Hal ini dilakukan dengan tujuan untuk mensinkronkan progres, mengidentifikasi masalah dan menyelesaikan masalah yang ada dalam mengerjakan pekerjaannya.

Pertanyaan yang biasa ditanyakan adalah :

  • Apa yang anda lakukan sejak pertemuan terakhir ?
  • Apa rencana yang anda lakukan sampai pertemuan berikutnya ?
  • Apa ada suatu masalah yang membuat anda tidak dapat mengerjakan pekerjaan yang telah direncanakan sebelumnya ?

Fokuslah pada pertanyaan 1 dan 2, untuk melihat sejauh mana progress yang telah dibuat dan untuk menentukan siapa yang mengerjakan apa setiap harinya.

Pertanyaan ketiga digunakan untuk mencari solusi dari permasalahan yang muncul. Mulai dari pertanyaan yang bersifat teknis hingga non-teknis yang dinilai dapat mengacaukan pekerjaan.

Sprint Review

Setiap Sprint selalu berakhir dengan mendemontrasikan dan mempresentasikan fitur-fitur yang telah dikerjakan. Hal tersebut dilakukan untuk memastikan bahwa fitur-fitur tersebut dapat bekerja dengan baik.

Sebaiknya Sprint review dilakukan dalam team yang kecil, sebelum produk tersebut didemontrasikan dan dipresentasikan pada team yang besar (Pemilik Produk, pelanggan dan manajemen perusahaan).

Sprint Retrspective

Didalam Sprint Retrspective, Tim Scrum merefleksikan bagaimana pekerjaan-pekerjaan berjalan pada Sprint sebelumnya?

Harapan yang ingin dicapai pada Sprint Retrspective adalah adanya perbaikan tindakan sehingga Sprint berikutnya dapat dikerjakan dengan lebih baik lagi.

Perbaikan-perbaikan tersebut harus di-implementasi-kan pada Sprint berikutnya.

ROLES

Development Team

Development team atau tim pengembang adalah team yang mendesain dan melakukan proses problem-solvers. Biasanya team tersebut terdiri dari 3-9 orang.

3-9 orang adalah team yang paling optimal dalam menggunakan metode scrum berdasarkan beberapa penelitian yang ada.

Pembagian tugas dan distribusi informasi ditentukan diantara anggota tim itu sendiri. Setiap anggota tim bertanggungjawab atas keberhasilan keluaran sprint yang dilakukan.

Product Owner

Product Owner atau pemilik proyek harus memastikan bawha tim pengembang bekerja sesuai dengan target yang telah ditetapkan dilihat dari kacamata bisnis.

Pemilik proyek melakukan manajemen terhadap Product Backlog, yang dibreakdown menjadi to-do-list, sehingga semua keinginan dan kebutuhan sistem dapat terekam dengan baik berdasarkan keuntungan yang diterima dengan mempertimbangkan sisi bisnisnya.

Pemilik proyek fokus pada bagaimana produk dihasilkan nantinya. Selain itu pemilik proyek juga harus selalu melihat berapa banyak dana yang dikeluarkan dalam mengembangkan produk dan seberapa besar pendapatan yang dihasilkan oleh produk tersebut.

Scrum Master

Scrum master atau tenaga ahli Scrum adalah kombinasi dari pelatih, fixer dan penjaga gawang.

Hal yang paling penting dari Scrum Master adalah, Scrum Master harus dapat mengarahkan dan melatih Tim Pengembang dan Pemilik Proyek untuk memastikan bahwa mereka selalu berada dalam kondisi terbaiknya dalam meraih kesuksesan.

Scrum Master memimpin rapat setiap harinya - Daily Scrum. Scrum master harus memastikan bahwa tim pengembang tidak teralihkan fokusnya pada hal-hal diluar proyek/pekerjaan.

Scrum Team

Scrum Team atau Tim Scrum adalah gabungan dari Tim Pengembang, Pemilik Proyek dan Tenaga Ahli Scrum.

Semua entitas bertanggungjawab atas keberhasilan proyek tersebut, dilihat dari kualitas produknya maupun dari waktu dan biaya. Target yang paling utama adalah kepuasan pelanggan.

Referensi :
[1] “The New New Product Development Game”, Ikujiro Nonaka and Hirotaka Takeuchi, (Harvard Business Review 86116:137-146, 1986)
[2] Schwaber, K., Scrum Development Process, in OOPSLA Business Object Design and Implementation Workshop, J. Sutherland, et al., Editors. 1997, Springer: London.
[3] https://www.maxxor.com/software-development-process
[4] “Scrum in 5 minutes” by softhouse

1 Like

Menurut (Schwaber & Sutherland, 2011), Scrum adalah suatu metodologi atau kerangka kerja yang terstruktur untuk pengembangan produk yang kompleks. Scrum terdiri dari sebuah tim yang memiliki peran dan tugas masing-masing. Setiap komponen dalam kerangka melayani tujuan tertentu dan sangat penting untuk kesuksesan penggunaan scrum.


Gambar Metodologi Scrum

Langkah-langkah aktifitas dengan menggunakan metodologi Scrum adalah sebagai berikut :

  • Product Backlog
    Bagian pertama yang perlu dilakukan adalah membuat kumpulan hal-hal yang diperlukan dan harus tersedia dari produk atau dalam hal ini adalah sistem yang akan dibangun.

  • Sprint Backlog
    Langkah ini adalah membuat perencanaan dengan dilakukkan pertemuan antara developer dan user, yang akan berkolaborasi untuk memilih product backlog untuk dimasukkan kedalam proses Sprint. Hasil pertemuan tersebut di sebut Sprint Backlog.

  • Sprint
    Dalam Scrum, Sprint adalah sebuah kerangka waktu yang berdurasi maksimal 1 bulan untuk mengembangkan produk yang berpotensi untuk dirilis. Dalam Sprint terdapat 2 pekerjaan, yaitu :

    1. Pertemuan Harian (Daily Standup Meeting)
      Merupakan pertemuan dimana setiap 24 jam (1 hari), tim pengembang bertemu untuk membahas perkembangan produk. Hal ini kami lakukan tidak secara langsung, tetapi via dunia maya melalui Skype ataupun Whatsapp.

    2. Refleksi Sprint
      Merupakan pertemuan yang dilakukan setiap bulannya yang bertujuan untuk membahas hal dari Sprint Backlog yang telah berjalan dan telah berhasil dikerjakan, serta dapat memperbaiki dan meningkatkan kualitas produk Sprint yang berikutnya.

  • Increment
    Increment merupakan hasil dari seluruh hal dalam Product Backlog yang telah selesai dikerjakan pada seluruh Sprint. Pada akhir Sprint, Increment harus sudah benar-benar selesai, yang berarti harus dalam keadaan yang useable.

Scrum sendiri memiliki prinsip :

  1. Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain.

  2. Proses dapat beradaptasi terhadap perubahan dan bisnis.

  3. Proses menghasilkan beberapa software increment.

  4. Pembangunan dan orang yang membangun dibagi dalam tim yang kecil.

  5. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun.

  6. Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan.