SCRUM adalah salah satu framework (kerangka kerja) pada SDLC (Software Development Life Cycle) dengan pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product (shippable / deliverable) dan proses iterasi untuk mewujudkan hasil akhir.

Di dalam setiap iterasi scrum, semua anggota tim saling berkolaborasi untuk menyelesaikan setiap incremental product yang telah direncanakan dan disepakati bersama. Dalam proses, setiap iterasi juga akan melakukan kegiatan analisis, merencanakan desain dan selanjutnya program siap untuk dikembangkan. Setelah program selesai, program juga akan diuji melalui proses testing yang telah direncanakan oleh tim, baik itu menggunakan TDD (Test Driven Development) atau testing manual, sehingga akhirnya program tersebut menjadi sebuah incremental product yang siap untuk di-deploy dan di-integrasi-kan dengan semua program yang telah dibuat sebelumnya.

Semua kegiatan diatas akan dilakukan oleh tim dengan konsep self-organizing, artinya semua anggota tim akan bekerja sama untuk mengelola kerja mereka sesuai dengan kesepakatan mereka. Mereka bertanggung jawab untuk menghasilkan incremental product dengan membagi tugas secara bersama dan berdiskusi tanpa ada hirarki. Seorang yang berpengalaman testing, sangat dimungkinkan untuk berkonstribusi ditahap analisa dan desain. Atau seorang programmer akan membantu aktifitas testing. Secara sederhana, anggota tim akan merencanakan tugas secara bersama dan melakukannya secara bersama sebagai sebuah kolaborasi tim.

Komponen utama di dalam SCRUM Framework adalah :

Roles :
  • Scrum Master
  • Scrum Product Owner
  • Scrum Development Team
Artifacts :
  • Product Backlog
  • User Story
  • Task
  • Sprint Backlog
  • Burndown Chart
  • Impediment Backlog
  • Definition of Done.
Scrum Events / Meeting :
  • Sprint Planning Meeting
  • Daily Scrum Meeting
  • Sprint Review Meeting
  • Sprint Retrospective Meeting

ROLES
Atau biasa disebut Scrum Teams yang idealnya hanya berukuran 7 +/- 2 Orang saja



Product Owner (PO) : Mewakili suara customer dan bertanggung jawab untuk memaksimal kan nilai produk dan hasil kerja Tim Pengembang. Dan yang menciptakan "APA" yang harus dimiliki oleh aplikasi. PO bertugas untuk menuliskan semua item yang harus dimiliki oleh aplikasi. Item-item tersebut memiliki "story" dan juga bertanggung jawab untuk memberikan prioritas kepada setiap story, sehingga seluruh anggota tim SCRUM mengetahui apa yang sebaiknya harus dibuat pada setiap iterasi.

  • Product owner menentukan fitur produk dan tanggal release (Release Management),
  • Berhak merubah prioritas dan merubah fitur di stiap sprint
  • Berhak menyetujui ataupun menolak hasil kerja team
  • Stakeholder/client juga bisa dijadikan Product Owner
----------------------------------------------------------------

Scrum Master : Menjadi Pembicara, negosiator dan fasilitatior adalah tugas utama dari Scrum Master seperti layaknya seorang project manager.

  • Scrum Master juga harus memastikan bahwa tim Scrum mematuhi Scrum teori, praktek dan aturan.
  • Scrum Master juga merupakan bagian dari scrum team, melayani dan bukan memerintah (servant leadership).
  • Scrum master ini yang akan menjaga Scrum team dari gangguan luar (misal yang sering saya temui adalah : salah satu anggota team diminta bos untuk mengerjakan project lain / side project), hambatan, bertanggungjawab atas kemajuan pengembangan produk memastikan komunikasi antara Scrum Team dgn Product Owner serta memfasilitasi berbagai macam Scrum Event.
----------------------------------------------------------------

Scrum Development Team : Sekumpulan individu yang bekerja secara bersama untuk menyelesaikan product increment yang telah disepakati.

  • Mengatur diri mereka sendiri untuk menentukan cara terbaik dalam menyelesaikan pekerjaannya. Dari proses analisa, design, coding dan akhirnya diujikan. Mereka harus berkolaborasi bersama sehingga keluaran dari setiap iterasi adalah sebuah program yang benar-benar teruji dan sesuai dengan harapan product owner.
  • Tidak mengenal adanya sub-tim yang dikhususkan untuk bidang tertentu seperti pengujian atau analisa bisnis.
  • Mendemokan kemajuan (increment) produk di setiap akhir sprint kepada Product Owner dan pihak lain yang berkepentingan atas proyek
  • Tim berfungsi antar lintas. Semua anggota tim bekerja sama untuk menghasilkan produk akhir. Tidak ada lagi kata analis ya cuma menganalisa, programmer ya cuma ngoding. Semua anggota tim harus saling bahu membahu.

