SCRUM

Posted: May 4, 2009 in IT and Programming Stuff
Tags: ,

SCRUM

Merupakan sebuah project management process yang agile (fleksibel terhadap adanya perubahan requirement), yang dapat digunakan untuk menangani pengembangan software atau produk lainnya menggunakan iterative and incremental process.

Prinsip-Prinsip Agile Software Development

  1. Prioritas tertinggi adalah memuaskan keinginan customer melalui proses deliver product secara dini dan berkesinambungan.
  2. Menerima adanya perubahan requirement, meskipun akan membuat proses development menjadi terlambat. Agile process memaklumi perubahan tersebut demi kepentingan customer agar lebih kompetitif.
  3. Berulang kali melakukan deliver software, yang merupakan hasil dari beberapa minggu atau bulan proses development, dengan preferensi pada jadwal yang lebih singkat.
  4. Analis dan developer harus bekerja sama setiap hari sepanjang pengerjaan project.
  5. Produk dibangun oleh individu-individu yang memiliki motivasi tinggi. Memberikan mereka environment dan dukungan yang dibutuhkan, serta memberikan kepercayaan atas tercapainya target yang diberikan.

Dasar-Dasar Scrum :

  1. Iterative Development. Product dibangun melalui beberapa proses iterasi, yang di setiap iterasinya akan menambahkan fitur tertentu, dan dapat diperlihatkan : demo program, dokumentasi, desain.
  2. Team Empowerment. Anggota project dibagi menjadi beberapa tim yang disebut Sprint Teams yang terdiri hingga 7 atau 8 orang. Masing-masing tim diberikan keleluasaan untuk menggunakan metode development atau tools yang dianggap terbaik untuk memenuhi target.

Role-role yang ada pada Scrum :

1.The Product Owner

Product ownerlah yang memiliki definisi terhadap berhasil atau tidaknya pembangunan sebuah product. Dia akan memimpin dan mengarahkan pengembangan product, sprint by sprint (iterasi demi iterasi) demi tercapainya target.

Dia jugalah yang menentukan skala prioritas, release plans, dan pemilik(assingment) dari setiap product backlog yang ada. Selain itu dia juga membuat development timeschedule berdasarkan skala prioritas backlog.

Hanya satu orang yang ditempatkan pada role ini dengan harapan hanya ada satu orang yang menentukan requirement yang akan dipenuhi. Requirement ini dapat diperoleh berdasarkan pertemuan dengan client, sales, dll. Tetapi yang menjadi poin penting adalah bahwa hanya Product Owner lah yang menentukan skala prioritas dan validitas requirement. Mekanisme ini akan meng-eliminasi adanya kebingungan anggota tim terhadap perbedaan asumsi requirement, opini yang berkembang, dan dari gangguan-gangguan lainnya.

2.The Scrum Master

Scrum Master adalah seorang yang memfasilitasi / menangani tim pada process development harian. Scrum Master tidak mempunyai tugas lain karena pada dasarnya pekerjaan tersebut akan memakan keseluruhan waktu kerja yang dimiliki.

Scrum master bertanggung jawab dalam memastikan bahwa setiap tim menerapkan prinsip dan nilai-nilai dalam Scrum. Scrum master bertanggung jawab memecahkan setiap masalah yang timbul selama proses development yang ditemukan pada project management meeting.

Role ini umumnya diisi oleh project manager atau technical team leader.

3.The Sprint

Merupakan rentang waktu yang telah ditetapkan untuk menghasilkan suatu incremental product. Sprint meliputi : desain, koding, testing, dan dokumentasi.

Special Release Sprint merupakan sprint khusus yang dilakukan untuk memperiapkan product yang akan dinaikkan ke level production. Tidak seperti sprint pada umumnya, sprint ini hanya mempersiapkan hal-hal yang berhubungan dengan persiapan production, seperti mem-package aplikasi, mempersiapkan environtment yang dibutuhkan, dll.

Sprint Planning Meeting

