Agile Development Methods
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 lunak
yang 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.
Kelebihan dari agile
- Meningkatkan kepuasan kepada klien.
- Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
- Pembangunan system dibuat lebih cepat.
- Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
- Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari
agile
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
- Tidak cocok dalam skala tim yang besar (>20 orang).
- Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
Rapid Application Development (RAD)
Rapid Application Development (RAD) atau Rapid Prototyping adalah
model proses pembangunan perangkat lunak yang tergolong dalam teknik
incremental (berangkat). RAD menekankan pada siklus pembangunan pendek,
singkat, dan cepat. Waktu yang singkat adalah batasan yang penting untuk
model ini. RAD menggunakan metode iteratif (berulang) dalam
mengembangkan sistem dimana working model (model bekerja) sistem
dikontruksikan di awal tahap pengembangan dengan tujuan menetapkan
kebutuhan (requirement) user dan selanjutnya disingkirkan. Working model
digunakan kadang-kadang saja sebagai basis desain dan implementasi
sistem final.
Kelebihan dari RAD
- RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat.
- Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien.
Kekurangan dari
RAD
- Tidak cocok untuk proyek skala besar.
- Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
- Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
- Resiko teknis yang tinggi juga kurang cocok untuk model ini.
- Penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
- kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
- Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
- Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
Dynamic System Development Method (DSDM)
Dynamic System Development Method
(DSDM) adalah suatu kerangka
dalam pengembangan suatu project, terutama digunakan untuk metode pengembangan
perangkat lunak. DSDM merupakan iteratif dan incremental pendekatan yang
mencakup prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna atau
pelanggan secara terus-menerus, intinya DSDM suatu metode yang mendekati Incremental
dan Agile Alliance.
Kelebihan dari 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.
Kelemahan
dari 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.
Extreme
Programming (XP)
Extreme Programming (XP)
adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba
menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga
menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi
meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan
‘ekstrim’ dalam iterative development.
Kelebihan dari
XP
- Metode yang populer karena lebih santai dan non-restriktif.
- Biaya lebih murah.
- Mampu mengotomatiskan tes.
- Setiap feedback ditanggapi dengan melakukan tes, unit tes atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga, waktu).
- Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.
Kekurangan dari
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.
Scrum Development
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".
Dari penjelasan
diatas telah kita ketahui bahwa scrum merupakan salah satu
metodologi yang dapat digunakan untuk mengatur (manage) proses
pembuatan software menggunakan pendekatan Agile.
Kelebihan dari
scrum
- 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.
- Proses Scrum mampu menyatakan bahwa produk selesai kapan pun diperlukan.
Kekurangan sari
scrum
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Lemah dalam perencanaan arsitektur