ARTIFACT

Product Backlog (PB): Sederhananya dapat di definisikan sebagai sebuah daftar semua hal yang perlu dilakukan dalam proyek. Pemilik dari Product Backlog adalah Scrum Product Owner. PO bertanggung-jawab terhadap Product Backlog, termasuk isinya, ketersediaannya, dan urutannya. PB terdiri dari beberapa detail yang dinamakan Product Backlog Item (PBI)

Contoh Product Backlog Item (PBI) Pada Development Software POS (Point-of Sales)

Product Backlog Item (PBI) Adalah list dari 'user story' (jangan khawatir setalah ini dijelaskan apa itu sprint) untuk menggambarkan fungsi atau feature apa saja yang harus tersedia di dalam aplikasi. Product Owner akan membuat user story untuk selanjutnya dibawa dalam sebuah diskusi bersama untuk melihat lebih detail terkait dengan skala prioritas dan acceptance criteria. Item Product Backlog dapat diperbarui kapanpun juga oleh Product Owner--atau siapapun atas arahan Product Owner--kapanpun ia mau.

----------------------------------------------------------------

Sprint Backlog / Sprint adalah jantung dari SCRUM, yaitu unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (normalnya 2-4 minggu) di mana sebuah Inkremen yang “Selesai”, berfungsi, berpotensi untuk dirilis dikembangkan. Sehingga setiap Sprint juga bisa di katakan sebuah Project. 
Selama proses ini berlangsung backlog tidak ada penambahan. Sprint yang baru, langsung dimulai setelah Sprint yang sebelumnya berakhir. Sprint dapat dibatalkan sebelum batasan waktu Sprint selesai. Hanya Product Owner yang dapat membatalkan Sprint, walaupun keputusan yang dia buat mungkin saja dipengaruhi oleh para stakeholder, Scrum Development Team, ataupun Scrum Master. Pada saat Sprint:

  • Tidak boleh ada perubahan yang dapat membahayakan tercapainya Sprint Goal
  • Kualitas dari Sprint Goal tidak boleh menurun
  • Scope dapat diklarifikasikan dan dinegosiasikan ulang diantara Product Owner dan Tim Pengembang seiring dengan bertambahnya pengetahuan.
----------------------------------------------------------------

User Story adalah pecahan dari sebuah PBI, yang berisikan Peran (Story), Fitur (acceptance criteria) & Nilai (Effort/Priority). Seluruh Story Form akan didiskusikan untuk selanjutkan diurutkan sebagai Product Backlog Item, sekaligus sebagai urutan incremental product pada setiap iterasi atau sprint.

----------------------------------------------------------------

Task adalah pecahan dari sebuah User Story, yang berisikan tentang List of How the way to do the story, dan lebih ke arah teknisnya. Mulai dari masalah Database, UI, UX, Algoritma, dan lain sebagainya.

Connote Sprint, User Story dan Task Pada Development Software POS (Point-of Sales)

----------------------------------------------------------------

Burndown Chart adalah grafik yang menunjukkan perkembangan dari sebuah sprint. Sumbu y adalah total estimate waktu pengerjaan task dalam 1 sprint dan sumbu x adalah jumlah hari pada 1 sprint. Dengan burndown chart ini bermanfaat untuk bisa menunjukkan bahwa sprint ini sudah ideal, terlambat atau bahkan bisa selesai sebelum waktu berakhirnya sprint yang telah ditetapkan di awal.



----------------------------------------------------------------

Impediment Backlog adalah list dari hambatan-hambatan yang bisa memperlambat pengembangan software atau bahkan bisa menggagalkan. Sebagai contoh adalah :

  • DBMS yang telah dipilih pada arsitektur awal ternyata tidak mendukung fitur multitenancy.
  • UI Framework tidak mendukung adanya animasi slider
----------------------------------------------------------------

Definition of Done (DoD) adalah list kirteria-kriteria suatu task/story/sprint bisa dikatakan DONE / selesai.
Contoh DoD



EVENT


Sprint Planning adalah meeting yang dihadiri oleh semua user role scrum pada awal atau sebelum masuk pada sprint, tim berdiskusi dengan Product Owner mengenai Product Backlog item yang dimasukkan ke dalam Sprint. Planning dilakukan berdasarkan fitur bukan aktifitas, Tim membahas ukuran(size) dari Product Backlog dengan story points yang akan menghasilkan Sprint Backlog.

Di akhir Sprint Planing, Tim Pengembang sudah harus dapat menjelaskan kepada Product Owner ataupun Scrum Master, bagaimana mereka berencana untuk bekerja sebagai tim yang mengatur dirinya sendiri untuk menyelesaikan Sprint Goal, dan membuat Inkremen yang telah diantisipasi. Sprint Planning harus dapat menjawab pertanyaan-pertanyaan berikut:

  • Apa goal dari Sprint?
  • Apa yang dapat dihantarkan di dalam Inkremen sebagai hasil dari Sprint yang sedang berjalan?
  • Apa yang perlu dilakukan untuk dapat menghantarkan Inkremen tersebut?

