Professional Documents
Culture Documents
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.
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.