PPL 2020 — Document Builder: Agile dan Scrum di Tim Kami

Firman Hadi
pepeel
Published in
6 min readApr 13, 2020

Agile merupakan sebuah pendekatan iteratif dalam manajemen proyek dan pengembangan software. Tim yang mengadopsi prinsip agile akan memberikan hasil pekerjaan secara bertahap. Akibatnya, tim yang agile bisa lebih cepat dan lebih mudah dalam menanggapi feedback atau perubahan pada pekerjaan karena hasil pekerjaan maupun requirement dievaluasi pada setiap tahapannya.

Agile sendiri memiliki manifesto dengan nilai-nilai berikut:

  • Individu dan interaksi lebih dihargai daripada proses dan sarana perangkat lunak.
  • Perangkat lunak yang bekerja lebih dihargai daripada dokumentasi yang menyeluruh.
  • Kolaborasi dengan klien lebih dihargai daripada negosiasi kontrak.
  • Tanggap terhadap perubahan lebih dihargai daripada mengikuti rencana.

Hal di sisi kanan tetap dihargai, tetapi hal di sisi kiri lebih dihargai.

Selain nilai-nilai di atas, terdapat 12 prinsip Agile yang Anda bisa baca di sini.

Scrum

Scrum sendiri merupakan sebuah process framework yang mengikuti prinsip agile di atas. Requirement akan dikerjakan dalam suatu periode dengan lama waktu yang telah ditentukan, yang disebut dengan sprint. Lama sprint bisa bermacam-macam namun biasanya dilakukan dalam rentang waktu satu atau dua minggu.

Scrum sendiri mempunyai lima nilai, yaitu:

  • commitment (komitmen),
  • courage (keberanian),
  • focus (fokus),
  • openness (keterbukaan), dan
  • respect (saling menghormati).

Pelaksanaan di tim kami

Dalam PPL kali ini, kami bekerja menggunakan framework scrum dengan waktu sprint selama dua minggu. Selama sprint tersebut juga kami harus melakukan beberapa ‘ritual’ berikut sebagai ‘aturan main’nya.

Sprint Planning

Sprint planning merupakan ritual pertama yang dilakukan saat sebelum sprint. Sprint planning sendiri diharapkan untuk dilakukan selama 1 jam per minggu sprint, yang artinya sprint planning kami dilaksanakan selama dua jam karena sprint kami memerlukan dua minggu. Pada ritual ini, kami memilih product backlog item (PBI) yang akan dikerjakan pada sprint ini. PBI sendiri adalah requirement dari produk yang akan dikembangkan.

Contoh PBI

Seringkali PBI ini merupakan requirement yang high-level, yang artinya masih bisa dipecah kembali menjadi pekerjaan-pekerjaan kecil dalam sprint. Setelah memilih PBI yang akan diselesaikan dalam sprint, kami akan memecahkan kembali PBI menjadi pekerjaan-pekerjaan kecil untuk dikerjakan, hal ini dinamakan sprint backlog.

Pekerjaan PBI yang sudah dipecah

Setelah memecah pekerjaan tersebut, maka kita mulai untuk mendelegasikan pekerjaan-pekerjaan kepada anggota tim. Pekerjaan diberikan sedemikian sehingga beban kerjanya merata untuk setiap anggota tim.

Scrum Meeting

Scrum meeting merupakan pertemuan (biasanya harian) rutin yang dilakukan oleh tim yang melakukan sprint untuk melaporkan progres setiap anggota tim. Karena PPL sendiri bukan pekerjaan yang ‘fulltime’, kami melakukan scrum meeting dua kali dalam seminggu, yaitu pada hari Senin dan Rabu. Scrum meeting sendiri idealnya dilakukan selama 10–15 menit. Selama scrum meeting, setiap tim akan membahas poin berikut:

  1. Apa saja yang sudah diselesaikan?
  2. Pekerjaan apa yang akan dikerjakan selanjutnya?
  3. Apakah ada hal yang menghalangi dalam proses pengerjaan?

Scrum meeting sendiri dipimpin oleh scrum master. Scrum master dalam suatu tim scrum merupakan seseorang yang memimpin jalannya scrum. Selain itu, biasanya pada scrum meeting akan digunakan sebuah alat bernama kanban board. Kanban board merupakan alat untuk membantu manajemen pekerjaan yang sudah, belum, dan akan dikerjakan. Scrum meeting adalah ritual yang paling penting karena merupakan kunci dari sebuah tim untuk memeriksa kondisi dari tim tersebut dan membuka kesempatan untuk beradaptasi dengan kondisi yang baru.

Contoh kanban board yang disediakan oleh GitLab
Scrum meeting yang dilakukan secara online untuk menaati aturan social distancing

Sprint Review