Kita sudah mengetahui tentang Sprint Backlog & Sprint Goal. Kedua hal tersebut menjadi panduan untuk pengembangan di iterasi ini. Jika pengembangan berjalan seperti yang diharapkan maka diakhir iterasi akan ada potongan produk yang “done” yang disebut Increment. “Done” yang dimaksud adalah memenuhi kriteria “Definition of Done” (DoD).

----------------------------------------------------------------

Daily Scrum Meeting / Daily Stand-up Meeting adalah meeting dengan durasi pendek yang di lakukan secara harian, idealnya sebelum pekerjaan dimulai. Setiap anggota tim yang bekerja pada penyelesaian sprint harus turut berpartisipasi. Scrum Master memastikan bahwa hanya anggota Tim Pengembang yang berpartisipasi pada saat Daily Scrum. Dalam pertemuan ini, setiap anggota tim harus secara singkat memberikan jawaban dari tiga pertanyaan berikut :

  • Kemajuan apa yang telah ia capai sejak daily scrum meeting terakhir...?
  • Apa yang ingin ia capai dalam Scrum meeting berikutnya...?
  • Hambatan apa yang ia dapatkan dalam menyelesaikan tugasnya...?

Meeting ini didesain untuk dilakukan secara singkat, jika ada sesuatu yang detail, anggota tim bisa berdiskusi lebih detail diluar meeting ini dengan orang-orang terkait. Sehingga pertemuan ini adalah kunci dari proses peninjauan dan pengadaptasian.

Setiap harinya, sprint backlog akan selalu mereflekasikan status dari semua tugas yang telah ditetapkan pada setiap iterasi. Semua tugas yang telah diidentifikasi, akan dimasukkan ke dalam kolom "Not Started". Selanjutnya tugas-tugas tersebut akan mengalami progress dan didiskusikan dalam daily meeting.

----------------------------------------------------------------

Sprint Review Meeting: Diadakan di akhir Sprint untuk meninjau Inkremen dan merubah Product Backlog bila diperlukan. Pada saat Sprint Review, Tim Scrum dan stakeholder berkolaborasi untuk membahas apa yang telah dikerjakan dalam Sprint yang baru usai.

Meeting ini tidak lagi berdiskusi mengenai status, incremental product yang telah dikembangkan selama satu periode sprint akan didemokan dan diujikan sebagai final review untuk menyatakan bahwa sebuah user-story atau sebuah product backlog item telah benar-benar selesai sesuai dengan target sprint yang telah disepakati.

Jika sebuah user story telah dinyatakan gagal di dalam sebuah iterasi, tim bisa saja memutuskan untuk menunda terlebih dahulu user-story ini, untuk selanjutnya akan ditinjau kembali pada iterasi mendatang. Atau tim juga bisa menentukan, jika user-story ini akan dilakukan kembali pada iterasi selanjutnya sehingga jadwal user-story yang telah direncanakan sebelumnya akan ditunda terlebih dahulu, untuk menyelesaikan user-story yang masih belum yang belum berhasil.

----------------------------------------------------------------

Sprint Retrospective: Ini adalah meeting untuk melakukan instropeksi dengan melihat kembali perjalanan selama sprint berlangsung. Diskusi lebih berfokus kepada upaya untuk membangun sebuah timyang efektif dan optimal guna menyelesaikan sprint-sprint berikutnya. Mungkin perlu perbaikan dalam pola komunikasi antar tim, atau terdapat sebuah proses yang mungkin bisa dihilangkan karena justru menyulitkan tim tetapi efek terharap hasil akhir tidak sesuai dengan effort yang dikeluarkan atau banyak hal lainnya.

Dengan adanya meeting ini, diharapkan hubungan antar tim akan semakin baik, kolaborasi menjadi lebih efektif dan optimal serta pengetahuan akan product akan semakin bertambah sehingga memudahkan sprint-sprint berikutnya.


Berikut beberapa gambaran Scrum secara menyeluruh yang saya ambil dari beberapa sumber di internet agar lebih membuat faham lagi tentang apa itu Scrum (klik untuk memperbesar).






Referensi tulisan : Scrum Foundation oleh Ratdix Gmail https://groups.google.com/forum/#!forum/scrum-indonesia (Dengan Beberapa Perubahan)










Bismillahirrohmanirrohim..
semoga blog ini bermanfaat...
amiiin :)

InsyaAllah akan ane share tentang macam-macam :
start from :

  1. Kuliner
  2. Lifestyle
  3. Traveling
  4. Organisasi
  5. Dan lainnya.