Anda di halaman 1dari 32

AGILE

SOFTWARE
DEVELOPMEN
T
STMIK AMIKOM PURWOKERTO

AGILE DAN AGILITY

Agile merupakan proses untuk dapat beradaptasi


dengan kondisi-kondisi teknis yang berubahubah dengan cepat pada suatu proyek
pengembangan perangkat lunak.

Agility merupakan suatu kemampuan yang harus


dimiliki oleh tim pengembang PL:
Kemampuan
berkomunikasi
antara
stakeholder
Kemampuan mengorganisasikan tim
Dapat mendeliver perangkat lunak sesuai
jadwal

AGILE SOFTWARE DEVELOPMENT

Latar belakang:
Pengembangan PL unpredictable
Kebutuhan bisa berubah
Analisis,
perancangan,
konstuksi,
dan
pengujian tidak dapat diprediksi dari sudut
pandang
perancangan
seperti
yang
diperkirakan

Solusi:
Menggunakan
strategi
incremental dan adaptif

pengembangan

AGILE MODEL PROCESS

Extreme Programming (XP)


Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
Scrum
Crystal
Feature Driven Development (FDD)
Agile Modeling (AM)
Agile Unified Process (AUP)

EXTREME PROGRAMMING (XP) (1)


eXtreme

Programming

(XP)

menggunakan

pendekatan berorientasi objek sebagai paradigma


pengembangan yang diinginkan dan di dalamnya
mencakup

empat

perencanaan,
pengujian.

kegiatan

perancangan,

kerangka
pengkodean,

kerja:
dan

EXTREME PROGRAMMING (XP) (2)


Perencanaan
Kegiatan perencanaan disebut juga planning
game biasanya dimulai dengan mendengarkan
Perancangan
Untuk permasalahan desain yang sukar,
menyarankan penggunaan spike solutions
sebuah desain prototipe
XP mendorong penggunaan kartu CRC (Class
Responsibility
Collaboration)
sebagai
mekanisme untuk berfikir mengenai perangkat
lunak dalam konteks berorientasi objek.

EXTREME PROGRAMMING (XP) (3)


Pengkodean
Merekomendasikan konstruksi tes unit sebelum
coding dimulai
Mendorong pair programming
Mendorong refactoring (sebuah perbaikan
iteratif terhadap desain program internal)
Pengujian
Semua tes unit dieksekusi setiap hari
tes penerimaan ditentukan oleh konsumen
dan dieksekusi untuk melihat fungsionalitas
konsumen nyata

EXTREME PROGRAMMING (XP) (4)

CRC card

ADAPTIVE SOFTWARE DEVELOPMENT (ASD) (1)


diusulkan oleh Jim Highsmith sebagai suatu
teknik
yang
dapat
digunakan
untuk
membangun/mengembangkan perangkat lunak
dan sistem yang kompleks.
Focus ASD adalah pada kolaborasi manusia dan
tim yang mandiri. Hihgsmith mendefinisikan
siklus hidup ASD menggabungkan 3 fase:
spekulasi, kolaborasi dan pembelajaran.

ADAPTIVE SOFTWARE DEVELOPMENT (ASD) (2)


Fase spekulasi merupakan tahap memulai projek
dan perencanaan siklus adaptif dilakukan. Siklus
perencanaan adaptif menggunakan informasi
inisiasi proyek, kendala proyek, kebutuhan dasar
proyek.
Kolaborasi tidak saja meliputi komunikasi dan
kerjasama tim perangkat lunak, namun juga
menekankan individualism, karena kreativitas
individu merupakan peran penting dalam berfikir
kolaboratif.
Pembelajaran individu dan tim proyek yang
menghasilkan perangkat lunak yang memiliki

ADAPTIVE SOFTWARE DEVELOPMENT (ASD) (3)

DYNAMIC SYSTEMS DEVELOPMENT METHOD


