Agile dan Scrum
Memahami metodologi Agile dan framework Scrum dalam pengembangan software
Agile
- Pendekatan pengembangan software yang adaptif dan iteratif
- Mengutamakan kolaborasi tim, feedback cepat, dan kemampuan beradaptasi
- Bukan satu metode spesifik, melainkan sekumpulan prinsip dan nilai
Agile Manifesto
Empat nilai utama Agile:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Scrum
- Framework Agile yang paling populer digunakan
- Mengorganisir pekerjaan dalam sprint pendek (1-4 minggu)
- Memiliki peran, event, dan artefak yang terdefinisi jelas
Peran dalam Scrum
Product Owner
- Mengelola dan memprioritaskan Product Backlog
- Mendefinisikan kebutuhan dan value untuk setiap fitur
- Menjadi jembatan antara tim dan stakeholder
- Membuat keputusan tentang apa yang dikerjakan
Scrum Master
- Memastikan tim mengikuti prinsip dan praktik Scrum
- Menghilangkan hambatan yang dihadapi tim
- Memfasilitasi event-event Scrum
- Bukan manajer, melainkan servant leader
Development Team
- Tim cross-functional yang mengerjakan produk
- Self-organizing, menentukan cara mengerjakan backlog
- Bertanggung jawab atas kualitas setiap increment
- Idealnya 3-9 orang
Artefak Scrum
Product Backlog
- Daftar semua kebutuhan dan fitur yang ingin dibangun
- Dikelola dan diprioritaskan oleh Product Owner
- Berubah seiring berkembangnya pemahaman tentang produk
Sprint Backlog
- Subset dari Product Backlog yang akan dikerjakan dalam sprint
- Dipilih oleh tim saat Sprint Planning
- Tidak berubah selama sprint berjalan
Increment
- Hasil kerja yang selesai dan siap dirilis di akhir sprint
- Harus memenuhi Definition of Done
- Setiap sprint menghasilkan satu increment yang bisa digunakan
Event dalam Scrum
Sprint
- Periode tetap 1-4 minggu untuk mengerjakan backlog
- Dimulai dengan Sprint Planning, diakhiri dengan Sprint Retrospective
- Tim menghasilkan increment yang selesai di setiap sprint
Sprint Planning
- Dilakukan di awal setiap sprint
- Tim memilih item dari Product Backlog
- Mendefinisikan Sprint Goal yang akan dicapai
Daily Standup (Daily Scrum)
- Pertemuan harian 15 menit
- Setiap anggota menjawab: apa yang dikerjakan kemarin, hari ini, dan apa hambatannya
- Bukan laporan ke Scrum Master, tapi sinkronisasi antar tim
Sprint Review
- Dilakukan di akhir sprint
- Tim mempresentasikan increment kepada stakeholder
- Stakeholder memberikan feedback untuk Product Backlog
Sprint Retrospective
- Dilakukan setelah Sprint Review
- Tim membahas apa yang berjalan baik dan apa yang perlu diperbaiki
- Menghasilkan action items untuk sprint berikutnya
Kanban
- Alternatif atau pelengkap Scrum
- Memvisualisasikan alur kerja dengan papan Kanban
- Membatasi Work in Progress (WIP) untuk menghindari bottleneck
- Lebih fleksibel, tidak ada sprint atau peran tetap
Perbedaan Scrum dan Kanban
| Aspek | Scrum | Kanban |
|---|---|---|
| Iterasi | Sprint tetap | Alur berkelanjutan |
| Perubahan | Tidak di tengah sprint | Kapan saja |
| Peran | Product Owner, Scrum Master, Team | Tidak ada peran tetap |
| Metrik | Velocity | Lead time, cycle time |
Praktik Terbaik
- Sprint Retrospective harus menghasilkan perubahan nyata
- Product Backlog harus selalu diperbarui dan diprioritaskan
- Hambatan harus diselesaikan secepat mungkin oleh Scrum Master
- Definition of Done harus jelas dan disepakati seluruh tim