Agile dan Scrum
Apa itu Agile Programming?
Tidak. Agile Programming tidak seperti gambar di atas. Itu hanya cara mereka menutupi kesalahan karena tidak melakukan planning dan membuat dokumentasi yang baik.
Agile adalah sebuah pendekatan iteratif dalam project management dan software development yang membantu tim dalam menyampaikan produk ke customer secara lebih cepat. Penyampaian tidak dilakukan dalam satu tahap yang sekaligus besar, tetapi dilakukan secara kecil dan bertahap. Karena penyampaiannya yang iteratif, tim mampu beradaptasi terhadap perubahan requirement karena feedback dari customer.
Agile memiliki manifesto seperti berikut.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plafThat is, while there is value in the items on
the right, we value the items on the left more.
Pelaksanaan
Dalam mata kuliah PPL ini, kami menerapkan salah satu framework agile, yaitu Scrum. Scrum adalah Agile framework yang membantu tim dalam bekerja sama. Scrum mendorong tim dalam belajar melalui pengalaman, menyelesaikan masalah secara mandiri, dan melihat hal-hal baik dan buruk yang telah dilakukan sebelumnya agar bisa berkembang.
Scrum Roles
Dalam scrum, terdapat tiga peran berbeda dalam tim agar pelaksanaannya berjalan efektif.
- Product Owner. Orang yang paling mengerti tentang produk. Bertugas dalam menyusun Product Backlog. Product Owner di tim kami adalah tim dari PAYFAZZ, yaitu kak Kenneth dan kak Sanggra.
- Scrum Master. Bertugas memimpin tim mengenai pelaksanaan scrum. Scrum Master di tim kami berasal dari asisten dosen, yaitu kak Luthfi.
- Development Team. Bagian dari tim yang bertugas untuk mengembangkan produk, yaitu kami sebagai mahasiswa yang mengambil mata kuliah PPL, yaitu saya, Windi, Albert, Kezia, Faza, Mitta.
Scrum Artifacts
Scrum artifacts adalah sesuatu yang dibuat untuk menyelesaikan masalah. Terdapat beberapa Scrum Artifacts, yaitu:
- Product Backlog: sesuatu yang akan dikerjakan secara keseluruhan. Dapat disebut sebagai Todo-list dari tim.
- Sprint Backlog: sesuatu yang dikerjakan dalam suatu sprint.
3. Increment: hasil dari sprint yang berupa produk yang dapat digunakan. Increment kami presentasikan kepada Product Owner pada setiap sprint review.
Scrum Rituals
Dalam pengembangan dan penyampaian produk, scrum memiliki ritual atau event-event yang dijalankan secara berurutan, yaitu:
- Mengorganisir Product Backlog. Dalam event ini, Product Backlog dirapikan dan dipecah menjadi task-task kecil agar bisa dikerjakan dalam sprint. Karena keterbatasan waktu, kami melaksanakan event ini tepat sebelum sprint planning.
- Sprint Planning. Bagian awal dari sprint. Bertujuan untuk menentukan apa yang akan dikerjakan selama satu sprint dan menugaskan seseorang untuk mengerjakannya. Product Backlog yang diambil pada tahap ini akan berubah menjadi Sprint Backlog. Kami telah melakukan 3 kali sprint planning, di mana yang terakhir kami lakukan secara online. Menurut saya ini merupakan event yang susah karena harus memperkirakan kemampuan pengerjaan selama satu sprint. Kami tidak ingin beban sprint terlalu besar dan juga tidak ingin produk kami tidak selesai karena terlalu sedikit mengambil pekerjaan. Selain itu juga harus mempertimbangkan apa saja yang akan dikerjakan agar tidak ada orang yang blocked karena menunggu pekerjaan orang lain.
- Sprint. Tahapan pengembangan produk. Biasanya dilakukan selama 2 minggu. Tetapi pada PPL kali ini, sprint kedua dilakukan hanya dalam waktu seminggu. Karena selain mengambil mata kuliah PPL saya juga mengambil mata kuliah lain, pelaksanaan sprint tidak semudah yang saya kira. Saya harus pintar-pintar membagi waktu karena mata kuliah lain juga memiliki tugas yang harus dikerjakan. Memang pada sprint 1 dan sprint 2 saya sedikit keteteran, semoga saja untuk sprint-sprint ke depannya saya dapat membagi waktu lebih baik lagi.
- Daily Stand Up. Ritual yang seharusnya dijalankan setiap hari selama sprint. Dilakukan dalam waktu yang singkat, sekitar 15–30 menit. Masing-masing anggota tim harus menjawab tiga pertanyaan, yaitu 1. Apa yang telah dikerjakan; 2. Apa yang akan dikerjakan; 3. Apa kendala yang dihadapi. Di sini juga kami menggeser-geser kartu yang ada pada scrum board. Apakah pindah dari backlog ke inprogress, atau dari inprogress ke done. Untuk mencapai done harus memenuhi Definition of Done yang telah disepakati sebelumnya. Menurut saya, bagian ini merupakan bagian paling menarik dari scrum karena dengan adanya daily stand up dapat mengetahui bagaimana progress pekerjaan dari setiap anggota tim. Tetapi, pada PPL kali ini, kami hanya melakukan Stand Up sebanyak 2 kali seminggu, yaitu pada hari selasa dan kamis. Karena menurut kami hal tersebut membuat pelaksanaan scrum menjadi kurang efektif, kami mengatasinya dengan mewajibkan setiap anggota tim untuk melaporkan apa saja yang telah dikerjakan setiap hari pada pukul 21.00.
- Sprint Review. Dilakukan di akhir sprint untuk memperlihatkan hasil yang telah dikerjakan selama sprint kepada product owner. Product Owner dapat menerima maupun menolak hasil dari sprint. Sprint review yang pertama kami lakukan di kantor PAYFAZZ. Menurut saya hasil yang disampaikan pada sprint review tersebut kurang memuaskan karena kami terlalu fokus mengembangkan aplikasi dan lupa mengecek deployment, sehingga ternyata saat mendekati sprint review deployment backend ke portainer gagal. Tetapi hal tersebut telah kami perbaiki dan pada sprint review kedua deployment backend tidak masalah. Namun masih terdapat permasalahan pada wiring. Semoga saja untuk sprint review ke depannya tidak terjadi masalah.
- Sprint Retrospective. Merupakan event terakhir yang dilakukan dalam satu sprint cycle. Bertujuan untuk melihat apa saja pelajaran yang dapat diambil selama sprint. Tahapan ini dilakukan dengan menuliskan apa saja hal-hal baik dan hal-hal buruk yang terjadi selama sprint. Menulis hal-hal baik agar dapat mengapresiasi apa yang telah dilakukan dan menulis hal-hal buruk agar dapat membuat eksperimen perbaikan sehingga sprint selanjutnya berjalan lebih baik. Membuat laporan setiap pukul 21.00 juga merupakan salah satu bentuk eksperimen perbaikan yang kami lakukan.
Referensi:
The Agile Coach. Web. 28 Februari 2019. https://www.atlassian.com/agile