Sprint review sendiri bisa dibilang sebagai ‘hari penghakiman’. Sprint review sendiri diadakan pada akhir sesi sprint. Pada pertemuan ini, tim pengembang pada sprint akan mempresentasikan pekerjaannya selama satu sprint. Hasil PBI yang dikerjakan akan di-review berdasarkan definition of done oleh product owner. Product owner merupakan orang yang paling mengerti tentang produk yang sedang dikembangkan. Product owner sendiri yang membuat PBI beserta definition of done-nya. Apabila product owner sudah puas dengan PBI yang dikerjakan, maka PBI tersebut diterima dan boleh diluncurkan. Apabila tidak, maka akan dilakukan perbaikan pada pekerjaan tersebut pada sprint berikutnya.

Setelah sprint review selesai, maka dikatakan sesi sprint untuk periode tersebut juga selesai.

Sprint Retrospective

Sprint retrospective merupakan pertemuan yang diadakan setelah sprint review untuk melakukan evaluasi dan refleksi diri. Pada pertemuan ini, setiap anggota tim membahas tentang hal baik maupun buruk yang terjadi selama sprint, hal baik apa saja yang bisa dipertahankan, hal apa saja yang bisa diperbaiki, serta action apa saja yang bisa dilakukan.

Hal hal yang dibahas saat sprint retrospective
Action apa saja yang bisa dilakukan pada sprint berikutnya

Setelah suatu sprint selesai, maka kita akan kembali lagi ke sprint planning untuk memulai sprint yang baru.

Testimoni

Selama menjalani dua kali sprint kali ini, saya bisa melihat bahwa penerapan scrum di kelompok kami memenuhi semua nilai-nilai agile yang ada pada manifesto dan kami merasakan nilai-nilai tersebut. Kami juga tidak merasa ada masalah dalam menerapkan scrum.

Bagian-bagian dari scrum ritual saling bersinergi satu sama lain untuk memenuhi nilai scrum maupun nilai dan prinsip-prinsip agile:

  • Sprint planning: Bagian ini diperlukan untuk menentukan pekerjaan yang akan dikerjakan dan menanggapi perubahan yang ada. Dengan ritual ini juga anggota tim diharuskan untuk melakukan commitment atas pekerjaan yang akan dilakukan. Tim pengembang juga diharapkan untuk memiliki keberanian dalam berpendapat pada sesi planning.
  • Scrum meeting: Bagian ini diperlukan agar anggota tim saling mengetahui progres satu sama lain, dan bisa saja menyadarkan orang lain bahwa dia menghalangi pekerjaan seseorang (individu dan interaksi). Anggota tim juga dilatih untuk menghormati anggota tim lain, seperti mendengarkan maupun membantu menyelesaikan sesuatu yang menghalangi pekerjaan orang lain.
  • Sprint review: Bagian ini diperlukan agar hasil pekerjaan bisa diluncurkan (perangkat lunak yang bekerja). Bagian ini juga melibatkan pengembang dan klien untuk mendapatkan hasil perangkat lunak yang terbaik. Berkat definition of done, tim pengembang bisa fokus terhadap target pekerjaannya.
  • Sprint retrospective: Pada bagian ini, anggota tim diharapkan untuk terbuka atas pendapatnya pada suatu sprint dengan menceritakan apa yang berhasil dan apa yang tidak berhasil, dan lain lain (individu dan interaksi). Dengan hal ini, tim scrum bisa menjadi lebih baik dari sebelumnya.

Maka dari itu, scrum sendiri merupakan suatu kesatuan. Apabila salah satu konsepnya dilewatkan, maka proses yang kita jalankan bukanlah scrum. Seperti yang dikatakan oleh Scrum Guide:

Scrum’s roles, events, artifacts, and rules are immutable and although implementing only parts of Scrum is possible, the result is not Scrum. Scrum exists only in its entirety and functions well as a container for other techniques, methodologies, and practices. — https://www.scrumguides.org/scrum-guide.html

Apakah artinya semua orang harus menerapkan scrum? Tentu tidak. Proyek pribadimu yang mempunyai skala kecil tidak perlu menggunakan scrum. Jangan mempersulit diri sendiri.

Menurut saya, tim scrum juga harus diisi dengan anggota tim yang berpengalaman untuk menghindari hal yang tidak diinginkan, seperti pada saat memecah pekerjaan PBI. Bisa saja pekerjaan yang dipecah sebenarnya masih bisa dipecah lebih banyak atau estimasi beban pekerjaan nya salah (ternyata jauh lebih sulit daripada yang diperkirakan).

Kesimpulan

Agile merupakan pendakatan iteratif dalam pengembangan suatu perangkat lunak. Agile memiliki empat nilai dan 12 prinsip. Scrum merupakan sebuah framework yang menerapkan nilai-nilai Agile. Pada kelompok kami, kami menggunakan scrum untuk mengembangkan Document Builder. Walaupun terlihat baik dari segala aspek, scrum harus diisi dengan orang-orang berpengalaman untuk mendapatkan benefit-nya.

--

--