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
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
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 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.
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.
Siapa Pelaku Agile ?
Software
Engineers

Agile
Team

Managers
Stakeholders

Customers

End Users
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
Kerangka Aktivitas pada Agile
Less:

More:

“Software Enginering Lite”, untuk mengistilahkan penggunaan semua kerangka
aktivitas 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
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
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 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
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

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.
Terima Kasih

Kelompok 2 agile software development

  • 1.
    Program Magister TeknikInformatika 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 Kamimenemukan 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 padaAgile 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
  • 11.
  • 12.
    Kelebihan XP • Perencanaandiawali 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 • Karenapelanggan 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 • FDDmenekankan 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. Menekankanpada 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
  • 16.
  • 17.
    Kelebihan FDD • Karenafitur 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 • Tidakmencakup 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 • Prinsipyang 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 padaScrum Setiap sprint memiliki target/tujuan yang sangat spesifik, terukur, dan bisa dicapai
  • 22.
    Scrum Meetings • Rapatpendek (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 • Kebutuhansangat 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 • Integrasibaru 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.
  • 26.