(DSDM) (1)
Dipromosikan oleh konsorsium DSDM (www.dsdm.org)
Karakter yang membedakan
Punya banyak kesamaan dengan XP dan/atau ASD
Sembilan prinsip-prinsip panduan :
Pelibatan user secara aktif adalah keharusan.
Tim DSDM harus diberdayakan untuk mengambil
keputusan.
Fokus pada penyajian produk sesering mungkin.
Penerimaan dari tujuan bisnis adalah kriteria esensial
untuk penerimaan penyajian.
Pengembangan bertahap dan berulang dibutuhkan
untuk fokus pada solusi bisnis yang akurat.
Semua perubahan selaman pengembangan dapat
dibalik.
Kebutuhan adalah dasar pada level tinggi
Pengujian terintegrasi dalam siklus kehidupan.

DYNAMIC SYSTEMS DEVELOPMENT METHOD


(DSDM) (2)
DSDM terdiri dari 3 tahapan utama:
Sebelum proyek, di mana kandidat proyek
diidentifikasi, pembiayaan proyek terpenuhi, dan
jaminan proyek dipastikan. Penanganan hal- hal
tersebut pada tahap ini menghindari masalah pada
tahap-tahap berikutnya.
Siklus hidup proyek, merupakan inti dari DSDM,
yang terdiri dari 5 sub tahap yaitu:
studi kelayakan
studi bisnis
perulangan model fungsional
perulangan perancangan dan pembuatan
Penerapan

DYNAMIC SYSTEMS DEVELOPMENT METHOD


(DSDM) (3)
Setelah proyek, yaitu memastikan sistem berjalan
secara efektif dan efisien. Hal ini diwujudkan dengan
perawatan, peningkatan dan perbaikan sesuai prinsipprinsip DSDM. Perawatan dapat dilihat sebagai usaha
meneruskan pengembangan berdasarkan sifat alami
DSDM, yaitu perulangan dan pertambahan.

DYNAMIC SYSTEMS DEVELOPMENT METHOD


(DSDM) (4)

DSDM Life Cycle (with permission of the DSDM consortium)

SCRUM (1)
konsepnya dibuat oleh Jeff Sutherland diawal
tahun 1990-an. Pengembangan lebih lanjut pada
metode scrum telah dilakukan oleh Schwaber dan
Beedle.
Prinsip-prinsip scrum konsisten dengan manifesto
cepat dan digunakan untuk memandu kegiatan
pengembangan dalam suatu proses mencakup
kegiatan kerangka kerja berikut: kebutuhan,
analisis, perancangan, evolusi, dan penghantaran

SCRUM (2)
Backlog
Merupakan daftar prioritas dari kebutuhan proyek
atau fitur yang menyediakan nilai bisnis bagi
pelanggan. Item-item dapat ditambahkan pada
backlog setiap saat.
Sprint
Terdiri atas unit kerja yang diperlukan untuk
mencapai kebutuhan yang didefinisikan dalam
backlog yang harus sesuai dengan time-box yang
didefinisikan sebelumnya (biasanya 30 hari).
Perubahan tidak diperkenankan selama sprint
tersebut. Oleh karena itu, sprint memungkinkan
anggota tim untuk bekerja dalam lingkungan
jangka pendek namun stabil.

SCRUM (3)
Scrum meeting
Pertemuan yang diadakan setiap hari oleh tim scrum
(biasanya durasi 15 menit). Tiga pertanyaan kunci yang
diajukan dan dijawab oleh semua anggota tim:
Apa yang Anda lakukan sejak pertemuan terakhir tim?
Kendala apa saja yang Anda hadapi?
Apa yang Anda rencanakan untuk mencapai sesuatu
sebelum rapat tim berikutnya?
Demo
Memberikan peningkatan perangkat lunak untuk pelanggan
sehingga fungsionalitas yang telah dilaksanakan dapat
didemonstrasikan dan dievaluasi oleh pelanggan.

SCRUM (4)
Karakter yang membedakan
Kerja pengembangan dipartisi menjadi paket
Pengujian dan dokumentasi berjalan seiring
dengan konstruksi produk
Kerja terjadi dalam Sprint dan diturunkan
dari backlog kebutuhan yang ada
Pertemuan sangat pendek dan beberapa kali
diadalah tanpa kursi
Demo ditunjukkan pada konsumen dengan
alokasi time-box

SCRUM (5)

