AGILE MODEL
(Widodo
Journal : 2006:1) Pada dekade 90-an diperkenalkan metodologi baru yang dikenal
dengan nama agile methods. Metodologi ini sangat revolusioner perubahannya
jika dibandingkan dengan metode sebelumnya. Agile Methodsdikembangkan
karena pada metodologi tradisional terdapat banyak hal yang membuat proses
pengembangan tidak dapat berhasil dengan baik sesuai tuntutanuser. Saat ini
metodologi ini sudah cukup banyak berkembang, diantaranya adalah:
1) eXtreme Programming (XP)
2) Scrum Methodology
3) Crystal Family
4) Dynamic Systems Development
Method (DSDM)
5) Adaptive Software
Development (ASD)
6) Feature Driven Development
(FDD)
Jika kita
lihat, agile bisa berarti tangkas, cepat, atau
ringan. Agility merupakan metode yang ringan dan cepat dalam pengembangan
perangkat lunak. Agile Alliance mendefinisikan 12 prinsip untuk
mencapai proses yang termasuk dalamagility:
Prioritas tertinggi adalah memuaskan
pelanggan melalui penyerahan awal dan perangat lunak yang bernilai.
Menerima perubahan requirements meskipun
perubahan tersebut diminta pada akhir pengembangan.
Memberikan perankat lunak yang
sedangdikerjakan dengan sering,beberapa min ggu atau bulan, dengan pilihan
waktu yang paling singkat.
Pihak bisnis dan penggembangan harus
berkerja sama setiap hari selam penggembangan berjalan.
Bangun proyek dengan
individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan
dukungan yang diperlukan, dan mempercyai mereka sepenuhnya untuk menyelesaikan
pekerjaannya.
Metode yang paling efektif dan
efisien dala m menyampaikan informasi kepada tim pengembangan adalah dengan
komunikasi langsung face to face.
Perangkat lunak yang dikerjakan
merupakan pengukur utama kemajuan.
Proses agile memberikan proses
pengembangan yang bias ditopang.Sponsor,pengembangan,
dan user garus bias menjaga ke-konstanan langkah yang tidak
pasti.
Perhatian yang harus terus mennerus
terhadap rangcangan dan teknik yang baik meningkatkan agility.
Keserdahanaan seni untuk
meminimalkan jumlah pekerjaan adalah penting
Arsitektur,requirements, dan
rancangan terbaik muncul dari tim yang mengatur sendiri.
Pada interval reguler tertentu,tim
merefleksikan bagaimana menjadi lebih efektif,kemudian menyesuaikannya
Kelebihan Metode Agile
-
Meningakatkan rasio kepuasan
pelanggan.
-
Bisa melakukan reviw pelanggan
mengenai software yang dibuat lebih awal.
-
Mengurangi resiko kegagalan
implementasi software dari non-teknis.
-
Besar kerugian baik secara material
atau imaterial tidak terlalu besar jiak terjadi kegagalan
-
Kekurangan Metode Agile
Cara pengembanganya cukup sulit,sehingga hanya orang-orang
tertentu saja yang menggunakanya biaya yang
dibutuhkan cukup tinggi.
Metodologi
Extreme Programming
· Extreme Programming yang
selanjutnya disingkat dengan XP merupakan salah satu dari sekian banyaknya
metodologi dalam rekayasa perangkat lunak dan juga merupakan bagian dari
metodologi pengembangan perangkat lunak agile.
· Secara umum Extreme Programming
(XP) dapat dijabarkan sebagai sebuah pendekatan pengembangan perangkat
lunak yang mencoba meningkatkan efisiensi dan fleksibilitas dari sebuah proyek
pengembangan perangkat lunak dengan mengkombinasikan berbagai ide
simpel/sederhana tanpa mengurangi kualitas software yang akan dibagun.
· XP dikembangkan oleh
Beck, Cunningham, dan Jeffries dan ini merupakan lightweight disciplinepengembangan
perangkat lunak berdasarkan empat core value.
Kelebihan
dan Kekurangan XP
Kelebihan
:
·
Meningkatkan kepuasan kepada klien
·
Pembangunan system dibuat lebih
cepat
·
Menjalin komunikasi yang baik dengan
client.
·
Meningkatkan komunikasi dan sifat
saling menghargai antar developer.
Kekurangan
:
·
User story kemungkinan besar tidak
lengkap sehingga Developer harus selalu siap dengan perubahan karena
perubahan akan selalu diterima.
·
Tidak bisa membuat kode yang detail
di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang
diperlukan hari itu juga).
·
XP tidak memiliki dokumentasi
formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah
dokumentasi awal yang dilakukan oleh user.
Adaptive Software Development (ASD)
Adaptive Software
Development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun
sofware dan sistem yan kompleks. Filosofi yang mendasari Adaptive Software
Development (ASD) adalah kolaborasi manusia dan tim yang mengatur dairi
sendiri. Adaptive cyccle planning yaitu menggunakana informasi awal seperti
misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian
software increment (produk software yang secara berkala diserahkan).
- Collaboration ; orang-orang bermotivasi tinggi bekerja sama saling melengkapi, rela membantu, kerja keras, tampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
- Learning : Tim pembangun sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karenacc itu proses ini membuat mereka belajar lebih tentang proyek melalui 3 cara :
·
Focus Group : klien dan pengguna
memberi masukan terhadap software.
·
Formal Tecchique Review : Tim ASD
lengkap melakukan review.
·
Postmortems : Tim ASD lakukan
intropeksi pada kinerja dan proses.
Dynamic Software Development Method (DSDM)
Dynamic Software Development Method (DSDM)
pada dasarnya merupakan suatu metodelogi pengembangan perangkat lunak yang
didasarkan pada metodelogi RAD.
a. Tahapan Dynamic
Software Development Method (DSDM)
1) Feasibility
study
2) Business study –
prioritized requirements
3) Functional model
iteration
§
Risk analysis
§
Time-box plan
4) Design and build
iteration
5) Implementation
b. Kelebihan Dynamic
Software Development Method (DSDM)
·
Menyajikan kerangka kerja (framework) untuk
membangun dan memelihara sistem dalam waktu yang terbatas melalui
penggunaan prototyping yang incremental dalam
lingkungan yang terkondisikan
·
Membangun software dengan cepat
·
DSDM dapat dikombinasikan dengan XP menghasilkan
kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP
c. Kelemahan Dynamic
Software Development Method (DSDM)
·
Setiap iterasi bergantung pada prototype sebelumya
·
Menentukan scope dari suatu prototype proyek
tidak pernah selesai
·
Dokumentasi sering kali tidak lengkap fokus pada
pembuatan prototype
·
Isu-isu mengenai system backup and
recovery, system performance dan system security kurang/tidak
diperhatikan dan sering terlupakan
d. Waktu Penggunaan
Dynamic Sofware Development Method (DSDM)
cocok untuk proyek yang membutuhkan waktu singkat dan tidak memerlukan kinerja
tinggi, ini karena DSDM berdasar pada model RAD.
Scrum
Scrum adalah iteratif dan pengembangan perangkat lunak
kerangka kerja tambahan tangkas untuk proyek-proyek perangkat lunak dan
mengelola produk atau pengembangan aplikasi. Fokusnya adalah pada
"strategi, pengembangan produk fleksibel holistik di mana tim pengembangan
bekerja sebagai sebuah unit untuk mencapai tujuan bersama" sebagai lawan
dari "pendekatan tradisional, berurutan".
Kekurangan
dan kelebihan
1). Kelebihan
·
Keperluan berubah dengan cepat
·
Tim berukuran kecil sehingga
melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
·
Pekerjaan terbagi-bagi sehingga
dapat diselesaikan dengan cepat
·
Dokumentasi dan pengujian terus
menerus dilakukan setelah software dibangun
·
Proses Scrum mampu menyatakan bahwa
produk selesai kapanpun diperlukan
2). Kekurangan
Developer harus selalu siap dengan perubahan karena perubahan akan selalu
diterima.
Implementasi
Penerapan Metodologi Scrum Dengan Team Foundation
Server 2010 memiliki fokus utama yaitu maajemen
pengembangan produk.