Metodologi Agile di TemanCatat, How We Do It

Aldi Fahrezi
temancatat
Published in
4 min readMar 22, 2018

Agile merupakan salah satu metodologi pengembangan perangkat lunak yang paling populer saat ini. Metodologi ini mendukung pengembangan yang bersifat iteratif, tepat terhadap permasalahan, dan fleksibel terhadap perubahan. Berbeda dengan metodologi konvensional yang fokus pada proses pengembangan, metodologi Agile fokus pada hasil-nya itu sendiri. Inilah yang menyebabkan para software developer memilih untuk menerapkan Agile dibandingkan metodologi lainnya.

Nilai dan Prinsip Agile

Tentunya dalam menerapkan suatu metodologi, kita harus memahami terlebih dahulu nilai-nilai yang disampaikannya. Inipun berlaku untuk penerapan Agile tanpa terkecuali. Lalu nilai-nilai apa saja yang terdapat pada Agile? Berikut adalah 4 nilai kunci yang terkandung pada manifesto Agile

  • Individuals and interactions over processes and tools
    Dalam metodologi Agile, proses pengembangan yang dilakukan (beserta alat yang digunakan) bukanlah fokus utama. Agile melihat dari sudut pandang pelaku individu dan menjadikan interaksi antar individu sebagai kunci kesuksesan pengembangan software.
  • Working software over comprehensive documentation
    Di saat metodologi konvensional umumnya memakan waktu yang lama dalam pembuatan dokumentasi yang lengkap, Agile fokus pada bagaimana meningkatkan kualitas produk yang dihasilkan itu sendiri dengan keterbatasan waktu yang ada.
  • Customer collaboration over contract negotiation
    Agile mementingkan peran customer dalam pengembangan software. Hal ini disebabkan requirement dari produk sangat bergantung pada customer. Oleh sebab itu, dalam penerapan Agile, kolaborasi dengan customer dilakukan selama masa pengembangan. Berbeda dengan metodologi konvensional yang menempatkan customer sebagai reviewer hasil akhir produk saja sehingga seringkali terjadi kesalahpahaman terhadap requirement software dengan realisasinya.
  • Responding to change over following a plan
    Agile menekankan fleksibilitas terhadap perubahan maupun tantangan yang dihadapi. Di saat requirement produk berubah (bisa karena insight yang didapatkan dari pengguna-pengguna pertama produk), Agile mementingkan respons yang cepat dibandingkan dengan metodologi lain yang mementingkan rencana jangka panjang. Hal ini dicapai dalam metodologi Agile dengan menerapkan pendekatan iterasi dalam pengembangan software. Setiap iterasi berjangka waktu pendek dan dilakukan untuk menghasilkan/memperbaiki produk itu sendiri berdasarkan prioritas yang diutamakan.

Introducing Scrum! Agile Framework yang digunakan TemanCatat

Setelah mengetahui nilai-nilai yang terkandung dalam metodologi Agile, tentunya dibutuhkan suatu framework (kerangka kerja) yang perlu digunakan untuk mewujudkan nilai-nilai tersebut. Salah satu agile framework yang terkenal adalah Scrum. Framework inilah yang digunakan dalam pengembangan TemanCatat sehari-hari.

Scrum framework mendefinisikan berbagai pihak yang terlibat dalam pengembangan software.

  • Scrum Team, yaitu self-organizing team yang berperan dalam mengembangkan produk / software itu sendiri. Dalam TemanCatat, saya beserta tim developer berperan sebagai Scrum Team.
  • Scrum Master, yaitu orang yang bertanggungjawab terhadap realisasi kerangka kerja Scrum dalam aktivitas keseharian. Dalam TemanCatat, terdapat Kak Sabiq sebagai Scrum Master yang memantau aktivitas kami sehari-hari.
  • Product Owner, yaitu pihak yang bertanggungjawab terhadap visi dari produk itu sendiri. Dengan kata lain, Product Owner adalah pihak utama yang menentukan requirement-requirement yang dibutuhkan dalam produk yang ingin dihasilkan. Dalam TemanCatat, Badr Interactive berperan sebagai Product Owner.

Scrum framework mendefinisikan satu jangka waktu iterasi sebagai sprint. Dalam TemanCatat, satu sprint dilakukan selama 4 minggu. Dalam satu sprint, Scrum mendefinisikan beberapa aktivitas utama yaitu sprint planning, daily scrum, sprint review, dan sprint retrospective. Dalam penulisan ini, saya akan membagikan pengalaman dua aktivitas sprint di atas yaitu sprint planning dan daily scrum.

On your mark.. Get set.. SPRINT!

Sebelum suatu sprint dimulai, maka perlu dilakukan sprint planning yaitu sebuah kegiatan untuk merencanakan rencana besar untuk satu sprint kedepannya. Dalam Scrum, umumnya digunakan instrumen dalam membantu perencanaan dan pelaksanaan sebuah sprint dengan nama Scrum board. Referensi lebih lanjut dalam penggunaan Scrum board dapat dilihat di tautan berikut: http://agiledigest.com/agile-digest-tutorial/preparing-working-scrum-board-sprint-board/

Dalam Sprint Planning, seluruh pihak terlibat dalam menentukan Sprint Goal sebagai tujuan utama suatu sprint dan menentukan Product Backlog (Fitur) yang akan dikerjakan selama Sprint tersebut. Setelah kedua hal tersebut ditentukan dan disetujui oleh semua pihak, maka Scrum Team membuat task-task independen yang dapat dikerjakan oleh Scrum Team sebagai tim pengembang. Setelah task dibentuk, masing-masing anggota Scrum Team memilih task yang pertama yang akan dikerjakan pada sprint tersebut.

Scrum Board TemanCatat

Daily Scrum All The Way, Everyday (almost..)

Setelah Sprint Planning dilakukan, maka pengembangan dilakukan kembali untuk sprint tersebut. Salah satu kegiatan yang dilakukan secara rutin adalah Daily Scrum, yaitu sebuah standup meeting singkat untuk membahas permasalahan dan progres yang telah dilakukan oleh masing-masing anggota Scrum Team dalam mengerjakan task yang diambilnya masing-masing. Jika salah satu anggota telah menyelesaikan tasknya, maka akan dipersilakan untuk mengambil task berikutnya. Hal ini dilakukan secara rutin oleh kami 2 kali seminggu (umumnya sehari) dan terus dilakukan hingga tahap sprint review.

Integrating Sprint Backlog with GitLab Issues

Sebagai sentral repositori untuk kode kami, kami menggunakan GitLab. Salah satu instrumen yang membantu kami memetakan task dalam suatu sprint ke dalam proses pengembangan itu sendiri adalah GitLab Issues. Seluruh task yang terdapat pada Sprint Backlog kami dipetakan sebagai sebuah issue pada GitLab. Hal ini mempermudah kami untuk melakukan kegiatan VCS pada umumnya seperti merge request, code review, dengan tujuan menyelesaikan task-task yang kami miliki.

GitLab Issues TemanCatat

Conclusion

Pada tulisan ini, saya membagikan beberapa gambaran mengenai penerapan metodologi Agile pada tim kami. Tentunya, penerapan Agile dalam tim lain pun dapat berbeda dengan situasi dan permasalahan yang berbeda juga (selaras dengan nilai Agile yaitu fleksibel terhadap perubahan). Adapun dalam post-post berikutnya, kami ingin mencoba untuk membagikan pengalaman penerapan Scrum Framework kami secara lebih lanjut terutama dalam Sprint Review dan Sprint Retrospective.

--

--