1. Program Magister Teknik Informatika
Program Pascasarjana STMIK Amikom Yogyakarta
Agile Software Development
Mengenal Metode eXtreme Programming (XP), Feature
Driven Development (FDD), dan Scrum
oleh Kelompok 2, Kelas 13-S2TI-1B02
- Hendri Winarto
- Nanang Pradita
- Sapto Wimartono
- Candra Kurniawan
- Prajna Bhadra Darmastuti
2. The Agile Manifesto
Kami menemukan cara yang lebih baik untuk mengembangkan
perangkat lunak dengan melakukan dan membantu sesama untuk
menggunakannya. Melalui usaha ini kami telah dapat menghargai:
Individu dan interaksi lebih dari proses dan sarana
perangkat lunak
Perangkat lunak yang bekerja lebih dari dokumentasi yang
menyeluruh
Kolaborasi dengan klien lebih dari negosiasi kontrak
Tanggap terhadap perubahan lebih dari mengikuti rencana
Demikian, walaupun kami menghargai hal di sisi kanan, kami lebih
menghargai hal di sisi kiri.
Beck, Kent; et al. (2001). Manifesto Pengembangan Perangkat Lunak Agile. Agile
Alliance. http://agilemanifesto.org/iso/id/ - diakses pada 04 Oktober 2013
3. Apakah Agile Itu ?
• Kumpulan metode pengembangan Perangkat Lunak (PL) yang
menggabungkan filosofi :
• Mengutamakan kepuasan pelanggan dan rilis PL lebih awal,
secara inkremental
• Tim pengembangan PL dalam kelompok-kelompok kecil
bermotivasi tinggi (agile team)
• Menggunakan metode-metode informal
• Produk hasil rekayasa perangkat lunak minimal
• Kesederhanaan proses pengembangan secara keseluruhan
dan pedoman pengembangan :
• Mengutamakan rilis produk dari pada analisis dan desain
• Komunikasi aktif dan berkesinambungan antara pengembang dan
pelanggan
4. 12 Prinsip Agile
• 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 beberapa
minggu sampai beberapa bulan.
Pihak bisnis dan pengembang harus bekerja sama setiap hari
selama pengembangan berjalan.
Membangun proyek dilingkungan orang-orang yang
bermotivasi tinggi yang bekerja dalam lingkungan yang
mendukun dan yang dipercaya untuk dapat menyelesaikan
proyek.
5. 12 Prinsip Agile (lanjutan)
Komunikasi dengan berhadapan langsung adalah komunikasi
yang efektif dan efisien
Software yang berfungsi adalah ukuran 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 penting
• Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim
yang mengatur dirinya sendiri
• Secara periodik tim evaluasi diri dan mencari cara untuk lebih
efektif dan segera melakukannya.
6. Siapa Pelaku Agile ?
Software
Engineers
Agile
Team
Managers
Stakeholders
Customers
End Users
7. Kenapa Agile Diperlukan ?
• Lingkungan bisnis modern yang memerlukan perangkat lunak
dan sistem-sistem berbasis komputer senantiasa berubahubah dengan cepat
• Beberapa kelompok dan jenis perangkat lunak tertentu tidak
cocok jika dikembangkan dengan metode pengembangan
perangkat lunak konvensional, dan Agile terbukti telah
berhasil menghasilkan sistem yang berkualitas secara cepat
• Perubahan di tengah proses pengembangan tidak memicu
biaya tinggi
8. Kerangka Aktivitas pada Agile
Less:
More:
“Software Enginering Lite”, untuk mengistilahkan penggunaan semua kerangka
aktivitas dasar, namun lebih mementingkan pengembangan dan rilis produk
9. eXtreme Programming (XP)
• Dipublikasikan oleh Kent Beck (1999). Konsep yang diajukan adalah
menggunakan pendekatan berorientasi objek
• Salah satu ciri eXtreme Programming adalah adanya “Pair
Programming”, di mana dua orang programmer bekerja bersama di
satu komputer. Satu orang melakukan coding, sedangkan satu orang
lainnya akan melakukan review setiap baris kode yang diketikkan
orang pertama. Kedua orang tersebut bisa bertukar peran cukup
sering.
10. Nilai-Nilai pada XP
Kesederhanaan
• Mengerjakan apa yang diperlukan dan dipesan saja
• Memaksimalkan nilai produk sesuai anggarannya
Komunikasi
• Komunikasi setiap waktu karena semua adalah tim
• Setiap permasalahan diselesaikan bersama-sama
Umpan balik
• PL didemonstrasikan lebih awal, lebih sering
• Proses pengembangan beradaptasi thd masukan2
Penghargaan
• Semua orang berhak dihargai sebagai anggota tim
• Semua anggota tim menyumbangkan nilai pada PL
Keberanian
• Berani menyampaikan fakta kondisi pengembangan
• Siap terhadap perubahan, hadapi bersama-sama
12. Kelebihan XP
• Perencanaan diawali dari “cerita – cerita”
pelanggan sehingga tim pengembang akan mampu
menyediakan fitur - fitur yang sesuai harapan
pelanggan
• Meniadakan perencanaan yang terlalu rinci di awal
proses
• Coding mendahulukan pada fitur terpenting lebih
dulu
• Responsif terhadap perubahan
• Adanya Pair Programming menunjang kreativitas
dan fokus
• Integrasi berkelanjutan diharapkan tidak terjadi masalah
dalam kompatibilitas dan interfacing
13. Kelemahan XP
• Karena pelanggan merupakan anggota tim, permintaan untuk
perubahan fitur bisa dilakukan secara informal, beresiko
mengganggu scope pekerjaan
• Urutan prioritas fitur yang akan dikerjakan lebih dahulu bisa
bersifat subjektif
• Menekankan pada teamwork, komunikasi, dan pengaturan
prioritas, namun hal tersebut lebih cenderung dilakukan demi
menekan beban bekerja dalam lingkungan pengembangan
yang berubah-ubah
• Setiap aturan yang berlaku di XP hanya bekerja jika didukung
oleh aturan-aturan lainnya
• Lebih cocok untuk proyek dengan skala tidak terlalu besar.
Untuk skala besar, Industrial XP (IXP) lebih sesuai.
14. Feature-Driven Development
• FDD menekankan pada penggabungan beberapa metode
yang menjadi best practices di industri PL menjadi
kesatuan utuh
• Bersifat adaptif, dapat diterapkan pada proyek skala
menengah hingga skala besar
15. Filosofi FDD
1. Menekankan pada kolaborasi antar personil
pada tim FDD
2. Permasalahan dan kompleksitas proyek
dikelola menggunakan dekomposisi diikuti
integrasi inkrementasi PL
3. Pengkomunikasian detail teknis menggunakan
media verbal, grafis, dan teks
17. Kelebihan FDD
• Karena fitur merupakan boks kecil berupa fungsionalitas yang
modular, user dapat mendeskripsikannya dengan lebih
mudah, memudahkan review dan pengidentifikasian error
• Fitur dapat diorganisir dalam pengelompokan hierarkis
• Tim dapat mengembangkan fitur yang beroperasi tiap dua
minggu
• Karena fitur relatif kecil, representasi desain dan kodenya lebih
mudah untuk diinspeksi secara efektif
• Perencanaan, penjadwalan, dan pelacakan proyek
menyesuaikan dengan hierarki fitur
• Proses simpel dan lugas, namun tetap penuh perhitungan
18. Kekurangan FDD
• Tidak mencakup aktivitas pasca implementasi dan analisis
pendahuluan
• Adaptabilitas kurang karena tidak adanya perencanaan,
peninjauan, dan revisi di level iterasi
• Sangat memerlukan supervisi proyek secara intensif
19. Scrum
• Istilah “scrum” diambil dari aktivitas yang ada
pada pertandingan Rugby
• Merupakan kerangka kerja proyek yang
berorientasi pada peningkatan “successful
ending” atas proyek PL
• Memiliki ciri terdapatnya kelompok fungsional
yang terdiri atas 5 s.d. 9 anggota yang mampu
mengelola kelompoknya secara mandiri untuk
mengembangkan suatu produk
20. Prinsip-Prinsip Scrum
• Prinsip yang berlaku di Scrum konsistem dengan Agile
Manifesto dan digunakan sebagai pedoman bagi aktivitas
pengembangan dalam proses yang menggunakan Kerangka
Aktivitas : requirements, analysis, design, evolution, dan
delivery
• Pada setiap aktivitas, pekerjaan dilakukan dalam bentuk pola
proses yang dinamakan Sprint. Setiap pekerjaan yang
dilakukan dalam sprint disesuaikan dengan kompleksitas
permasalahan dan sering kali didefinisikan atau dimodifikasi
secara real-time oleh Scrum Team
21. Siklus Sprint pada Scrum
Setiap sprint memiliki target/tujuan yang sangat spesifik,
terukur, dan bisa dicapai
22. Scrum Meetings
• Rapat pendek (sekitar 15 menit) diadakan tiap hari pada
Scrum Team, membahas 3 pertanyaan kunci berikut :
• Apa yang telah Anda kerjakan sejak rapat tim terakhir ?
• Kendala-kendala apa saja yang Anda hadapi ?
• Apa yang Anda rencanakan untuk dicapai hingga rapat tim
berikutnya ?
• Scrum meeting dipimpin oleh pimpinan tim, diistilahkan
sebagai Scrum Master, memimpin rapat dan menginventarisir
respon dari masing-masing anggota tim
• Tujuan scrum meeting adalah membantu tim untuk
mendeteksi permasalahan yang berpotensi timbul sedini
mungkin
23. Kelebihan Scrum
• Kebutuhan sangat diperbolehkan untuk berubah sewaktuwaktu
• Proses pengembangan iteratif diatur oleh perencanaan dan
peninjauan secara cermat
• Peran serta aktif dari user
• Proses sederhana dan lugas
• Rilis bisa dilakukan lebih awal dan sering, mendemonstrasikan
fungsionalitas pada tiap akhir sprint
24. Kekurangan Scrum
• Integrasi baru dilakukan setelah semua increment selesai
• Skalabilitas terbatas
• Berdasar pada asumsi bahwa komunikasi antar personil akan
mencukupi untuk menjalankan proyek dalam berbagai ukuran
dan menjaga mereka untuk tetap fokus
• Tidak ada upaya menciptakan desain yang tegas
• Tidak adanya formalitas
25. Kondisi Tepat / Ideal
XP
FDD
Skala proyek tidak terlalu Skala proyek menengah
besar. Jika terlalu besar
hingga besar
tersedia pilihan
Industrial XP (IXP)
Scrum
Proyek dengan skala kecil
hingga menengah
dengan kebutuhan
skalabilitas terbatas.