Metodologi pengembangan perangkat lunak adalah
kerangka kerja yang digunakan untuk menyusun, merencanakan dan mengendalikan
proses pengembangan sistem informasi. Metodologi pengembangan sistem mengacu
pada langkah-langkah yang digunakan untuk membentuk, merencanakan dan
mengendalikan proses pengembangan sistem informasi karena hampir tidak mungkin
untuk memajukan proyek ke metode komputerisasi tanpa pekerjaan sebelumnya.
Sistem prototyping adalah metodologi pengembangan
yang cocok untuk sistem atau aplikasi yang tidak terlalu rumit dan tidak
melibatkan terlalu banyak analis. Ini berarti merancang versi awal sistem
sebelum mencoba membangun sistem akhir kemudian secara bertahap
mengembangkannya untuk memenuhi kebutuhan pengguna.
Berikut beberapa Metodologi Pengembangan Perangkat
Lunak serta Keuntungan dan Kerugiannya :
1.
Waterfall Model
Waterfall Model adalah salah satu metodologi
pengembangan perangkat lunak yang paling tradisional (gaya klasik) dan umum
digunakan untuk pengembangan perangkat lunak. Waterfall Model memiliki proses
pengembangan perangkat lunak dalam aliran sekuensial linier yang berarti bahwa
setiap fase dalam proses pengembangan dimulai hanya jika fase sebelumnya
selesai.
Keuntungan
Waterfall Model :
•
Sangat sederhana
dan mudah dimengerti serta menggunakan metode yang sangat bermanfaat bagi
pengembang pemula
•
Mudah dikelola
dan setiap fase memiliki hasil serta proses peninjauan individual yang spesifik
•
Fase diproses
dan diselesaikan sekaligus dalam satu waktu sehingga menghemat banyak waktu
•
Bekerja lebih
efektif dalam proyek-proyek kecil di mana persyaratan sangat dipahami
•
Pengujian lebih
mudah karena dapat dilakukan dengan mengacu pada skenario yang ditentukan dalam
spesifikasi fungsional sebelumnya
Kerugian
Waterfall Model :
•
Hanya dapat
digunakan ketika persyaratan di muka yang sangat tepat tersedia
•
Tidak berlaku untuk
jenis pemeliharaan proyek
•
Kelemahan utama
dari metode ini adalah bahwa sekali aplikasi dalam tahap pengujian, tidak
mungkin untuk kembali dan mengedit sesuatu
•
Tidak ada
kemungkinan untuk menghasilkan perangkat lunak yang berfungsi sampai mencapai
tahap terakhir dari siklus
•
Tidak ada opsi
untuk mengetahui hasil akhir dari keseluruhan proyek
•
Model ini bagus
untuk proyek kecil tetapi tidak cocok untuk proyek yang panjang dan
berkelanjutan
•
Tidak ideal
untuk proyek di mana persyaratan sangat moderat, dan ada ruang lingkup besar
untuk modifikasi
2.
Prototype Methodology
Prototype Methodology adalah proses pengembangan
perangkat lunak yang memungkinkan pengembang hanya membuat prototipe solusi
untuk menunjukkan fungsionalitasnya kepada klien dan membuat modifikasi yang
diperlukan sebelum mengembangkan aplikasi yang sebenarnya.
Keuntungan
Prototype Methodology :
•
Ketika sebuah
prototipe ditampilkan kepada klien, mereka mendapatkan pemahaman yang jelas dan
'rasa' lengkap tentang fungsionalitas perangkat lunak
•
Secara
signifikan mengurangi risiko kegagalan, karena potensi risiko dapat
diidentifikasi pada tahap awal dan langkah-langkah moderasi dapat diambil
dengan cepat
•
Komunikasi
antara tim pengembangan perangkat lunak dan klien membuat lingkungan yang
sangat baik dan kondusif selama proyek
•
Membantu dalam
pengumpulan kebutuhan dan analisis kebutuhan ketika ada kekurangan dokumen
persyaratan
Kerugian
Prototype Methodology :
•
Prototyping
biasanya dilakukan dengan biaya pengembang sehingga harus dilakukan dengan
menggunakan sumber daya minimal jika tidak biaya pengembangan organisasi
terlalu banyak
•
Terlalu banyak
keterlibatan klien tidak selalu disukai oleh pengembang perangkat lunak
•
Terlalu banyak
modifikasi mungkin tidak baik untuk proyek, karena mudah mengganggu alur kerja
seluruh tim pengembangan perangkat lunak
3.
Agile Software Development Methodology
Agile Software Development Methodology adalah
pendekatan yang digunakan untuk merancang proses manajemen perangkat lunak
disiplin yang juga memungkinkan beberapa perubahan sering dalam proyek
pengembangan. Ini jenis metodologi pengembangan perangkat lunak yang merupakan
salah satu kerangka kerja konseptual untuk melakukan berbagai proyek rekayasa
perangkat lunak. Digunakan untuk meminimalkan risiko dengan mengembangkan perangkat
lunak dalam kotak waktu singkat yang disebut iterasi yang umumnya berlangsung
selama satu minggu hingga satu bulan.
Keuntungan
Agile Software Development Methodology :
•
Metodologi Agile
memiliki pendekatan adaptif yang mampu menanggapi perubahan kebutuhan klien
•
Komunikasi
langsung dan umpan balik yang konstan dari perwakilan pelanggan tidak
memberikan ruang untuk segala dugaan dalam sistem
Kerugian
Agile Software Development Methodology :
•
Berfokus pada
perangkat lunak yang berfungsi daripada dokumentasi, karena itu dapat
mengakibatkan kurangnya dokumentasi
•
Proyek
pengembangan perangkat lunak dapat keluar jalur jika pelanggan tidak begitu
jelas tentang hasil akhir dari proyeknya
4.
Rapid Application Development (RAD)
Rapid Application Development (RAD) adalah
metodologi yang efektif untuk memberikan pengembangan lebih cepat dan hasil
berkualitas lebih tinggi daripada yang dicapai dengan metodologi pengembangan
perangkat lunak lainnya. Tujuan utama metodologi ini adalah untuk mempercepat
seluruh proses pengembangan perangkat lunak.
Keuntungan
Rapid Application Development (RAD) :
•
Membantu
mengurangi risiko dan upaya yang diperlukan dari pihak pengembang perangkat
lunak
•
Membantu klien
untuk mengambil ulasan cepat untuk proyek tersebut
•
Mendorong umpan
balik pelanggan yang selalu memberikan ruang lingkup peningkatan untuk setiap
proyek pengembangan perangkat lunak
Kerugian Rapid Application Development
(RAD) :
•
Tergantung pada
kinerja tim dan individu yang kuat untuk mengidentifikasi dengan jelas
persyaratan bisnis yang tepat
•
Hanya bekerja
pada sistem yang dapat dimodulasi yang dapat dibangun menggunakan metodologi
ini
•
Pendekatan ini
menuntut tim pengembang dan perancang yang sangat terampil yang mungkin tidak
memungkinkan untuk setiap organisasi
•
Tidak berlaku
bagi pengembang untuk digunakan dalam proyek anggaran kecil karena biaya
pemodelan dan pembuatan kode otomatis sangat tinggi
5.
Dynamic Systems Development Model Methodology
Dynamic Systems Development Model Methodology adalah
metodologi pengembangan perangkat lunak yang awalnya didasarkan pada metodologi
Pengembangan Aplikasi Cepat. Tujuan utamanya adalah untuk memberikan sistem
perangkat lunak tepat waktu dan sesuai anggaran.
Keuntungan
Dynamic Systems Development Model Methodology :
•
Pengguna sangat
terlibat dalam pengembangan sistem sehingga, mereka lebih cenderung menguasai
proyek pengembangan perangkat lunak
•
Dalam model ini,
fungsionalitas dasar disampaikan dengan cepat, dengan fungsionalitas yang lebih
banyak disampaikan secara berkala
•
Menyediakan
akses mudah oleh pengembang ke pengguna akhir
•
Dalam
pengembangan semacam ini, proyek-proyek pendekatan disampaikan tepat waktu dan
sesuai anggaran tertentu
Kerugian
Dynamic Systems Development Model Methodology :
•
Hal pertama
adalah DSDM mahal untuk diimplementasikan, karena mengharuskan pengguna dan
pengembang keduanya dilatih untuk menggunakannya secara efektif.
•
Model yang
relatif baru, tidak terlalu umum dan mudah dipahami
6.
Spiral Model
Spiral Model adalah model canggih yang berfokus pada
identifikasi awal dan pengurangan risiko proyek. Pengembang mulai dalam skala
kecil kemudian mengeksplorasi risiko yang terlibat dalam proyek, membuat
rencana untuk menangani risiko, dan akhirnya memutuskan apakah akan mengambil
langkah selanjutnya dari proyek untuk melakukan iterasi spiral berikutnya.
Keuntungan
Spiral Model :
•
Tingginya jumlah
analisis risiko karenanya, penghindaran risiko yang mungkin tentu berkurang
•
Bagus untuk
proyek besar dan kritis
•
Fungsionalitas
tambahan dapat ditambahkan di kemudian hari
•
Lebih cocok
untuk proyek-proyek berisiko tinggi, di mana kebutuhan bisnis mungkin berbeda
dari waktu ke waktu
Kerugian
Spiral Model :
•
Model yang mahal
untuk digunakan dalam hal pengembangan
•
Keberhasilan
seluruh proyek tergantung pada fase analisis risiko sehingga, kegagalan dalam
fase ini dapat merusak seluruh proyek
•
Tidak sesuai
untuk proyek berisiko rendah
•
Risiko besar
metodologi ini adalah bahwa hal itu dapat berlanjut tanpa batas waktu dan tidak
pernah selesai
7.
Extreme Programming Methodology
Extreme Programming Methodology adalah metodologi
rekayasa perangkat lunak yang gesit. Dikenal sebagai metodologi XP terutama
digunakan untuk membuat perangkat lunak dalam lingkungan yang sangat tidak
stabil. Tujuan utama model XP ini adalah untuk menurunkan biaya persyaratan
perangkat lunak.
Keuntungan
Extreme Programming Methodology :
•
Menekankan pada
keterlibatan pelanggan
•
Membantu untuk
menetapkan rencana dan jadwal yang rasional dan membuat para pengembang
berkomitmen secara pribadi terhadap jadwal mereka yang tentunya merupakan
keuntungan besar dalam model XP
•
Konsisten dengan
sebagian besar metode pengembangan modern sehingga, pengembang dapat
menghasilkan perangkat lunak berkualitas
Kerugian
Extreme Programming Methodology :
•
Hanya seefektif
orang-orang yang terlibat, Agile tidak menyelesaikan masalah ini
•
Model
pengembangan perangkat lunak semacam ini membutuhkan pertemuan dengan interval
yang sangat sering dengan biaya besar bagi pelanggan
•
Membutuhkan
terlalu banyak perubahan pengembangan yang benar-benar sangat sulit untuk
diadopsi setiap kali bagi pengembang perangkat lunak
•
Cenderung tidak
mungkin untuk diketahui perkiraan pasti dari upaya kerja yang diperlukan untuk
memberikan penawaran, karena pada awal proyek tidak ada yang menyadari tentang
seluruh ruang lingkup dan persyaratan proyek
8.
Feature Driven Development
Feature Driven Development adalah metodologi
pengembangan perangkat lunak berulang yang dimaksudkan untuk digunakan oleh tim
besar yang mengerjakan proyek menggunakan teknologi berorientasi objek.
Keuntungan
Feature Driven Development :
•
Membantu untuk
memindahkan proyek dengan ukuran lebih besar dan mendapatkan kesuksesan yang
berulang
•
Lima proses
sederhana membantu menyelesaikan pekerjaan dalam waktu singkat dan cara
termudah
•
Dibangun di atas
standar yang ditetapkan untuk industri pengembangan perangkat lunak, sehingga
membantu pengembangan mudah dan praktik terbaik yang diakui industri
Kerugian
Feature Driven Development :
•
Bukan metodologi
yang ideal untuk proyek yang lebih kecil sehingga, itu tidak baik untuk
pengembang perangkat lunak individu
•
Ketergantungan
yang tinggi pada pengembang utama berarti orang tersebut harus diperlengkapi
sepenuhnya untuk bertindak sebagai koordinator, perancang utama, dan mentor
•
Tidak ada
dokumentasi tertulis yang diberikan kepada klien dalam metodologi ini sehingga,
mereka tidak bisa mendapatkan bukti untuk perangkat lunak mereka sendiri
9.
Joint Application Development Methodology
Joint Application Development Methodology (JAD) adalah
metodologi persyaratan-definisi dan pengembangan antarmuka pengguna di mana
pengguna akhir, klien dan pengembang menghadiri rapat luar-ruang yang intens
untuk bekerja dan menyelesaikan sistem perangkat lunak. Bertujuan untuk
melibatkan klien dalam desain dan pengembangan aplikasi.
Keuntungan Joint Application Development Methodology
:
•
Memungkinkan
pengumpulan dan konsolidasi secara simultan sejumlah besar informasi
•
Mode
pengembangan perangkat lunak ini secara efektif menghasilkan sejumlah besar
informasi berkualitas tinggi dalam waktu singkat
•
Perbedaan
diselesaikan segera dengan bantuan yang tepat dari penyelenggara
•
Menyediakan
forum untuk mengeksplorasi berbagai sudut pandang mengenai suatu topik
Kerugian Joint Application Development Methodology :
•
Membutuhkan
banyak waktu karena memerlukan upaya perencanaan dan penjadwalan yang
signifikan dari pihak tim pengembangan proyek
•
Membutuhkan
komitmen investor yang signifikan dalam hal waktu dan upaya
•
Membutuhkan
personel yang terlatih dan berpengalaman untuk implementasi yang efektif dari
seluruh proyek
10.
Lean Development Methodology
Lean Development Methodology berfokus pada
penciptaan perangkat lunak yang mudah diubah dan lebih fokus secara strategis
daripada jenis metodologi tangkas lainnya. Tujuannya adalah untuk mengembangkan
perangkat lunak dalam sepertiga waktu, dengan anggaran yang sangat terbatas dan
jumlah alur kerja yang diperlukan sangat sedikit.
Keuntungan
Lean Development Methodology :
•
Penghapusan awal
efisiensi keseluruhan dari proses pengembangan tentu saja membantu mempercepat
proses seluruh pengembangan perangkat lunak yang tentunya mengurangi biaya
proyek
•
Memberikan
produk lebih awal adalah keuntungan yang pasti. Ini berarti bahwa tim
pengembang dapat memberikan lebih banyak fungsionalitas dalam periode waktu
yang lebih singkat, sehingga memungkinkan lebih banyak proyek untuk disampaikan
•
Pemberdayaan tim
pengembangan membantu dalam mengembangkan kemampuan pengambilan keputusan
anggota tim yang menciptakan lebih banyak motivasi di antara anggota tim
Kerugian
Lean Development Methodology :
•
Keberhasilan
dalam pengembangan perangkat lunak tergantung pada seberapa disiplin anggota
tim dan bagaimana memajukan keterampilan teknis mereka
•
Peran seorang
analis bisnis sangat penting untuk memastikan dokumentasi persyaratan bisnis
dipahami dengan benar. Jika organisasi mana pun tidak memiliki orang dengan
analis bisnis yang tepat maka metode ini mungkin tidak berguna bagi mereka
•
Fleksibilitas
besar diberikan kepada pengembang yang tentu saja hebat, tetapi terlalu banyak
akan dengan cepat mengarah ke tim pengembangan yang kehilangan fokus pada
tujuan aslinya.
11.
Rational Unified Process Methodology
Rational Unified Process Methodology yang dikenal
sebagai RUP adalah satu proses pengembangan perangkat lunak modern. Metodologi
ini membagi proses pengembangan menjadi empat fase berbeda yang masing-masing
melibatkan pemodelan bisnis, analisis dan desain, implementasi, pengujian dan
penyebaran. Ini adalah metodologi pengembangan program berorientasi objek dan
webenabled.
Keuntungan
Rational Unified Process Methodology :
•
Menekankan pada
dokumentasi yang akurat
•
Secara proaktif
mampu menyelesaikan risiko proyek yang terkait dengan kebutuhan klien yang
berkembang untuk perubahan yang hati-hati dan manajemen permintaan
•
Lebih sedikit
kebutuhan akan integrasi ketika proses integrasi berlangsung sepanjang proses
pengembangan
Kerugian
Rational Unified Process Methodology :
•
Pengembang
perangkat lunak harus ahli dalam pekerjaannya untuk mengembangkan perangkat
lunak di bawah metodologi ini.
•
Proses
pengembangan dalam metodologi ini sangat kompleks dan tidak terorganisir dengan
tepat.
•
Integrasi
sepanjang proses pengembangan perangkat lunak menambah kebingungan yang
menyebabkan lebih banyak masalah selama tahap pengujian.
•
Terlalu rumit
sehingga sangat sulit untuk dipahami.
12.
Scrum Development Methodology
Scrum Development Methodology dapat diterapkan untuk
hampir semua proyek. Model pengembangan perangkat lunak Scrum dimulai dengan
perencanaan singkat, pertemuan, dan diakhiri dengan tinjauan akhir. Metodologi
pengembangan ini digunakan untuk pengembangan perangkat lunak yang cepat yang
mencakup serangkaian iterasi untuk membuat perangkat lunak yang diperlukan.
Keuntungan
Scrum Development Methodology :
•
Pengambilan
keputusan sepenuhnya berada di tangan tim
•
Memungkinkan
proyek di mana dokumentasi persyaratan bisnis tidak dianggap sangat signifikan
untuk pengembangan yang sukses
•
Ini adalah
metode yang dikontrol secara ringan yang benar-benar berempati pada pembaruan yang
sering dari kemajuan, oleh karena itu, langkah pengembangan proyek terlihat
dalam metode ini
•
Rapat harian
dengan mudah membantu pengembang untuk memungkinkannya mengukur produktivitas
individu. Ini mengarah pada peningkatan produktivitas masing-masing anggota tim
Kerugian
Scrum Development Methodology :
•
Estimasi biaya
dan waktu proyek tidak akurat
•
Tidak cocok
untuk proyek ukuran besar
•
Hanya
membutuhkan anggota tim yang berpengalaman.
KESIMPULAN
Metodologi pengembangan perangkat lunak di atas
sangat penting yang sebagian besar digunakan untuk berbagai proyek pengembangan
perangkat lunak. Selain itu, semua metodologi ini bekerja dengan baik dalam
proyek-proyek tertentu tergantung pada sifat proyek. Sering terjadi bahwa satu
metodologi yang cocok untuk proyek tertentu mungkin tidak cocok untuk proyek
lain. Selain itu, tidak satu pun dari metodologi ini yang sangat mudah karena
masing-masing memiliki pro dan kontra sendiri. Jadi, pengembang perangkat lunak
harus memiliki informasi tentang semua metodologi ini sebelum memilih salah
satu dari metode pengembangan ini untuk proyek pengembangan perangkat lunak
mereka.