CRYSTAL (1)
Alistair Cockburn dan Jim Highsmith menciptakan
keluarga crystal dari metode cepat untuk
mencapai suatu pendekatan pengembangan
perangkat lunak yang menempatkan prioritas
tinggi pada kemampuan bermanuver dengan
tujuan utama menghantarkan perangkat lunak
yang bekerja dan bermanfaat.
Keluarga crystal sebenarnya satu set contoh
proses cepat yang terbukti efektif untuk jenis
proyek
berbeda.
Tujuannya
adalah
untuk
memungkinkan tim cepat untuk memilih anggota
keluarga crystal yang paling sesuai dengan
proyek dan lingkungan mereka.

CRYSTAL (2)
Karakter yang membedakan
Secara aktual sebuah model proses keluarga
yang
memungkinkan
manuver
berdasar
karakteristik permasalahan
Komunikasi tatap muka ditekankan
Menyarankan penggunaan workshop refleksi
untuk review kebiasaan kerja tim

FEATURE DRIVEN DEVELOPMENT (1)


Diusulkan oleh Peter Coad et al
Stephen Palmer dan Felsing John telah mengembangkan
metode ini dengan menggambarkan proses adaptif cepat
yang dapat diterapkan pada proyek perangkat lunak yang
berukuran lumayan lebih besar.
FDD mengadopsi falsafah:
Menekankan kolaborasi antara orang-orang pada tim
FDD
Mengelola kompleksitas masalah dan proyek yang
menggunakan dekomposisi berbasis fitur yang diikuti
oleh peningkatan integrasi perangkat lunak
Melaksanakan komunikasi teknis rinci yang
menggunakan sarana berbasis teks, verbal dan grafis.

FEATURE DRIVEN DEVELOPMENT (2)


Karakter yang membedakan
Penekanan pada definisi features
a feature is a client-valued function that
can be implemented in two weeks or less.
Menggunakan template feature
Daftar feature dibuat dan perencanaan
berdasar feature dilakukan
Desain dan konstruksi bergabung dalam FDD

FEATURE DRIVEN DEVELOPMENT (3)

Reprinted with permission of Peter Coad

AGILE MODELING (AM) (1)


Diusulkan oleh Scott Ambler
Agile modeling adalah metodologi berbasis
praktik untuk pemodelan dan dokumentasi sistem
berbasi perangkat lunak yang efektif. Pemodelan
cepat mengadopsi semua nilai-nilai yang
konsisten dengan manifesto cepat.
Menyarankan prinsip-prinsip agile modeling

AGILE MODELING (AM) (2)


Hal-hal yang menjadikan AM unik adalah sebagai
berikut:
Model dengan sebuah tujuan
Menggunakan banyak model
Perjalanan cahaya
Isi lebih penting dari representasi
Mengetahui model dan tool yang digunakan
untuk membuatnya
Beradaptasi secara lokal

AGILE UNIFIED PROCESS (AUP) (1)


AUP mengadopsi falsafah rangkaian dalam besar
dan

iterative

dalam

kecil.

AUP

menyediakan

susuan yang bersifat serial (yakni urutan linear dari


kegiatan rekayasa PL) yang memungkinkan sebuah
tim PL untuk memvisualisasikan keseluruhan aliran
proses untuk sebuah proyek, namun dalam setiap
kegiatan,

tim

berulang

harus

memberikan

peningkatan PL yang cepat kepada pengguna akhir.

AGILE UNIFIED PROCESS (AUP) (2)


Setiap iterasi AUP mengacu pada kegiatan berikut:
Pemodelan
Representasi UML untuk bisnis dan ranah
masalah yang diciptakan
Pelaksanaan
Model tersebut diterjemahkan ke dalam kode
sumber
Pengujian
Merancang
dan
menjalankan
serangkaian
pengujian untuk menemukan kesalahan dalam
kode sumber yang telah dihasilkan

AGILE UNIFIED PROCESS (AUP) (3)


Pemasangan
Penghantaran peningkatan PL dan memperoleh
feed back dari pengguna akhir
Konfigurasi dan manajemen proyek
Menunjukkan
manajemen
perubahan,
manajemen resiko, dan pengendalian produk
kerja yg dihasilkan tim. Manajemen proyek
menelusuri
dan
mengendalikan
tim
dan
mengkoordinasikan kegiatan tim.
Lingkungan manajemen
Mengkoordinasikan infrastruktur proses yang
meliputi standar, alat, dan teknologi pendukung
lain yang tersedia bagi tim.

Anda mungkin juga menyukai