Post on 08-Jul-2015
Agile Software DevelopmentMengenal Metode eXtreme Programming (XP), Feature Driven Development (FDD), dan Scrum
Program Magister Teknik InformatikaProgram Pascasarjana STMIK Amikom Yogyakarta
oleh Kelompok 2, Kelas 13-S2TI-1B02- Hendri Winarto - Nanang Pradita- Sapto Wimartono - Candra Kurniawan- Prajna Bhadra Darmastuti
The Agile Manifesto
Kami menemukan cara yang lebih baik untuk mengembangkanperangkat 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 kontrakTanggap 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
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
12 Prinsip Agile
• Kepuasan klien adalah prioritas utama dengan menghasilkanproduk lebih awal dan terus menerus.
• Menerima perubahan kebutuhan, sekalipun diakhirpengembangan.
• Penyerahan hasil/software dalam hitungan waktu beberapaminggu sampai beberapa bulan.
Pihak bisnis dan pengembang harus bekerja sama setiap hariselama pengembangan berjalan.
Membangun proyek dilingkungan orang-orang yangbermotivasi tinggi yang bekerja dalam lingkungan yangmendukun dan yang dipercaya untuk dapat menyelesaikanproyek.
12 Prinsip Agile (lanjutan)
Komunikasi dengan berhadapan langsung adalah komunikasiyang efektif dan efisien
Software yang berfungsi adalah ukuran utama dari kemajuanproyek
Dukungan yang stabil dari sponsor, pembangun, danpengguna diperlukan untuk menjaga perkembangan yangberkesinambungan
• Perhatian kepada kehebatan teknis dan desain yang bagusmeningkatkan sifat agile
• Kesederhanaan penting
• Arsitektur, kebutuhan dan desain yang bagus muncuk dari timyang mengatur dirinya sendiri
• Secara periodik tim evaluasi diri dan mencari cara untuk lebihefektif dan segera melakukannya.
Siapa Pelaku Agile ?
Software Engineers
Stakeholders
Agile Team
Managers
Customers End Users
Kenapa Agile Diperlukan ?
• Lingkungan bisnis modern yang memerlukan perangkat lunak dan sistem-sistem berbasis komputer senantiasa berubah-ubah 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
Kerangka Aktivitas pada Agile
Less: More:
“Software Enginering Lite”, untuk mengistilahkan penggunaan semua kerangkaaktivitas dasar, namun lebih mementingkan pengembangan dan rilis produk
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.
Nilai-Nilai pada XP
• Mengerjakan apa yang diperlukan dan dipesan saja
• Memaksimalkan nilai produk sesuai anggarannyaKesederhanaan
• Komunikasi setiap waktu karena semua adalah tim
• Setiap permasalahan diselesaikan bersama-samaKomunikasi
• PL didemonstrasikan lebih awal, lebih sering
• Proses pengembangan beradaptasi thd masukan2Umpan balik
• Semua orang berhak dihargai sebagai anggota tim
• Semua anggota tim menyumbangkan nilai pada PLPenghargaan
• Berani menyampaikan fakta kondisi pengembangan
• Siap terhadap perubahan, hadapi bersama-samaKeberanian
Kerangka Aktivitas pada XP
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
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.
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
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
Kerangka Aktivitas FDD
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
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
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
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
Siklus Sprint pada Scrum
Setiap sprint memiliki target/tujuan yang sangat spesifik, terukur, dan bisa dicapai
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
Kelebihan Scrum
• Kebutuhan sangat diperbolehkan untuk berubah sewaktu-waktu
• 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
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
Kondisi Tepat / Ideal
XP FDD Scrum
Skala proyek tidak terlalu besar. Jika terlalu besar tersedia pilihan Industrial XP (IXP)
Skala proyek menengah hingga besar
Proyek dengan skala kecil hingga menengah dengan kebutuhan skalabilitas terbatas.
Terima Kasih