Anda di halaman 1dari 20

Project Management with Scrum

Pengenalan Pengembangan Aplikasi dengan


Pendekatan Agile

Devriady Pratama – Binus Online


Sejarah singkat
• lahir di pertemuan para senior di dunia pengembangan software
di Utah tahun 2001 untuk menyusun new management
paradigm.
• 17 pioneer mendiskusikan agile methodology tepatnya di
Snowbird Ski Resort di Utah dan menelurkan “Agile Manifesto”.
1. Kent Beck 7. James Grenning 13. Robert C. Martin
2. Mike Beedle 8. Jim Highsmith 14. Steve Mellor
3. Arie van Bennekum 9. Andrew Hunt 15. Ken Schwaber
4. Alistair Cockburn 10. Ron Jeffries 16. Jeff Sutherland
5. Ward Cunningham 11. Jon Kern 17. Dave Thomas
6. Martin Fowler 12. Brian Marick
Agile manifesto
Apa itu agile ?
• Agile adalah suatu metode Pengembangan yang punya rentang
waktu singkat (time box), dikerjakan terus-menerus secara
incremental (iterative) dimana kebutuhan dan fitur dari aplikasi
terus berkembang dan dapat berubah selama masa
pengembangan melalui kolaborasi antar anggota tim dan
pengguna.
• Agile bekerja dengan memecah kebutuhan proyek menjadi
kebutuhan-kebutuhan pengembangan yang kecil yang disebut
dengan user stories untuk kemudian di proses dalam cycle
pengembangan yang disebut dengan iterasi/sprint.
Fitur yang ditawarkan
Iterative
• Seluruh pekerjaan di distribusikan secara incremental dan disebut iterasi
• Pengembangan hanya focus kepada iterasi yang sudah di susun dan sifatnya cepat (mingguan)
• Setiap iterasi singkat dan sifatnya meneruskan dari itearsi sebelumnya dan mengikuti prioritas
yang ingin dikembangkan
Feature driven
• Pengembangan berdasarkan prioritas dari fitur yang memberikan dampak/value yang nyata.
• Prinsip 80/20 dimana berfokus untuk menyediakan 20% fitur utama yang akan digunakan untuk
mengcover 80% pekerjaan pengguna
Active Customer involvement
• User akan ikut dalam proses sprint untuk menyediakan kebutuhan
• Setiap iterasi akan di test dan di tunjukan ke client untuk mendapatkan persetujuan fitur sudah
sesuai kebutuhan
Fitur yang ditawarkan
Priority based delivery
• Penerapan prioritas terhadap fitur/user stories yang ada
• Prioritasi bukan hanya terhadap kebutuhan user, namun juga kebutuhan teknis/team yang ada
• Prioritas yang paling tinggi dan di kerjakan lebih dahulu
• Prioritasi dievaluasi pada setiap iterasi karena prioritasi bisa berubah pada perjalanan
pengembangan
Adaptive
• Perubahan sangat di terima pada saat proses pengembangan
• Tim sangat adaptif terhadap perubahan pada proses pengembangan
Empowered Teams
• Biasanya tim agile sedikit (maksimal 9) dan dengan interaksi/komunikasi yang baik
• Keputusan diambil bersama, tidak murni ada di ketua proyek
• Apabila dibutuhkan tim yang besar, tim sprint akan ditambah dan masing-masing sprint tim punya
fokusnya masing-masing
Fitur yang ditawarkan
People Centric
• Kemampuan tim lebih sangat dibutuhkan ketimbang proses baku yang harus diikuti
• Dokumentasi dan aktifitas yang tidak berdampak pada pengembangan menjadi prioritas
yang rendah
• Tim yang baik adalah apabila memiliki disiplin kemampuan yang beragam, ketimbang
spesialis pada skil tertentu saja
Rapid development
• Seluruh proses tersambung dari awal sehingga dibutuhakan presisi pada setiap iterasi
dari awal
Simplicity
• Mengedepankan solusi simple dan cepat
Fixed Time
• target pekerjaan/iterasi sifatnya sebentar (mingguan)
Cara kerja
Membuat list kebutuhan:
• Berdiskusi dengan user dan mengumpulkan seluruh kebutuhan fitur dari
software. Biasanya disebuh sebagai user stories dan akan mejadi list
kebutuhan
Memberikan bobot:
• Tim melakukan estimasi secara relative terhadap user stories yang ada
agar mendapat gambaran kasar lama pekerjaan
Memberikan prioritasi:
• Tim memberikan prioritasi bersama user mengenai fitur mana yang
paling penting dan perlu ada terlebih dahulu sehingga bisa disusun list
dengan urutan prioritas tertinggi
Cara kerja
pengembangan:
• Pengembangan adalah saat value di buat melalui proses pembuatan
aplikasi. Aplikasi yang disusun berdasarkan fitur paling prioritas terlebih
dahulu dan tidak perlu lengkap dahulu untuk bisa digunakan oleh user.
Perubahan di tengah proses :
• Pada saat proses iterasi, biasanya akan ditemukan beberapa hal seperti:
– Development sesuai target
– Kebutuhan development menjadi terlalu banyak
• Pada tahap ini, akan ada keputusan yang perlu diambil:
– Potong scope pengembangan sesuai dengan budget kontrak awal
– Negosiasi kontrak atas perubahan yang terjadi
Mengapa perlu menggunakan
agile
• Meningkatkan Keterlibatan Pelanggan
• Meningkatkan kualitas hasil pengembangan
• Penyederhanaan delivery
• Menurunkan risiko gagal karena tidak sesuai kebutuhan
pengguna
Kapan sebaiknya menggunakan
pendekatan agile
• User bersedia untuk ikut di tiap tahap pengembangan
• Hasil software dapat di pecah-pecah delivery nya
• Kebutuhan fleksibel/user belum tau secara lengkap
kebutuhannya
• Skill tim yang mumpuni
Keuntungan yang bisa di dapat
Untuk customer
• User lebih aktif terlibat dan masukannya adalah prioritas utama
• User mengetahui status secara teratur dan sering
• User confirm terhadap tiap hasil pengembangan
• Delivery value lebih cepat dan user lebih cepat menggunakan
fitur yang dikembangkan tanpa menunggu semuanya lengkap
• Lebih banyak pengujian dilakukan sehingga bagi pengguna, tidak
banyak kesalahan yang ditemukan pada saat penggunaan
software
Keuntungan yang bisa didapat
Untuk team
• Tim proyek terlibat lebih aktif di semua tahapan
• Tim secara kolaboratif mengambil keputusan
• Pengembangan bersifat Incremental sehingga bisa lebih focus
• Fokus pada pengembangan aplikasi
• Tim sering menerima umpan balik saat pengujian sehingga rework
terhindari
• Lebih sedikit waktu yang dihabiskan untuk mengumpulkan kebutuhan
karena semua kebutuhan tidak dikumpulkan di awal secara lengkap;
Keuntungan yang bisa didapat
Untuk team
• Cost of development lebih rendah karena hanya focus
kepada pengembangan software nya
• Tim mengembangkan aplikasi secara kolaboratif dan dalam
lingkungan kooperatif
• Diskusi non teknis jarang dilakukan sehingga tidak
membuang waktu yang tidak perlu bagi tim yang kebanyakan
teknikal
Kekurangan agile
• Dalam hal beberapa pengembangan software, terutama yang
besar, di awal proyek akan sulit untuk menilai effort yang
diperlukan
• Proyek dapat dengan mudah keluar jalur jika user tidak paham
atas kebutuhannya
• Hanya programmer senior/yang punya skill mumpuni yang
mampu mengambil keputusan yang diperlukan selama proses
pengembangan karena keputusan harus cepat dan tepat. Oleh
karena itu tidak ada tempat untuk programmer pemula, kecuali
jika dikombinasikan dengan programmer senior.
Waterfall vs agile
Waterfal vs agile
Perbedaan
Traditional Agile
Requirement Tetap di awal Dapat berubah
Time & people Bisa berubah Sebaiknya tetap
Customer involvement Di awal dan di akhir Dari awal sampai akhir
Negotiable Minim Tinggi
Testing Setelah selesai semua Setelah selesai sprint
Feedback Setelah selesai semua Setelah selesai sprint
Concentration on Proses dan review Hasil iterasi
Focus Terhadap rencana awal Terhadap value yang akan dihasilkan
Stages Requirment – design – code – test – Plan – do – check - adjust
feedback
Metodologi pendekatan agile
• Scrum
• Extreme Programming (XP)
• Dynamic Systems Development Method (DSDM)
• Feature-Driven Development (FDD)
• Lean and Kanban Software
• Development
• Crystal
Thank You

Anda mungkin juga menyukai