1
Agile Planning and Estimation
Budi Irawan
facebook.com/deerawan @masbugan blog.budiirawan.com
Mana yang lebih Terencana?
Aku mau menikah sama kamu tahun depan Aku mau menikah sama kamu 18 Agustus 2013 Aku mau menikah sama kamu bulan Agustus tahun depan1
2
3
Planning yg baik itu....
• Jelas waktunya
3
Traditional Planning
Ciri Traditional Planning
• Development dibagi2 menjadi fase • Fokus requirement dan design di awal
5
Requirement Tidak Jelas
• Takut masuk ke fase berikutnya • Design menunggu dari requirement
Tingkat Keberhasilan Kurang
32% project yang berhasil di-delivery
Tidak ada Waktu Testing
• Kualitas software dipertanyakan
• Telat integrasi berarti error/bug bakal makin banyak di akhir
Sia-Sia
52% requirement yg terimplementasi
64% fitur jarang digunakan
7
Ciri Agile Planning
• Lebih fokus ke planning-nya dibanding plan itu sendiri
• Memperbolehkan perubahan • Hasil dari plan dapat diubah • Dilakukan sepanjang project
Prinsip Agile
1) Puaskan customer 2) Menerima perubahan 3) Delivery secara teratur 4) Bekerja sebagai team 5) Memotivasi orang
6) Komunikasi face-to-face
Prinsip Agile (2)
7) Mengukur kerja software
8) Maintain langkah secara konstan 9) Kualitas itu penting
10) Keep it Simple
11) Design yg berevolusi 12) Refleksi secara teratur
9
Scrum
Metodologi project management yg agile
Mastahnya Scrum
Ken Schwaber Jeff Sutherland
Mike Beedle Mike Cohn
11
Scrum
• Fokus memberikan value dalam waktu yang singkat ke user
• Secara cepat pihak user dapat melakukan review terhadap pengerjaan sistem
Scrum (2)
• Adanya prioritas fitur yang mau dikerjakan • Deliverable dapat dilihat dalam waktu singkat
Role Scrum
Product Owner
• Yg Punya Visi
13
Product Owner Tasks
• Mendefinisikan fitur (sesuai visi) • Memprioritaskan fitur (sesuai ROI) • Menentukan tanggal rilis
• Memberikan feedback
Product Owner Tasks (2)
• Mengelola stakeholder
The Team
• 5 – 9 orang
• Colocated (satu tempat) • Cross Functional
• Self Organized • Full Time
The Team Tasks
• Mendefinisikan pekerjaan • Melakukan estimasi pekerjaan • Mengembangkan software • Menjamin kualitas
15
• Scrum Guide • Pelindung team • Troubleshooter • Pelayan sesama
Scrum Master Tasks
• Meminimalisir hambatan
• Mencegah adanya interupsi pekerjaan • Memfasilitasi team
• Mendukung proses • Mengelola manajemen
Role Scrum
Product
Owner Master Scrum
The Team
3
17
Alur Scrum
Product Backlog
Prioritas Item # Deskripsi Estimasi Assigned Very High
1 Setup Requirement 13 VP
2 Eksplorasi Teknologi 1 ZG
High
3 User dapat melakukan registrasi
3 VP
4 User dapat login ke sistem
5 ZG
Medium
5 Pengaturan jadwal meeting dengan klien
2 CP
Product Backlog
• Dimiliki oleh Product Owner • High level requirements • Representasi business value • Dapat berevolusi untuk berubah • Ada skala prioritas dan estimasi
Product Backlog
Prioritas Item # Deskripsi Estimasi Assigned
Very High
1 Setup Requirement 13 VP
2 Eksplorasi Teknologi 1 ZG
High
3 Sebagai User, saya dapat melakukan registrasi
3 VP
4 Sebagai User, saya dapat login ke sistem
5 ZG
Medium
5 Pengaturan jadwal meeting dengan klien
2 CP
6 Siapkan berkas kontrak 1 ZG
Prioritas Estimasi
19
User Story
As a
<user>
I want
<functionality>
(so that
<benefit>
)
As an
admin
I want
to be able to search
user
Sebagai
admin
saya ingin bisa
mencari
user yang terdaftar
Versi Indonesia
Estimasi Pakai Story Point
Gunakan angka: 1, 2, 3, 5, 8, 13, 20, 40, 100
Story point Story 5 Fitur Login
Fitur Registrasi 20 Fitur manajemen user
Fitur manajemen berita Fitur manajemen mahasiswa 100 Fitur API
Sprint
Sprint
• Ada batasan waktu (2 – 4 minggu) • Yg mau dikerjakan fixed
21
Sprint Planning
• Planning strategis • Memberi pemahaman fitur • Memprioritaskan dan memilih fitur• Membuat kriteria fitur selesai
Sprint Planning (2)
• Mendefinisikan sprint backlog
• Estimasi sprint backlog • Menggunakan velocity • Share komitmen
Durasi 1 – 2 jam per sprint
Sprint Backlog
• Dimiliki oleh team
• Breakdown item yg di product backlog
• Tidak boleh ada penambahan/pengurangan
Product dan Sprint Backlog
23
Contoh Sprint Backlog
Story Poin Task Assigned Status
Sebagai user, saya bisa login ke sistem
13 Buat skema database user
VP Done
Desain UI form login ZG Done Backend coding VP In Progress
Testing ZG In Progress Sebagai user, saya bisa kirim email ke user lain
20 Setup email server CP Done
Desain UI form email ZG In Progress
Velocity
50 41 62 53 0 10 20 30 40 50 60 70Sprint 1 Sprint 2 Sprint 3 Sprint 4
Velocity
Velocity
Velocity => jumlah poin yang berhasil diselesaikan tiap sprint
Velocity dapat digunakan untuk prediksi sprint planning berikutnya
Hitungan2 Poin
Product Backlog => 100 poin
Velocity => 20 poin
Kira2 ada berapa total sprint yang harus dilakukan?
Jika, satu sprint durasinya 2 minggu, berapa lama software ini selesai?
5
10 minggu
Daily Scrum
Meeting harian max 15 menit Yg hadir: Team, Scrum Master Dilakukan berdiri
25
Daily Scrum
Apa yg saya lakukan kemarin?
Apa yg saya mau lakukan berikutnya? Hambatan apa yang saya temui?
Untuk tiap anggota tim sharing
Scrum Board
27
Burndown Chart
Untuk melihat sejauh mana story dikerjakan
Burndown Chart
Story Poin Hari ke-1 Hari ke-2
Sebagai user, saya bisa login
20 10 5
Sebagai user, saya bisa registrasi
20 20 0
Remaining 40 30 10
Sprint Review
Informal, ga usah ada slides Semua anggota team hadir Pihak yg berkepentingan hadir Tunjukkan semua fitur
Puaskan Product Owner Dapatkan feedback
Terima atau tolak hasil pekerjaan 1 – 2 jam per sprint
Sprint Retrospective
What to start doing What to stop doing What to continue doing Cukup anggota team yg hadir
Durasi 1 – 2 jam per sprint
29
Sprint Retrospective
Kita harus coba pakai github deh Ah, Jenkins susah bgt dipakai Ini netbeans enak dipakai
Scrum Artifact
• Product Backlog • Sprint Backlog
Scrum Meeting
• Sprint Planning • Sprint Review
• Sprint Retrospective
• Daily Scrum Meeting
4
31
Estimasi biaya software itu tidak mudah
Gimana Kalau...
1. Requirement belum jelas
2. Di tengah project butuh programmer baru 3. Perubahan hardware
4. Teknologi yang masih awam 5. Dsb...
33
Biaya software = Cost + Profit
Jenis Cost
1. Effort cost (programmer, manager, dsb) 2. Hardware dan software cost termasuk
maintenance
3. Travel dan training cost
3 2 Cara Estimasi
1. Berdasarkan pengalaman 2. Referensi
3. Algoritma Modelling Cost
Eike pernah ngerjain sistem informasi akademik di kampus A cuma 100 juta dengan fitur2 mirip bo!
Dulu sih thn 2002 bikin fitur itu cuma 1 juta, sekarang sudah jadi 6 juta
35
2) Referensi
What we Have Learned?
• Traditional vs agile planning • 3 Role Scrum
• Product Backlog • Sprint Backlog
• Sprint Planning, Sprint Review, Sprint Retro
What we Have Learned?
• Daily Scrum • Jenis Cost
37