You are on page 1of 5

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang

didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan
adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods
merupakan salah satu dari Metodologi pengembangan perangkat lunakyang digunakan dalam pengembangan
perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat
membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan
responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan
bagus dan kelincahan dari tim seimbang.
Secara spesifik, praktek dari metode agile ini bermacam-macam di antaranya adalah eXtreme
Programming (XP) yang dikonsep oleh Kent Beck yang cukup populer dan fenomenal di awal kemunculannya.
Selain XP, metode lain yang berkarakter agile adalah Scrum, Lean Development, DSDM, Feature- Driven
Development, dan tentu saja Unified Process (UP). Manifesto Agile:
1. Mengutamakan orang-orang dan interaksi (daripada proses dan tools)
2. Mengutamakan software yang berjalan (daripada dokumentasi yang lengkap)
3. Mengutamakan kerjasama pelanggan (daripada negosiasi kontrak)
4. Mengutamakan respons terhadap perubahan (daripada mengikuti rencana)
Prinsip Agile:
1. Prioritas utama adalah memuaskan pelanggan dengan menghasilkan produk dengan cepat dan
berkala.
2. Menerima dengan baik requirement yang berubah, walaupun pengerjaan software sudah masuk ke
fase pengembangan. Prinsip agile mengutamakan kepentingan kompetitif pelanggan yang kadang kala
memerlukan perubahan requirement tersebut.
3. Menghasilkan produk berkala dengan cepat, dalam hitungan beberapa minggu sampai beberapa bulan,
di mana berlaku prinsip lebih cepat lebih baik.
4. Bisnis analis dan pengembang software harus bekerja sama setiap hari selama proyek berlangsung.
5. Menjalankan proyek dengan orang-orang yang bermotivasi tinggi. Manajemen percaya, mendukung
mereka, dan menjaga motivasi tinggi mereka dengan memberikan fasilitas yang mereka perlukan.
6. Mengutamakan mekanisme komunikasi secara langsung antar anggota tim melalui pertemuanpertemuan yang diadakan berkala dalam sebuah ruangan dengan alat-alat yang mendukung seperti
papan whiteboard yang lebar.
7. Ukuran utama keberhasilan adalah aplikasi yang bisa berjalan.
8. Proses agile mendukung proses pengembangan software yang terprediksi, dan memiliki kans
keberhasilan yang tinggi (sustainable).
9. Manajemen, sponsor, pengembang, dan pelanggan harus bisa memelihara semangat yang konstan
selama proyek berlangsung.
10. Perhatian secara terus menerus terhadap kemampuan teknis dan perancangan yang baik akan
menambah karakter agility.
11. Kesederhanaan - didefinisikan sebagai seni untuk memperkecil jumlah pekerjaan - adalah sangat
penting.
12. Arsitektur terbaik, analisis, dan perancangan berasal dari tim yang terorganisasi dengan sendirinya.
13. Dalam interval tertentu, tim selalu berorientasi untuk menjadi lebih baik, dan mengubah langkahlangkahnya untuk penyesuaian.
Beberapa model dari agile development methods yaitu :
1. Agile Modeling
Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan penting.
Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi
menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan

software. Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system
software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software
agar dapat diaplikasian pada software development proyek secara efektif.
Prinsip dalam Agile Modeling :
Membuat model dengan tujuan: tentukan tujuan sebelum membuat model
Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.
Travel light: simpan model-model yang bersifat jangka panjang saja
Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
Memahami model dan alat yang yang digunakan untuk membuat software
Adaptasi secara local
Kelebihan dari Agile Modeling:
Meningkatkan kepuasan kepada klien
Pembangunan system dibuat lebih cepat
Mengurangi resiko kegagalan implementasi software dari segi non-teknis
Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
Kelemahan dari Agile Modeling:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2. Adaptive Software Development (ASD)
Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun
software dan sistem yang kompleks. Filosofi yang mendasari adaptive software development adalah kolaborasi
manusia dan tim yang mengatur diri sendiri. Sistem kerja adaptive software development : collaboration dan
learning. '
a. Collaboration : orang-orang yang bermotivasi tinggi bekerja sama, saling melengkapi, rela membantu,
kerja keras, terampil di bidangnya, dan komunikasikan masalah untuk menyelesikan masalah secara
efektif.
b. Learning: tim developer sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya
begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui tiga cara:
c. Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.
d. Formal Technique Reviews, tim ASD lengkap melakukan review.
e. Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses.
3. Agile Unified Process (AUP)
Unified Process (UP) merupakan suatu metode pembangunan sistem secara objek oriented yang
dikembangkan oleh Rational Rose, bagian dari IBM. Secara luas, UP telah diakui sebagai standar metodologi
pengembangan sistem berorientasi objek. Vesri alsi dari UP didefinisikan sangat rumit untuk setiap kegiatan.
Namun versi terbaru dari UP yakni metodologinya lebih sederhana. Ciri utama metode ini adalah menggunakan
use-case driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak.
UP tepat digunakan saat kondisi:
Pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada UML (Unified Modeling
Language )
Mempunyai waktu pengembangan yang panjang
Dikembangkan pada perangkat lunak sebagai sarana interaksi antara pengguna dan perangkat keras
Mempunyai tim programmer yang cukup banyak
Pengembangan dan perubahan perangkat lunak berdasarkan kebutuhan user
Keuntungan Pengembangan Perangkat Lunak RUP :
Ada beberapa keuntungan dengan mengunakan RUP di antaranya :
Menyediakan akses yang mudah terhadap pengetahuan dasar bagi anggota tim.
Menyediakan petunjuk bagaimana menggunakan UML secara efektif.
Mendukung proses pengulangan dalam pengembangan software.

Memungkinkan adanya penambahan-penambahan pada proses.


Memungkinkan untuk secara sistematis mengontrol perubahan- perubahan yang terjadi pada
software selama proses pengembangannya.
Memungkinkan untuk menjalankan test case dengan menggunakan Rational Test Manager Tool
Kekurangan Pengembangan Perangkat Lunak RUP :
Metodologi ini hanya dapat digunakan pada pengembangan perangkat lunak yang berorientasi
objek dengan berfokus pada UML (Unified Modeling Language).
Membutuhkan waktu yang cukup lama dibandingkan XP dan Scrum
4. Crystal Methods
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada jalur kritis, dapat
menghabikan waktu lebih, mereka yang memperbaiki produk atau membantu oaring yang ada di jalur proyek
kritis.
Karakteristik Crystal :
Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar karakteristik
permasalahan
Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim
Selalu murah dan cepat berkomunikasi secara langsung.
Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi lebih
tinggi.
5. Dynamic Systems Development Method (DSDM)
Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk
membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototip yang incremental
dalam lingkungan yang terkondisikan. Metode ini bisa membuat pengerjaan software lebih cepat 80%.Hal -hal
yang perlu diperhatikan jika menggunakan dynamic system development method:
a. Feasibility study, siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM.
b. Business Study, susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi
kebutuhan pemeliharaan untuk aplikasi.
c. Functional model iteration, perlihatkan fungsi perangkat lunak ke klien untuk mendapatkan feedback
d. Design and Build Iteration, cek ulang prototip yang dibangun dan pastikan bahwa prototip dibangun
dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja.
e. Implementation: buat perangkat lunak sesuai protoip yang ada dan terus tambah fungsionalitasnya.
6. Extreme Programming (XP)
XP merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Kent Back.
Menurut penjelasannya, definisi XP adalah sebagai berikut: Extreme Programming (XP) is a lightweight,
efficient, low-risk, flexible, predictable, scientific, and fun way to develop software. Model ini cenderung
menggunakan pendekatanObject-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design,
Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai
medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi
requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat.
Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah
pendekatan yang sangat terkenal.
XP tepat digunakan saat kondisi :
Keperluan berubah dengan cepat
Resiko tinggi dan ada proyek dengan tantangan yang baru
Tim programmer sedikit, yaitu 2-10 orang

