Pada awal pengembangannya, suatu
perangkat lunak sering kali dibuat tanpa ada perencanaan yang spesifik. Namun,
semakin besar dan kompleks sebuah sistem maka metodologi pengembangan dan
penentuan proses pengembangan pun menjadi sebuah keharusan pula. Metodologi
pengembangan perangkat lunak merupakan sebuah metodologi yang digunakan untuk
membuat struktur, rencana, dan kontrol pengerjaan suatu proyek. Proses
pengembangan perangkat lunak adalah model-model dan metodologi yang digunakan
untuk mengembangkan suatu perangkat lunak.
Dalam pengembangan perangkat
lunak, requirement yang sudah ada bisa saja berubah atau bertambah ketika
proses pengembangan sudah berjalan. Oleh karena itu, dibutuhkan suatu metode
pengembangan perangkat lunak yang dapat mendukung hal tersebut, yaitu metode
yang cepat dalam melakukan adaptasi terhadap perubahan requirement. Metode
tersebut tidak lain adalah Agile Software Development.
Agile
Agile Software Development adalah
sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada
prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang
memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun.
Dalam penerapannya, agile membantu tim developer untuk menghasilkan produk
secara lebih cepat. Hal ini dikarenaan penyampaian produk kepada klien tidak
dilakukan dalam satu tahap sekaligus, melainkan dilakukan secara kecil dan
bertahap (iteratif). Karena penyampaiannya yang iteratif, metode ini dapat
beradaptasi dengan baik terhadap perubahan requirement.
Agile manifesto:
Individu dan interaksi lebih
diutamakan dari proses dan sarana perangkat lunak.
Perangkat lunak yang bekerja
lebih diutamakan dari dokumentasi yang menyeluruh.
Kolaborasi dengan klien lebih
diutamakan dari negosiasi kontrak.
Tanggap terhadap perubahan lebih
diutamakan dari mengikuti rencana.
Dalam pelaksanaan Scrum pada tim,
kami telah menerapkan agile manifesto. Salah satu bentuk penerapannya adalah
dengan melakukan sharing setiap hari pukul 9 malam. Sharing ini dapat berupa
progress update dari pengerjaan proyek dan kendala-kendala yang dihadapi.
Terkadang kami juga melakukan sharing yang tidak berhubungan dengan pekerjaan
proyek, untuk membangun interaksi yang harmonis antar anggota tim (1).
Selain itu, kelompok kami juga
terbilang aktif untuk berkomunikasi dengan Product Owner terkait pengembangan
aplikasi. Komunikasi ini kami lakukan melalui group chat Telegram. Product
Owner dan kami sering kali melakukan diskusi terkait hal-hal teknis dalam
pengembangan aplikasi (3). Diskusi ini tidak jarang juga membawa perubahan atau
penambahan pada requirement yang telah ada sebelumnya (4).
Agile principles:
Kepuasan klien adalah prioritas
utama dengan menghasilkan produk lebih awal dan terus menerus.
Menerima perubahan kebutuhan,
sekalipun diakhir pengembangan.
Penyerahan hasil/software dalam
hitungan waktu dua minggu sampai dua bulan.
Bagian bisnis dan pembangun kerja
sama tiap hari selama proyek berlangsung.
Membangun proyek di lingkungan
orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang
mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
Komunikasi dengan berhadapan
langsung adalah komunikasi yang efektif dan efisien.
Perangkat lunak yang berfungsi
adalah alat ukur utama dari kemajuan proyek.
Dukungan yang stabil dari
sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang
berkesinambungan.
Perhatian kepada kehebatan teknis
dan desain yang bagus meningkatkan sifat agile.
Kesederhanaan sangat penting.
Arsitek. Kebutuhan dan desain
yang bagus muncul dari tim yang mengatur dirinya sendiri.
Secara periodik tim melakukan
evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Dalam pelaksanaan Scrum pada tim,
kami telah menerapkan agile principles. Hal ini dapat dilihat dari pelaksaan
sprint review sekitar 2 minggu sekali (3). Pada sprint review, product owner
memutuskan apakah hasil pekerjaan tim kami diterima atau tidak. Dari 2 sprint
review yang telah kami jalani, product owner menerima pekerjaan kami dengan
beberapa tambahan (2). Tambahan tersebut kami presentasikan kembali pada sprint
selanjutnya (1). Selain itu, kami juga senantiasa melakukan evaluasi diri
melalui sprint retrospective. Setelah melakukan evaluasi pada kelompok, kami
menyusun eksperimen perbaikan untuk meningkatkan kinerja pada sprint
selanjutnya (12).
Scrum
Scrum merupakan sebuah metode
iteratif yang termasuk dalam metode Agile tentang bagaimana cara mengelola dan
menjalankan sebuah proyek. Scrum adalah sebuah kerangka kerja di mana
orang-orang dapat menyelesaikan permasalahan kompleks yang senantiasa berubah,
di mana pada saat bersamaan menghasilkan produk dengan nilai setinggi mungkin
secara kreatif dan produktif. Kerangka kerja scrum terdiri dari scrum roles,
scrum artifacts, dan scrum rituals.

