Agile? Mengapa sesuatu yang hanya komplain juga merupakan metodologi?
Bagaimana bisa sesuatu yang hanya komplain-komplain saja menjadi suatu metodologi dalam pengerjaan software? Ya, dalam suatu meme dari Scott Adams, Agile memungkinkan kita untuk melakukan perubahan ditengah-tengah pengerjaan suatu proyek yang telah dibuat. Namun hal tersebut tidak selalu menggambarkan Agile yang sebenarnya, yuk simak Agile lebih lanjut.
Pengertian Agile
Agile merupakan suatu metodologi pada pengembangan software melalui pendekatan pada project management dengan menggunakan teknik iterasi dan juga bertahap yang dikenal dengan Sprint. Agile memiliki tujuan untuk menghasilkan software yang memenuhi kebutuhan pengguna dan tim dapat merespon dengan cepat kebutuhan yang diinginkan sehingga dapat menghemat waktu dan biaya.
Pengembangan software secara Agile menekankan empat konsep yaitu :
- Individual and team interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Scrum
Scrum merupakan salah satu metode agile yang berfokus pada mengatur dan mengelola dalam menjalankan suatu proyek. Scrum merupakan framework terbaik untuk merevolusi cara kerja tim dalam menyelesaikan pekerjaan. Scrum memiliki beberapa bagian yaitu Scrum Values, Artifacts, Roles, dan Events.
Scrum Values
Terdapat 5 nilai yang harus dimiliki dari anggota Scrum dalam menjalankan suatu proyek yaitu Commitment, Focus, Openness, Respect, and Courage.
- Commitment — berarti berkomitmen untuk mencapai tujuan dan saling mendukung satu sama lain.
- Focus — berarti berfokus pada setiap Sprint yang dilakukan sehingga selalu lebih baik pada setiap Sprint yang dilakukan.
- Openness — berarti setiap anggota Scrum dan stakeholders selalu terbuka terhadap pekerjaan dan tantangannya.
- Respect — berarti setiap anggota Scrum dapat saling menghargai satu sama lain
- Courage — berarti setiap anggota Scrum dapat berani untuk melakukan suatu hal yang benar dan menghadapi kesulitan.
Scrum Artifacts
Spesifikasi software termasuk fitur, fungsi, kebutuhan, peningkatan, dan perbaikan pada rilis terbaru yang akan dibuat disebut sebagai product backlog. Isi dari product backlog ini bersifat dinamis karena dapat berubah-ubah sesuai keinginan customer-nya. Daftar-daftar dalam product backlog disebut dengan product backlog items yang ditanggung jawabkan oleh Product Owner.
Scrum Roles
Setelah mengetahui apa saja nilai-nilai yang harus dimiliki pada setiap anggota, lalu kemudian kita akan mengetahui roles apa saja yang ada pada Scrum.
- Product Owner — merupakan seseorang yang bertanggung jawab untuk memastikan tim memaksimalkan produk yang dihasilkan dari tim scrum. PO juga bertugas membuat dan mengelola product backlog, selain itu juga sebagai jembatan penghubung antara tim bisnis dan tim pengembang.
- Scrum Master — merupakan seseorang yang bertugas sebagai pendukung dan penyokong tim dalam proses scrum, dapat berjalan dengan baik. Selain itu scrum master juga bertugas untuk membantu product owner dalam mencapai tujuannya.
- Development Team — merupakan tim yang bertugas untuk mengerjakan product backlog yang telah dibuat oleh product owner hingga dapat digunakan oleh user atau konsumen.
Scrum Events
Terdapat event-event yang ada pada scrum di antaranya adalah Sprint, Sprint Planning, Daily Scrum, Sprint Review, dan Sprint Retospective.
- Sprint — Sprint merupakan detak jantung Scrum, dimana merupakan waktunya pengerjaan task yang telah dibagikan. Sprint juga berdurasi 1 bulan atau kurang untuk menciptakan konsistensi dan akan berlanjut setelah sprint sebelumnya selesai. Semua pekerjaan yang diperlukan untuk mencapai tujuan produk, termasuk Sprint Planning, Daily Scrum, Sprint Review, dan Sprint Retospective ada dalam sprint.
- Sprint Planning — sebelum memulai suatu sprint akan dilakukan perencanaan sprint yaitu product owner membagikan product backlog item yang akan dikerjakan kepada tim pengembang. Kemudian PBI akan dipecah-pecahkan menjadi lebih kecil atau disebut dengan task. Pada tiap task tersebut akan diberikan story point atau berat beban dari task tersebut guna merepresentasikan besaran effort untuk mengerjakan task tersebut.
- Daily Scrum — merupakan pertemuan rutin yang dilakukan beberapa kali pada tiap minggunya. Pertemuan ini dimaksudkan untuk menanyakan seberapa jauh progress yang dilakukan atas task yang diambil dari tiap individu dari tim pengembang. Biasanya berdurasi 15 hingga 30 menit dengan format Apa saja yang telah dilakukan? Apa kendala yang dihadapi? Apa yang akan dilakukan besok?
- Sprint Review — merupakan bagian akhir dari sprint yaitu akan dihadiri oleh customer dan setiap tim pengembang melakukan demonstrasi terhadap fitur-fitur yang sudah dikerjakan selama satu sprint kemarin. Diharapkan semua fitur yang dikerjakan sudah siap untuk ditunjukkan tanpa alasan masih menunggu antrian pipeline dan sebagainya. Customer juga biasanya akan memberikan feedback terkait pengerjaan yang dilakukan dan mungkin akan dapat mengubah apabila dikiranya berbeda dari yang diminta.
- Sprint Retospective — Pada sesi ini merupakan sarana untuk merefleksikan diri terkait yang telah terjadi pada pengerjaan di sprint lalu dan memperbaiki apabila terdapat hal-hal yang dikiranya cukup buruk dan meningkatkan pengerjaan pada sprint berikutnya. Solusi akan dicari bersama-sama sehingga tidak terulang pada sprint berikutnya.
Agile dalam Kelompok PPL
Pada tahun ini saya (Aan Nur Wahidi) sebagai mahasiswa Fasilkom Universitas Indonesia mengambil mata kuliah PPL (Proyek Perangkat Lunak). Dalam mata kuliah ini akan dibagi suatu kelompok untuk mengerjakan proyek yang diminta client dan partners yang telah bekerja sama dengan kampus kita. Adapun proyek yang kita ambil adalah Hepi Circle-Admin yaitu aplikasi Hepi Circle namun untuk Administratornya.
Siapa saja yang ada di dalamnya?
- Client — Untuk client yaitu dari pihak hepi circle dengan perwakilan Bu Kumala Sari
- Partners — Untuk perihal coding kita memiliki Pak Anthony, dan untuk design yaitu Kak Veronica
Kemudian pada Proyek ini kita menggunakan scrum untuk pengerjaannya, berikut adalah siapa saja role-rolenya.
- Product Owner — PO pada proyek kami adalah Kak Darin
- DevOps — DevOps yang akan me-manage source code kita yaitu Kak William Gates
- Scrum Master — Scrum master pada proyek kami yaitu Kak Janita
Bagaimana ketentuannya?
Pada PPL tahun ini akan diadakan sprint sebanyak 5 kali dengan waktu per-sprint 2 minggu. Namun pada pertengahan sprint atau dengan kata lain 1 minggu setelah sprint berjalan akan ada Individual Review. Individual Review ini cukup berbeda, selain kita memberitahukan progress pada proyek kita, kita juga diharapkan untuk membuat artikel tentang topik yang disediakan dan mengaitkannya dengan proyek kita. Ya artikel inilah salah satunya. Kemudian setelah sprint berakhir akan dilakukan Sprint Review. Sprint Review yaitu kita akan mempresentasikan apa saja yang telah kami kerjakan kepada dosen, scrum master, PO, partners, client, dan DevOps. setelah berakhir akan dilakukan Sprint Retrospective, yaitu merefleksikan diri pada sprint yang dilalui, memperbaiki apa yang kurang baik, apa yang perlu dipelajari lagi, setelah itu akan dimulai kembali sprint berikutnya dengan pemilihan task yang ingin diambil.
Bagaimana cara saya membiasakannya?
Tentunya bagi yang baru pertama kali melakukan scrum cukup sulit untuk awal-awalnya, dan saya termasuk ke dalamnya. Pada awal sprint saya beserta tim saya cukup kesulitan untuk menerapkannya, karena kami terbiasa dengan deadliner. Belum lagi ini merupakan kali pertama bagi kami untuk mengerjakan proyek dengan framework Flutter. Lalu apa saja yang saya lakukan untuk membiasakan hal ini?
- Buat jadwal perhari, apa saja yang dilakukan. Hal ini menjadi sangat membantu kalian dalam menjaga keseimbangan dengan mata kuliah lain dan tentunya tidak ada yang namanya begadang sampai pagi.
- Usahakan tiap hari selalu ada progress dalam untuk memenuhi Sprint. Pada kali ini tim kami beserta asdos pada 2 sprint akhir telah menerapkan daily update yaitu setiap hari kumpul untuk melaporkan progress apa saja yang dilakukan pada hari tersebut. Hal ini dikarenakan tim kami memiliki kesibukannya masing-masing atau kendala hingga melupakan komunikasi antar tim.
- Menyelesaikan task sebelum deadline yang ditentukan. Hal ini bermaksud untuk tidak menjadi deadliner, saya sudah mengurangi hal ini sejak sprint 2 agar dapat membantu tim apabila memiliki kendala.
- Kumpul untuk coding bersama. Saya mengakui melakukan ini sangat-sangat membantu tim dalam meningkatkan produktivitasnya, bahkan dapat menyelesaikan sekian banyak task hanya dalam beberapa pertemuan saja. Jadi lebih seringlah kalian untuk kumpul bersama, walau tidak hanya untuk coding saja.
Seperti yang kalian lihat agile, scrum dapat merubah kepribadian Anda menjadi lebih disiplin dan tertruktur. Serta membiasakan Anda untuk bekerja sama dengan orang lain mau siapapun orangnya.
Kesimpulan
Agile merupakan metodologi yang cukup baik untuk menjalankan suatu proyek pada zaman sekarang ini yang selalu terjadi perubahan. Scrum adalah salah satu bagian dari agile. Scrum merupakan jenis agile yang baik untuk mengubah kepribadian seseorang menjadi lebih baik dalam menjalankan suatu proyek. Karena itu Scrum Values muncul menjadi bagian dari Scrum, namun tidak semua proyek dapat menggunakan metodologi ini karena tergantung dari kebutuhan customer. Metode ini dapat merubah kepribadian Anda menjadi lebih baik terutama dalam menjalankan proyek yang memerlukan kerja sama tim.
References
- https://magnaqm.com/project-management-articles/serba-serbi-scrum-artefak-bagian-3/
- https://www.scrum.org/resources/what-is-scrum
- https://blog.hacktiv8.com/membedah-pengertian-agile-scrum/
- https://scrumguides.org/scrum-guide.html
- https://tomps.id/apa-itu-scrum-master-ini-pengertian-tugas-dan-sertifikasi-lengkapnya/