Our 7th Member, Agile!

Rizal Diantoro
Sulang
Published in
5 min readApr 18, 2018

Halo semuanya, setelah sebelumnya kita berkenalan dengan TDD dan juga Locust. Hari ini saya akan memperkenalkan anggota ke-7 dari tim kami yaitu, Agile. Agile ini merupakan teman yang membantu kelompok kami dalam mengembangkan suling. Agile merupakan salah satu metodologi dalam pengembangan perangkat lunak, agile merupakan sebuah sistem pengembangan perangkat lunak dengan jangka waktu yang relatif singkat dan memerlukan adaptasi yang cepat dari pengembang dalam bentuk apapun. Dalam agile, perangkat lunak dikembangkan dengan cara bertahap/incremental, bukan pengembangan lunak yang sekali jadi.

SCRUM!

Menurut sumber ini, scrum itu terdiri dari:
1. User Stories: Setiap permintaan dari klien atau product owner, akan dibagi ke dalam sebuah fungsi-fungsi yang akan diselesaikan oleh tim developer secara bertahap.

2. Daily Meeting: Setiap harinya, tim developer akan bertemu pada waktu yang sama dan akan melaporkan kerjaannya masing-masing, apa yang berjalan dan ada hambatan apa saja. Dan apa yang akan dikerjakan saat itu atau untuk esoknya.

3. Incremental Development: Setiap versi sukses dari perangkat lunak yang diselesaikan merupakan perangkat lunak yang bisa digunakan. Jika di PPL ini ada Sprint 1 sampai dengan 3, dan setiap Sprint hasilnya merupakan perangkat lunak yang bisa digunakan.

4. Iterative Development: Setiap proses dalam membangun versi perangkat lunak ini sama, terdapat pengulang proses yang sama. Seperti proses yang dilakukan di Sprint 1, Sprint 2, dan Sprint 3 merupakan proses yang sama.

5. Team: Merupakan sekelompok orang yang bertugas untuk menyelesaikan perangkat lunak.

6. Milestone Retrospective: Merupakan masa dimana kelompok akan mereview kejadian-kejadian apa aja yang terjadi dalam proses pengembangan, dan akan mencari solusi terhadap permasalah yang ada agar tidak diulang dan diperbaiki dalam proses pengembangan berikutnya. Jika di PPL, proses ini dilakukan setiap selesai Sprint Review.

7. Personas: Membuat persona dari perangkat lunak yang sedang dikembangkan, jika pengalaman pengguna merupakan suatu yang penting bagi tim.

Agile Manifesto

Nah selain konsep diatas, agile juga memiliki Manifesto yang jumlahnya ada 4, mari kita bahas satu persatu.

Individuals and interactions over processes and tools
Pada agile, kami lebih mementingkan individuals dan interaksi dibandingkan proses dan tool yang digunakan. Masa development yang relatif singkat membutuhkan kerjasama yang baik antara anggota tim satu sama lain. Kerjasama selalu dimulai dengan adanya interaksi yang baik antara satu dengan lainnya. Begitu juga dengan apa yang kami lakukan di Sulang ini, kami sering berkumpul untuk membahas task-task yang dikerjakan. Dalam interaksi ini, kami juga bisa mendapatkan wawasan dari yang lain dan mengetahui jika teman kami sedang mengalami kendala, dan kami lebih tau bagaimana cara membantunya. Sehingga kami bisa saling-melengkapi dan memperbaiki satu sama lainnya.

Dan sebelum itu, individu juga berperan penting dalam hal ini. Semakin individu baik, maka pengembangan ini akan semakin cepat juga. Seperti disulang, saya merasa teman-teman saya di Sulang merupakan orang-orang yang cukup mahir dalam bidang software development.

Meskipun begitu, kami merasa pada bagian ini masih jauh bisa ditingkatkan kembali. Memang sulit untuk bisa bertemu dalam setiap sesi nge-dev. Namun dapat bertemu, dan berkumpul bersama jauh lebih produktif dibandingkan untuk mengerjakannya seorang diri. Arus informasi akan mengalir begitu cepat, komunikasi bukanlah suatau hal yang baik untuk dijadikan alasan blocking. Hal ini sulit untuk diterapkan karena masing-masing anggota tim masih kuliah dan memiliki rutinitas yang cukup berbeda, sehingga masih sulit untuk menemukan hari untuk dapat berkumpul semua. Dan ketika sedang berkumpul bersama diluar alasan PPL, biasanya kami juga membahas hal yang lain, bukan hanya PPL. Hal-hal tersebut yang membuat kuantitas interaksi kami harusnya bisa lebih dapat diperbaiki lagi.

Working software over comprehensive documentation
Pada pengembangan perangkat lunak Suling, kami lebih mementingkan working software dibandingkan dokumen yang komprehensif. Deliver yang kami berikan kepada Product Owner kami merupakan working software, hal ini kami lakukan agar pengembangan perangkat lunak ini dapat diselesaikan dengan cepat. Dan semakin cepat proyek atau working software selesai dan bisa diberikan ke Product Owner, maka feedback juga lebih cepat didapatkan, dan bisa dikerjakan pada sprint berikutnya. Hal ini juga yang kami terapkan di pengembangan suling dan Pak Ari sebagai Product Owner.

Kami atau khususnya saya percaya bahwa, suatu produk perangkat lunak yang jadi dan bisa digunakan oleh Product Owner adalah salah satu bentuk yang jauh lebih bisa diukur untuk menilai seberapa pemikiran antara Product Owner dan tim developer sudah menemui titik kesamaan.

Meskipun begitu, dokumentasi tetap dibutuhkan untuk menjadi acuan dalam pengembangan perangkat lunak tersebut. Kami merasa, dalam suling ini ada beberapa dokumen yang tidak dipersiapkan dengan baik, seperti arsitektur, db design, dll yang belum disatukan kedalam suatu dokumen yang mudah diakses. Hal tersebut juga terjadi karena ada beberapa hal yang masih harus dipastikan dari Product Owner sehingga dokumen-dokumen seperti yang disebutkan diatas menjadi terkendala.

Customer collaboration over contract negotiation
Kami mengutamakan kolaborasi dengan Product Owner, dalam hal ini Pak Ari. Kami sadar bahwa aplikasi ini selanjutnya akan digunakan dan dijalankan oleh Pak Ari selaku Product Owner. Kami juga sangat ingin agar aplikasi ini bisa benar-benar digunakan, oleh karena itu pengembangannya harus sesuai dengan keinginan Product Owner. Oleh karena itu, kolaborasi dengan Product Owner tentunya merupakan suatu hal yang sangat penting pada proyek ini. Selain itu, semakin banyak interaksi kami dengan PO, maka kami jadi tau apa yang sebenarnya dibutuhkan oleh PO, dan mengurangi kemungkinan kesalahan produk yang kami buat tidak sesuai dengan apa yang PO minta.

Customer collaboration disini menurut saya pribadi sangat penting untuk menilai apakah software yang kami buat sudah sesuai dengan permintaan dari Product Owner atau belum. Kami sering sekali menemui Pak Ari untuk mendiskusikan mengenai apa yang sudah kami lakukan, dan apa spesifikasi yang kurang, dan juga apa yang mungkin tidak dapat kami kerjakan.

Seperti halnya setelah Sprint Review 1, kami menemui Pak Ari untuk mendemonstrasikan kembali apa yang berjalan dari Sprint 1. Dari sana kami mendapatkan saran-saran, setelah itu kami juga menanyakan tentang proses alur Autentikasi yang belum clear untuk tim kami. Lalu disana kami berdiskusi untuk mendapatkan solusi yang terbaik, kami membawa sudut pandang dari sisi developer, dan Pak Ari selaku Product Owner yang memiliki kriteria tersendiri dengan software yang sedang kami kembangkan. Intinya apa yang kami kerjakan adalah apa yang menurut kami dan Pak Ari baik.

Responding to change over following a plan
Kami sangat merasakan hal ini, kami sering bertemu dengan Pak Ari, dan kami sering mendapatkan task tambahan yang berlum pernah didefinisikan sebelumnya. Kami juga pernah merubah alur pendaftaran untuk mendapatkan alur yang jauh lebih baik setelah ada diskusi antara kami tim developer dengan Pak Ari selalu Product Owner.

Pada akhirnya, fokus manifesto ini menurut saya adalah bagaimana menyelesaikan proyek dengan cepat dan juga menyelesaikan proyek yang nantinya digunakan oleh product owner/customer.

Sekian dulu yaa, babay.

Refrensi:

https://www.agilealliance.org/agile101/

--

--