Penerapan Scrum dalam tim

Scrum roles
Product Owner: Orang yang
bertanggung jawab terhadap bisnis dari suatu produk, bertugas dalam menyusun
product backlog. Product Owner pada PPL 2019 ini adalah pengusul topik proyek.
Scrum Master: Orang yang bertugas
memimpin tim, memastikan tim berjalan baik dan tidak memiliki gangguan. Scrum
Master pada PPL 2019 ini adalah asisten dosen.
Development Team: Anggota tim
yang bertugas untuk mengembangkan produk. Development tim pada PPL 2019 ini
adalah mahasiswa yang mengambil mata kuliah PPL.
Scrum artifacts
Product Backlog: Daftar seluruh
hal-hal yang akan dikerjakan dalam proyek.
Sprint Backlog: Daftar hal-hal
yang akan dikerjakan dalam satu sprint.
Increment: Item dari Product
Backlog yang diselesaikan selama satu sprint. Increment dipresentasikan kepada
Product Owner pada setiap sprint review.
Scrum rituals
Fase inisiasi: Dalam kegiatan
ini, dilakukan pertemuan dengan Product Owner. Selain itu kami juga membuat
mock up serta melakukan set up environment.
Sprint planning: Kegiatan ini
bertujuan untuk menentukan apa yang akan dikerjakan selama satu sprint. Pada
kegiatan ini dilakukan pemilihan PBI menjadi Sprint Backlog. Sprint Backlog
kemudian dipecah menjadi beberapa task. Task ini akan ditugaskan kepada salah
satu anggota tim.
Sprint: Kegiatan ini merupakan
tahapan pengembangan produk. Masing-masing anggota tim membuat kode
implementasi dari task yang telah dipilih pada sprint planning.
Daily stand up: Pada PPL ini,
kami melakukan daily stand up sebanyak 2 kali seminggu. Kegiatan ini dilakukan
selama 15–30 menit. Setiap anggota tim melaporkan hal-hal apa saja yang sudah
dikerjakan dan yang akan dikerjakan, serta kendala yang dihadapi.
Sprint review: Kegiatan ini
berupa penilaian implementasi PBI yang telah dilakukan oleh tim. Development
team mempresentasikan hasil sprint kepada Product Owner, kemudian Product Owner
akan memutuskan apakah hasil sprint tersebut diterima atau ditolak.
Sprint retrospective: Kegiatan
ini bertujuan untuk mengetahui hal-hal baik dan buruk selama satu sprint. Hal
ini kami lakukan dengan menuliskan atau mengemukaan pendapat masing-masing
anggota tim. Kemudian, kami bersama-sama menyusun eksperimen perbaikan untuk
meningkatkan kinerja pada sprint selanjutnya.
Referensi:
What is Agile?. The Agile Coach.
Web. 20 Maret 2019. https://www.atlassian.com/agile
Manifesto Pengembangan Perangkat
Lunak Agile. Agile Manifesto. Web. 20 Maret 2019.
https://agilemanifesto.org/iso/id/manifesto.html
The Scrum Guides. Scrum Guides.
Web. 20 Maret 2019. https://www.scrumguides.org/scrum-guide.html
Komentar
Posting Komentar