Waterfall
Kelebihan dari Waterfall
·
Metode ini masih lebih baik
digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan
asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah
diketahui dengan baik.
·
Memberikan
template tentang metode analisis, desain, pengkodean, pengujian, dan
pemeliharaan.
·
Cocok
digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga
minim kesalahannya.
·
Cocok
untuk system software berskala besar dan bersifat generik.
·
Pengerjaan
project system akan terjadwal dengan baik dan mudah dikontrol.
·
Document
pengembangan system sangat terorganisir, karena setiap fase harus terselesaikan
dengan lengkap sebelum melangkah ke fase berikutnya. Jadi setiap fase
atau tahapan akan mempunyai dokumen tertentu.
·
Kualitas dari sistem yang dihasilkan
akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak
terfokus pada tahapan tertentu.
Kekurangan dari Waterfall
·
Diperlukanya
sebuah management proyek yang baik karena sangat berpengaruh karena Masalah
kecil bisa beresiko bila tidak ditanganin atau diketahui dari awal pembuatan.
·
Persyaratan sistem harus digambarkan dengan jelas dan Rincian
proses harus benar-benar jelas dan tidak boleh berubah-ubah.
·
Terjadinya
pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen
harus dilakukan pada tahap awal proses.
·
Customer
harus sabar untuk menanti produk selesai, karena dikerjakan tahap pertahap,
menyelesaikan tahap awal baru bisa ke tahap selanjutnya.
·
Sulit untuk mengadaptasi jika terjadi perubahan
spesifikasi pada suatu tahapan pengembangan.
·
Perubahan
ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang
membuat produk.
·
Adanya
waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek
lainnya menuntaskan pekerjaannya.
Agile
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)
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.
·
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.
Extreme
Programming (XP)
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.
Rational Unified Process (RUP)
Kelebihan
dari RUP
·
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.
Kekurangan dari 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.
Scrum
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.
·
Dokumentasi
dan pengujian terus menerus dilakukan setelah software dibangun.
·
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