Rapat ini dipimpin oleh Product Owner. Dilakukan untuk mendeskripsikan fitur-fitur yang diinginkan berikut skala prioritasnya. Setelah itu tim akan menentukan fitur mana saja yang akan dipenuhi dan fitur mana yang tidak. Disinilah ditentukan goal dari system , untuk kemudian tim akan mempersiapkan daftar Product Backlog yang akan dijadikan acuan.

The Daily Scrum

Daily scrum biasanya berdurasi sekitar 15 menit setiap harinya. Dilakukan di waktu dan tempat yang sama untuk menjaga konsistensi. Idealnya Scrum Team membentuk sebuah lingkaran, dan duduk saling berhadapan dengan anggota tim yang lain. Setiap tim diharuskan menjawab pertanyaan-pertanyaan di bawah ini :

1.Apa yang sudah dikerjakan/dicapai semenjak Daily Scrum terakhir?

2.Kendala apa yang ditemukan untuk mencapai target?

3.Apa saja yang akan dikerjakan/dicapai sebelum Daily Scrum berikutnya?

Sprint Review

Rapat ini dilakukan setiap akhir dari sebuah Sprint. Selama rapat, masing-masing tim mendemonstrasikan hasil yang dicapai sesuai target pada sprint tersebut.

Sprint Review ini sangat direkomendasikan untuk dilakukan secara informal, sehingga diharapkan tidak membebani tim secara psikologis.

Sprint Review biasanya dihadiri oleh Product Owner, Scrum Master, Customer, Management, dan Scrum Team sendiri. Dalam rapat ini akan dibandingkan hasil Sprint dengan Sprint Goal yang telah disepakati saat Sprint Planning Meeting berdasarkan backlog yang terikat dengan Sprint yang bersangkutan.

Sprint Restrospective

Rapat ini difasilitasi oleh Scrum Master, untuk mendiskusikan dan menyimpulkan hasil dari Sprint yang baru saja dilakukan. Selain itu rapat ini juga dilakukan untuk membicarakan hal-hal yang dapat membuat Sprint berikutnya lebih efektif dan menyenangkan bagi seluruh anggota tim. Sprint Review digunakan untuk melihat perkembangan system yang dibangun, sedangkan Spring restrospective digunakan untuk melihat perkembangan tim yang membangun system.

Semua hal yang mempengaruhi bagaimana tim mengembangkan system dapat dibicarakan, seperti : factor komunikasi, environtment, tools, dll.

Sprint Restrospective merupakan satu tool yang sangat penting untuk membuat tim semakin berkembang seiring pengembangan system.

Product Backlog

Merupakan sebuah daftar requirement, beserta skala prioritas, dan estimasi waktu yang diperlukan untuk penyelesaian/implementasi. Estimasi waktu biasanya dalam satuan hari, dan biasanya tersusun mulai dari prioritas tertinggi. Dimana prioritas tertinggi ditentukan berdasarkan hal yang dinilai krusial atau penting dengan sistem yang akan dibangun. Daftar ini dapat secara dinamis berubah, bergantung pada bisnis rule dan teknologi yang digunakan.


Sprint Backlog

Sprint Backlog adalah sekumpulan task yang akan dikerjakan oleh scrum team pada setiap sprint. Sprint Backlog dibuat berdasarkan Product Backlog. Dan biasanya lebih detil daripada Product Backlog. Sprint Backlog ini lah yang sebenarnya lebih dicek pada Daily Srum untuk dikonfontir dengan Product Backlog yang bersangkutan.

Langkah-langkah dalam Scrum Process :

  1. Sprint Planning Meeting (Product Owner, Customer, Scrum Master), hasil : Product Backlog berikut skala prioritasnya.
  2. Scrum Master dan anggota tim memecah Product Backlog menjadi task-task yang lebih kecil (Sprint Backlog), dan kemudian memilih task-task dari Sprint Backlog yang akan dikerjakan beserta estimasi waktunya untuk 1 sprint duration.
  3. Tim mengerjakan Sprint Backlog yang sudah dipilih.
  4. Scrum Master memfasilitasi Daily Scrum.
  5. Lakukan Sprint Review dan Sprint Restrospective setiap selesai satu Sprint.
scrum sprint cycle

scrum sprint cycle

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s