Works in AGILE world

Fachrur Rozi
Sulang
Published in
4 min readApr 18, 2018

Pada kesempatan kali ini, saya akan menjelaskan mengenai Agile development dan framework yang dapat digunakan untuk menjalankan agile.

Agile framework yang diterapkan diperkuliahan PPL adalah scrum. Scrum merupakan salah satu framework pengembangan perangkat lunak yang termasuk dalam Agile development. Dalam prosesnya, pengembangan dibagi ke dalam beberapa iterasi kecil yang disebut dengan sprint. Menurut Ken Schwaber (1997), scrum merupakan metode yang menerapkan konsep gabungan antara pendekatan iterative dan incremental. Suatu sprint merupakan iterasi dan semakin bertambahnya sprint maka fitur yang diimplementasikan semakin banyak (incremental). Saat ini scrum cukup banyak digunakan oleh para pengembang perangkat lunak di seluruh dunia. Scrum yang merupakan Agile development juga mewarisi kelebihan-kelebihan seperti agility dan flexibility. Scrum telah terbukti sebagai Agile framework yang baik dan dapat membantu dalam menyukseskan pengembangan.

Dalam scrum terdapat beberapa istilah seperti berikut:

  • Product Backlog

Sekumpulan product backlog item dan merupakan requirement dari sistem. Terdiri dari MVP dan non-MVP.

  • Product Backlog Item

Suatu unit pekerjaan yang biasanya merupakan user story dari requirement. Backlog item ini kemudian dipecah lagi kedalam beberapa task.

  • Scrum Team

Sekumpulan individu yang mengeksekusi pengerjaan project, terdiri dari development team dan scrum master.

  • Scrum Master

Dapat dikatakan sebagai fasilitator antara tim dan product owner. Scrum master juga memfasilitasi berlangsungnya Daily Scrum Meeting.

  • Sprint

Suatu iterasi. Pada proses pengembangan terdiri dari beberapa sprint yang bersifat incremental (penambahan fitur).

  • Sprint Backlog

Sekumpulan baclog item yang diambil untuk dikerjakan pada suatu sprint.

  • Daily Scrum Meeting

Dilakukan setiap hari untuk mengevaluasi apa saja yang telah dilakukan oleh tim, apa saja kendala yang ditemukan, dan apa yang akan dilakukan selanjutnya.

Untuk memastikan agar agile mencapai tujuannya, diciptakan sebuah agile manifesto (http://agilemanifesto.org)

Berikut kutipan dari agile manifesto

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 plan

That is, while there is value in the items on
the right, we value the items on the left more.

dari kutipan tersebut, dapat ditarik 4 nilai.

  1. Individuals and interactions over processes and tools

Individu dan interaksi lebih diutamakan dibandingkan proses dan alat-alatnya, karena yang memberikan respon terhadap kebutuhan klien adalah individu, bukannya proses, sehingga individu lah yang menjadi motor penggerak dalam pengembangan software ini. Jadi development akan lebih responsif terhadap kebutuhan klien.

Kami dari tim sulang terdiri dari 6 orang, melakukan interaksi tatap muka sebanyak 2 kali dalam satu minggu (stand up meeting). Dalam meeting tersebut, kami membahas progress yang sudah dilakukan sejak meeting terakhir. Kemudian kami merencanakan hal-hal yang akan dikerjakan selanjutnya, dengan mengambil task-task yang masih dalam tahap to-do.
Sejak restrospective pada sprint 1, kami mengusulkan adanya report progress setiap dua hari sekali. Hal ini terbukti menambah efektifitas kerja tim dan mengurangi miskomunikasi kami ketika menjalankan sprint kedua.

2. Working software over comprehensive documentation

Pada agile, lebih diutamakan working product terdeliver dengan cepat kepada klien sehingga kita bisa mendapatkan feedback lebih cepat, yang nantinya dapat digunakan untuk membuat produk menjadi lebih baik lagi. Dokumentasi-dokumentasi requirement diwujudkan sebagai user stories, dan itu sudah cukup untuk developer untuk memulai megimplementasikan fungsi yang diinginkan.

Pada pengembangan aplikasi suling, kami “mengeroyok” story bersama-sama dengan mengambil task-task yang berkaitan dengan story tersebut. pada setiap sprint kami mengerjakan suling hingga bisa digunakan (working product).

3. Customer collaboration over contract negotiation

Kolaborasi klien didalam iterasi pengembangan software akan menjadikan proses development menjadi lebih efektif. Hal ini pun akan menguntungkan kedua belah pihak, baik klien ataupun developer. Developer diuntungkan karena dapat mengetahui spesifikasi produk dengan lebih jelas dan mengeliminasi fitur yang kurang feasible ataupun tidak diinginkan. Klien juga diuntungkan karena produk yang jadi nantinya akan sesuai dengan kebutuhan dan keinginannya.

Dengan adanya keikutsertaan klien dalam proyek suling ini, kami lebih mudah dalam menerapkan hal-hal yang masih menjadi ambigu misalnya ketika ingin menentukan alur melamar lowongan suatu perusahaan dari seorang mahasiswa. Bapak Ari Wibisono, sebagai product owner menjadi jembatan antara klien dan kami sebagai developer.
Kami sudah melakukan beberapa kali pertemuan dengan beliau, membahas terkait requirement yang masih belum terdefinisi dengan baik. beliau juga turut hadir di dalam sprint review yang dilakukan ketika satu sprint sudah dijalankan.

4. Responding to change over following a plan

Requirement yang berubah-ubah seiring berjalannya pengembangan dapat diatasi dengan Agile. Iterasi dalam Agile cenderung pendek dan fitur baru dapat ditambahkan pada iterasi berikutnya jika diperlukan. Fleksibilitas dalam pengerjaan project dapat meningkatkan kualitas produk sehingga nilai dari produk dapat naik nantinya. Produk juga akan lebih sesuai dengan kebutuhan klien. Metodologi Agile ini berusaha membuat produk sedekat dengan apa yang dibutuhkan oleh klien.

Setelah mengadakan meeting beberapa kali dengan product owner, terdapat beberapa perubahan requirement, misalnya menghilangkan login dengan facebook dan google. dengan agile tim sulang siap dalam menanggulangi hal tesebut. selain terkait requirement, tim kami telah melakukan migrasi pada stack front end, yang mulanya adalah django templates, menjadi react.
Perubahan-perubahan tersebut dapat kami atasi dengan baik karena menerapkan metode agile dalam pengembangan aplikasi ini.

--

--