kelompok 2 agile software development

26
Agile Software Development Mengenal Metode eXtreme Programming (XP), Feature Driven Development (FDD), dan Scrum Program Magister Teknik Informatika Program Pascasarjana STMIK Amikom Yogyakarta oleh Kelompok 2, Kelas 13-S2TI-1B02 - Hendri Winarto - Nanang Pradita - Sapto Wimartono - Candra Kurniawan - Prajna Bhadra Darmastuti

Upload: hendri-winarto

Post on 08-Jul-2015

537 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Kelompok 2   agile software development

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

Page 2: Kelompok 2   agile software development

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

Page 3: Kelompok 2   agile software development

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

Page 4: Kelompok 2   agile software development

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.

Page 5: Kelompok 2   agile software development

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.

Page 6: Kelompok 2   agile software development

Siapa Pelaku Agile ?

Software Engineers

Stakeholders

Agile Team

Managers

Customers End Users

Page 7: Kelompok 2   agile software development

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

Page 8: Kelompok 2   agile software development

Kerangka Aktivitas pada Agile

Less: More:

“Software Enginering Lite”, untuk mengistilahkan penggunaan semua kerangkaaktivitas dasar, namun lebih mementingkan pengembangan dan rilis produk

Page 9: Kelompok 2   agile software development

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.

Page 10: Kelompok 2   agile software development

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

Page 11: Kelompok 2   agile software development

Kerangka Aktivitas pada XP

Page 12: Kelompok 2   agile software development

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

Page 13: Kelompok 2   agile software development

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.

Page 14: Kelompok 2   agile software development

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

Page 15: Kelompok 2   agile software development

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

Page 16: Kelompok 2   agile software development

Kerangka Aktivitas FDD

Page 17: Kelompok 2   agile software development

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

Page 18: Kelompok 2   agile software development

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

Page 19: Kelompok 2   agile software development

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

Page 20: Kelompok 2   agile software development

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

Page 21: Kelompok 2   agile software development

Siklus Sprint pada Scrum

Setiap sprint memiliki target/tujuan yang sangat spesifik, terukur, dan bisa dicapai

Page 22: Kelompok 2   agile software development

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

Page 23: Kelompok 2   agile software development

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

Page 24: Kelompok 2   agile software development

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

Page 25: Kelompok 2   agile software development

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.

Page 26: Kelompok 2   agile software development

Terima Kasih