Mampu mengotomatiskan tes


Ada peran serta pelanggan secara langsung
Kelemahan XP:
Cerita-cerita yang menunjukkan requirements 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
7. Feature Driven Development (FDD)
Feature driven development merupakan sebuah model pengembangan perangkat lunak yang
berdasarkan pada fitur yang akan dibuat. Keuntungan dari metode feature driven development :
a. User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.
b. Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hirarki yang ada.
c. Desain dan kode lebih mudah diperiksa secara efektif.
d. Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya.
8. Rational Unified Process (RUP)
Rational unified process, adalah suatu kerangka pengembangan perangkat lunak iteratif yang dibuat
oleh Rational Software, suatu divisi dari IBM sejak 2003. Rational unified processbukanlah suatu proses dengan
aturan yang konkrit, melainkan suatu kerangka proses yang dapat diadaptasi dan dimaksudkan untuk
disesuaikan oleh tim pengembang perangkat lunak yang akan memilih elemen proses disesuaikan dengan
kebutuhan mereka.Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan
memungkinkan para developer aplikasi untuk menerapkan metoda iterative (analisis, disain, implementasi dan
pengujian) pada tiap komponen. Dengan menggunakan model ini.
Tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut.
a. Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang
dilakukan pada tahap ini antara lain mencakup analisis sistem, perumusan target dari sistem yang
dibuat, identifikasi kebutuhan, perumusan kebutuhan pengujian, pemodelan diagram UML, dan
pembuatan dokumentasi.
b. Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di
tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain
arsitektur subsistem, disain komponen sistem, disain format data disain database, disain
antarmuka/tampilan, disain peta tampilan, penentuan design pattern yang digunakan, pemodelan
diagram UML, dan pembuatan dokumentasi.
c. Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian
hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil
analisis dan disain, terutama disain pada diagram sequence,class, component, dan deployment.
Apabila disain yang dibuat telah sesuai dengan analisis sistem, maka implementasi dengan bahasa
pemrograman tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup
pengujian hasil analisis dan disain (misal menggunakan class responsibility collaborator untuk kasus
pemrograman berorientasi obyek), pendataan kebutuhan implementasi lengkap (berpedoman pada
identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang digunakan, pembuatan
program, pengujian, optimasi program, pendataan berbagai kemungkinan pengembangan / perbaikan
lebih lanjut, dan pembuatan dokumentasi.

d. Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang
umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap
ekspetasi pengguna.
9. Scrum
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan
selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari
metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan sedangkan XP adalah
menekankan metodologi yang berbeda yaitu ujian, pemrograman dan pembangunan. Scrum menguraikan
proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja
dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan
rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih
lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin
Scrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci tentang
bagaimana segala sesuatu yang harus dilakukan pada proyek seperti diserahkan kepada tim
pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara
terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen organisasi utama pada scrum
yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap sebagai pelatih bagi tim,
membantu anggota tim menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner mewakili
bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The
Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar,
pekerjaan biasanya dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan the scrum master juga
dapat ikut membantu dalam koordinasi team.
Scrum tepat digunakan saat kondisi:
a. Keperluan berubah dengan cepat
b. Tim programmer sedikit, yaitu 5-9 orang
c. Pelanggan tidak terlalu paham dengan apa yang diinginkan
d. Scrum memiliki prinsip yaitu:
e. Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu
sama lainProses dapat beradaptasi terhadap perubahan teknis dan bisnis
f. Proses menghasilkan beberapa software increment
g. Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
h. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
i. Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelebihan Scrum antara lain:
a. Keperluan berubah dengan cepat
b. Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan
satu sama lain
c. Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
d. Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
e. Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelemahan Scrum antara lain:
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.

You might also like