13/10/2013
Agile Planning and Estimation Budi Irawan
facebook.com/deerawan
@masbugan
blog.budiirawan.com
Planning? Penting?
1
13/10/2013
Mana yang lebih Terencana? Aku mau menikah sama kamu tahun depan
1
Aku mau menikah sama kamu 18 Agustus 2013
Aku mau menikah sama kamu bulan Agustus tahun depan
2
3
Planning yg baik itu.... • Jelas waktunya • Sesuai dengan tujuan yg ingin dicapai
2
13/10/2013
Bikin software juga butuh planning
3
13/10/2013
Traditional Planning
Ciri Traditional Planning • Development dibagi2 menjadi fase • Fokus requirement dan design di awal
4
13/10/2013
Requirement Tidak Jelas • Takut masuk ke fase berikutnya • Design menunggu dari requirement
Tingkat Keberhasilan Kurang
32% project yang berhasil di-delivery Sumber: Standish Report 2009
5
13/10/2013
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 Sumber: Standish Report 2003
6
13/10/2013
Agile Planning
Ciri Agile Planning • Lebih fokus ke planning-nya dibanding plan itu sendiri • Memperbolehkan perubahan • Hasil dari plan dapat diubah • Dilakukan sepanjang project
7
13/10/2013
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
8
13/10/2013
Scrum
Apa itu Scrum?
Metodologi project management yg agile
9
13/10/2013
Mastahnya Scrum
Ken Schwaber
Mike Beedle
Jeff Sutherland
Mike Cohn
Pengguna Scrum
10
13/10/2013
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
11
13/10/2013
Role Scrum
Product Owner
• Yg Punya Visi • Representasi Customer
12
13/10/2013
Product Owner Tasks • • • •
Mendefinisikan fitur (sesuai visi) Memprioritaskan fitur (sesuai ROI) Menentukan tanggal rilis Memberikan feedback
Product Owner Tasks (2) • Mengelola stakeholder • Menerima atau menolak hasil
13
13/10/2013
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
14
13/10/2013
Scrum Master
• Scrum Guide • Pelindung team • Troubleshooter • Pelayan sesama
Scrum Master Tasks • • • • •
Meminimalisir hambatan Mencegah adanya interupsi pekerjaan Memfasilitasi team Mendukung proses Mengelola manajemen
15
13/10/2013
Role Scrum
Product Owner
Scrum Master
3
The Team
Alur Scrum
16
13/10/2013
Alur Scrum
Product Backlog Prioritas
Item #
Deskripsi
Estimasi
Assigned
1
Setup Requirement
13
VP
2
Eksplorasi Teknologi
1
ZG
3
User dapat melakukan registrasi
3
VP
4
User dapat login ke sistem
5
ZG
5
Pengaturan jadwal meeting dengan klien
2
CP
6
Siapkan berkas kontrak
1
ZG
Very High
High
Medium
17
13/10/2013
Product Backlog • • • • •
Dimiliki oleh Product Owner High level requirements Representasi business value Dapat berevolusi untuk berubah Ada skala prioritas dan estimasi
Product Backlog
Prioritas Prioritas
Estimasi
Item #
Deskripsi
Estimasi
Assigned
1
Setup Requirement
13
VP
2
Eksplorasi Teknologi
1
ZG
3
Sebagai User, saya dapat melakukan registrasi
3
VP
4
Sebagai User, saya dapat login ke sistem
5
ZG
5
Pengaturan jadwal meeting dengan klien
2
CP
6
Siapkan berkas kontrak
1
ZG
Very High
High
User Story
Medium
18
13/10/2013
User Story As a <user> I want
(so that ) As an admin I want to be able to search user Versi Indonesia Sebagai admin saya ingin bisa mencari user yang terdaftar
Estimasi Pakai Story Point Story point => seberapa besar usaha untuk menyelesaikan story 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
19
13/10/2013
Sprint
Sprint • Ada batasan waktu (2 – 4 minggu) • Yg mau dikerjakan fixed • Ada hasil yg bisa dideliver
20
13/10/2013
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
21
13/10/2013
Sprint Backlog • Dimiliki oleh team • Breakdown item yg di product backlog • Tidak boleh ada penambahan/pengurangan
Product dan Sprint Backlog Product Backlog
Sprint 1
Sprint 2, dst
22
13/10/2013
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
Setup email server
CP
Done
Desain UI form email
ZG
In Progress
Sebagai user, saya bisa kirim email ke user lain
20
Velocity Velocity => jumlah poin yang berhasil diselesaikan tiap sprint Velocity 70
62
60 50
53
50 41
40
Velocity
30 20 10 0 Sprint 1
Sprint 2
Sprint 3
Sprint 4
Velocity dapat digunakan untuk prediksi sprint planning berikutnya
23
13/10/2013
Hitungan2 Poin Product Backlog => 100 poin Velocity => 20 poin Kira2 ada berapa total sprint yang harus dilakukan?
5 Jika, satu sprint durasinya 2 minggu, berapa lama software ini selesai?
10 minggu
Daily Scrum
Meeting harian max 15 menit Yg hadir: Team, Scrum Master Dilakukan berdiri Tidak ada problem solving
24
13/10/2013
Daily Scrum Untuk tiap anggota tim sharing Apa yg saya lakukan kemarin? Apa yg saya mau lakukan berikutnya? Hambatan apa yang saya temui?
Scrum Board
25
13/10/2013
Scrum Board
Free Digital Board
26
13/10/2013
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
Coba gambarkan Burndown Chart-nya!
27
13/10/2013
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
28
13/10/2013
Sprint Retrospective Kita harus coba pakai github deh Ah, Jenkins susah bgt dipakai Ini netbeans enak dipakai
Scrum Artifact • Product Backlog • Sprint Backlog • Burndown Chart
3 29
13/10/2013
Scrum Meeting • • • •
Sprint Planning Sprint Review Sprint Retrospective Daily Scrum Meeting
4
Estimasi Biaya
30
13/10/2013
Bikin software juga butuh uang
31
13/10/2013
Estimasi biaya software itu tidak mudah
Gimana Kalau... 1. 2. 3. 4. 5.
Requirement belum jelas Di tengah project butuh programmer baru Perubahan hardware Teknologi yang masih awam Dsb.....
32
13/10/2013
Biaya software = Cost + Profit
Jenis Cost 1. Effort cost (programmer, manager, dsb) 2. Hardware dan software cost termasuk maintenance 3. Travel dan training cost 4. Operational cost (listrik, air, sewa)
33
13/10/2013
3 2 Cara Estimasi 1. Berdasarkan pengalaman 2. Referensi 3. Algoritma Modelling Cost
1) Berdasarkan Pengalaman 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
34
13/10/2013
2) Referensi
What we have learned?
35
13/10/2013
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 • 2 cara estimasi cost
36
13/10/2013
Your Mission
The Mission Let’s see Mission 4
37
13/10/2013
Thank You
38