Agile Software Development
Dalam proses pengembangan software, ada banyak sekali metode pengembangan yang bisa digunakan. Metode pengembangan dilakukan untuk merencanakan dan mengendalikan proses pengembangan software itu sendiri. Setiap metode memiliki karakteristiknya tersendiri. Untuk setiap metode tidak harus cocok digunakan pada setiap proyek. Hal tersebut dipengaruhi oleh kondisi perusahaan, organisasi, dan ketersediaan sumber daya. Salah satu metode yang sedang populer saat ini adalah Agile Software Development.
Definisi Agile
Agile merupakan model pengembangan jangka pendek yang memerlukan adaptasi cepat dari developer terhadap perubahan dalam bentuk apapun. Dalam konteks Software Development, agile merupakan sebuah metodologi dalam pengembangan software. Metodologi ini menuntut developer untuk adaptif terhadap perubahan dalam bentuk apapun. Oleh karenanya, metode ini cocok untuk proyek yang spesifikasinya belum jelas di awal atau masih dapat berubah-ubah.
Ada beberapa hal yang perlu diperhatikan dalam agile
- Interaksi antar personal lebih penting daripada proses dan alat.
- Software yang berfungsi lebih penting daripada dokumentasi yang lengkap.
- Kolaborasi dengan client lebih penting daripada negoisasi kontrak.
- Sikap tanggap lebih penting daripada mengikuti rencana/plan.
Scrum
Ada banyak proses model yang mengimplementasikan agile, seperti:
1.Extreme Programmning (XP)
2.Adaptive Software Development (ASD)
3.Dynamic Systems Development Method (DSDM)
4.Scrum.
5.Crystal.
6.Feature Driven Development (FDD)
7.Agile Modeling (AM)
8.Rational Unified Process.
Pada proyek PPL ini, kami menggunakan model scrum. Scrum merupakan framework atau kerangka kerja yang digunakan pada proses pengembangan software yang mengimplementasikan konsep agile. Scrum memiliki roles, artifact, dan time-boxes yang membedakan scrum dengan agile framework lainnya.
Artifact
Spesifikasi software yang akan dibuat diberi istilah product backlog item (PBI). Sebelumnya, product owner terlebih dahulu membuat user stories yang merupakan sebuah narasi dari fitur yang user perlukan. Berikut merupakan template user stories
Pada dasarnya, setiap PBI akan dipecah menjadi task yang lebih kecil lagi oleh Dev team bersama dengan scrum master.
Roles
Di dalam scrum, ada 3 peran yang sangat penting, yaitu:
- Product owner — menyediakan spesifikasi software yang akan dibuat dalam bentuk product backlog dan mengelolanya, serta menjadi penjembatan antara tim client dan tim developer.
- Scrum master — bertanggungjawab untuk memastikan proses scrum berjalan dengan lancar, meningkatkan produktivitas tim, dan membantu product owner mencapai tujuannya, seperti menyusun dan memprioritaskan product backlog item.
- Development team — terdiri dari berbagai role, seperti developer, designer, dan tester. Bertanggungjawab untuk mengerjakan product backlog item yang sebelumnya sudah ditentukan oleh product owner sehingga siap diberikan ke user.
Time boxes
Di dalam scrum, pengembangan proyek dilakukan dengan beberapa masa pengerjaan yang disebut sprint. Sebuah sprint biasanya berlangsung selama satu sampai empat pekan, namu pada pengerjaan proyek PPL kali ini, satu sprint yang digunakan ialah 2 pekan. Adapun aktivitas yang dilakukan selama satu sprint antara lain:
- Sprint planning. Pada sesi ini, product owner akan menentukan product backlog item apa saja yang perlu dikerjakan pada satu sprint. Setiap PBI akan dipecah menjadi task-task yang lebih kecil. Setiap task tersebut kemudian diberikan sebuah story point yang merepresentasikan seberapa besar effort untuk mengerjakan task tersebut. Total story point ini digunakan pada akhir sprint untuk mengukur performa tim selama satu sprint dengan membandingkan total point yang diambil pada sprint planning dengan total point dari task-task yang mampu diselesaikan selama satu sprint tersebut dan selanjutnya dapat digunakan untuk pertimbangan dalam menentukan PBI atau load kerja yang akan di ambil pada sprint selanjutnya. Pada sesi ini juga dev team melakukan klarifikasi kepada PO jika ada PBI atau task yang masih kurang jelas atau masih ambigu.
- Daily standup meeting. Daily standup dilakukan selama beberapa kali dalam satu sprint. Pada proyek PPL ini, daily standup dilakukan dua kali dalam satu pekan. Daily standup biasanya dilakukan selama 15 menit dan dipimpin oleh scrum master. Fungsi dari daily standup adalah untuk menjaga komunikasi tim dan melakukan follow-up terhadap progress tim. Biasanya dalam format: Apa yang sudah dilakukan? Apa yang akan dilakukan selanjutnya/fokus hari ini? Apakah kamu memiliki kesulitan dalam pengerjaannya?
- Sprint review. Sesi ini dilakukan di akhir sprint. Pada sesi ini, setiap dev team melakukan demonstrasi terhadap fitur-fitur yang sudah dikerjakan selama satu sprint kemarin. Pada sprint review diharapkan semua fitur sudah siap untuk ditunjukkan tanpa alasan masih menunggu antrian pipeline dan sebagainya. Pada sesi ini setiap orang juga berhak menceritakan pertimbangan tertentu kenapa melakukan suatu hal sehingga hasilnya agak berbeda. Product owner bersama client memiliki hak untuk menentukan apakah sebuah backlog disebut selesai atau tidak. Jika tidak, perbaikannya dilakukan dalam sprint selanjutnya.
- Sprint retrospective. Sesi ini merupakan sesi yang paling seru. Sesi ini merupakan sarana bagi dev team untuk melakukan refleksi terhadap hal-hal yang terjadi selama masa satu sprint kebelakang. Jika ada hal-hal negatif, solusinya dapat dicari bersama-sama sehingga tidak terulang di sprint selanjutnya. Retro dapat dilakukan dalam berbagai bentuk.
Sekian dan terima kasih.
Sumber: