Perbedaan
dari beberapa Model Pengembangan Software
1. Agile
Software Development Methodology
Agile
Software Development adalah
sebuah metode dari beberapa kumpulan prinsip untuk pengembangan software yang
persyaratan dan solusinya melalui kolaborasi antara tim fungsional dengan
klien.
Metode Agile mendukung berbagai siklus
pengembangan perangkat lunak, sementara beberapa diantaranya fokus pada bidang
masing-masing. Misalnya pada praktek (XP, Pragmatic Programming, dan Agile
Modelling), kemudian pada pengelolaan aliran kerja ( Scrum dan Kanban), pada
kegiatan dukungan untuk pengembangan (FDD), serta berusaha menutupi siklus
pengembangan penuh (DSDM dan RUP).
Untuk pengembangannya sendiri, Agile didukung
oleh sejumlah praktek yang konkrit yang meliputi sektor permintaan, desain,
pemodelan, coding, pegujian, perencanaan, manajemen risiko proses, dan
lain-lain.
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 dan kekurangan dari metode Agile
ini sendiri, diantaranya :
Kelebihan Agile Software Development :
- Meningkatkan kepuasan klien
- Pembangunan system dibuat lebih cepat
- Mengurangi resiko kegagalan implementasi dari segi non-teknis
- Jika terjadi kegagalan, kerugian materi relatif kecil
Kekurangan Agile Software Development :
- Developer harus selalu siap dengan perubahan, karena perubahan akan selalu diterima
Tim pelaksana pengembangan Agile seringkali
menghadapi kesulitan diantaranya ; kesulitan umum metode Agile, kurangnya
desain produk secara keseluruhan, kurangnya dukungan sponsor, kurangnya
pelatihan, serta kurangnya otimatisasi. Sedangkan untuk praktek kerjanya
sendiri, Agile mengadopsi praktek kerja spesifik berulang dan inkremental
seperti Scrum, Kanban, pengembangan wi-driven atau pengembangan fitur-driven di
semua fungsi bisnis.
2.
Rapid Application Development
RAD (Rapid Application
Development) Adalah metodologi
pengembangan perangkat lunak (SDLC) yang menggunakan pengabungan antara
Prototype Model dengan Iterative Model. Prototipe adalah model kerja yang
secara fungsional setara dengan komponen produk.
Dalam model RAD (Rapid Application Development), modul fungsional dikembangkan secara paralel sebagai prototip dan terintegrasi untuk membuat produk yang lengkap untuk pengiriman produk yang lebih cepat. Dikarenakan tidak ada rincian planning yang detail, maka memudahkan untuk melakukan perubahan pada saat development berjalan.
Model RAD
mendistribusikan tahap analisis, perancangan, pembuatan dan pengujian ke dalam
rangkaian siklus pengembangan jangka pendek yang singkat.
Kelebihan dan kekurangan Rapid applicationh Development
Kelebihan RAD (Rapid
Application Development)
1. Mudah mengakomodasi
peruabahan sistem
2. Progress development
bisa di ukur
3. Waktu iterasi bisa di
perpendek menggunakan RAD Tools
4. Mengurangi waktu
development
5. Mudah dalam menentukan
dasar sistem
6. Mempermudah feedback
customer
7. Cocok untuk proyek yang
membutuhkan waktu pengembangan yang lebih pendek.
8. Cocok untuk sistem yang
berbasis komponen dan terukur.
Kekurangan RAD (Rapid
Application Development)
- Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan bisnis
- Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
- Membutuhkan developer / designer yang berpengalaman
- Ketergantungan pada keterampilan model
- Kompleksitas manajemen
- Tidak dapat diterapkan pada proyek yang kecil / murah.
3. Dynamic
System Development Model Methodology
Dynamic System Development Model Methodology adalah 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.
Beberapa karakteristik DSDM yaitu sebagai berikut :
1. Menyajikan kerangka kerja (Framework) untuk membangun dan memelihara sistem dalam
waktu yang terbatas melalui penggunaan prototyping yang incremental dalam
lingkungan yang terkondisikan.
2. Membangun software dengan cepat yaitu 80%
dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek
secara utuh.
3. Aktifitas Feasibility Study yaitu dengan
requirement, lalu uji apakah sesuai gunakan proses DSDM
4. Aktifitas Business Study yaitu susunam
kebutuhan fungsional dan informasi, menentukan arsitektur aplikasi dan
identifikasi kebutuhan pemeliharaan untuk aplikasi
5. Aktifitas Functional model iteration yaitu
menghasilkan incremental prototype yang perlihatkan fungsi software ke client
untuk dapatkan kebutuhan lebih jelas dan konfirmasi.
6. Aktifitas Design and Build Iteration yaitu
melakukan cek ulang prototype yang di bangun untuk memastikan bahwa prototype
yang di bangun dengan cara tersebut memungkinkan semua fungsi benar-benar
bekerja
7. Aktifitas Implementation yaitu menempatkan
software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada
perubahan.
8. DSDM dapat dikombinasikan dengan XP yang
menghasilkan kombinasi model prosesmengikuti metode DSDM dan praktek yang
sejalan dengan XP.
Telah di jelaskan beberapa karakteristik DSDM, pada
tujuannya untuk menciptakan suatu rangkaian RPL yang cepat sama hal nya dengan
XP model.
4. Ekstreme Programing Methodologhy
Extreme Programming adalah suatu model yang termasuk
dalam pendekatan agile yang diperkenalkan oleh Kent Back. Menurut
penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) adalah metode pengembangan software yang
cepat, efisien, beresiko rendah, fleksibel, terprediksi, scientific, dan
menyenangkan.“.
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.
Extreme Programming tepat digunakan saat kondisi :
1. Keperluan berubah dengan
cepat
2. Resiko tinggi dan ada
proyek dengan tantangan yang baru
3. Tim programmer sedikit,
yaitu 2-10 orang.
4. Mampu mengotomatiskan tes
5. Ada campur tangan klien
secara langsung
kelebihan Ekstrem programing :
1. Meningkatkan kepuasan kepada klien
2. Pembangunan system dibuat lebih cepat
3. Menjalin komunikasi yang
baik dengan client.
4. Meningkatkan komunikasi dan
sifat saling menghargai antar developer.
Kelemahan Extreme
Programming :
1. Cerita-cerita yang
menunjukkan requirements kemungkinan besar tidak lengkap sehingga Developer
harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
2. Tidak bisa membuat kode
yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa
yang diperlukan hari itu juga).
3. XP tidak memiliki
dokumentasi formal yang dibuat selama pengembangan. Satu satunya dokumentasi
adalah dokumentasi awal yang dilakukan oleh user.
Aspek
dasar XP dari berbagai metode yang diterapkan, antara lain :
- Whole
team
- planning
Game
- small
release
- design
improvement
- collective
code ownership
- simple
design
- pair
programming
- test
driven development
- continous
integration
- coding
standard
- metaphor
- suistainable pace
5. Scrum
Development Methodologhy
Scrum merupakan suatu kerangka kerja yang
berupa deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan
pada proyek. Hal ini dilakukan dikarenakan tim akan tahu bagaimana cara terbaik
untuk memecahkan masalah yang disajikan untuk mereka.
Ada 3 elemen organisasi utama pada scrum
yaitu product owner, Scrum master, dan Scrum team. Scrum Master dapat dianggap
sebagai pelatih / guru bagi tim yang mengajarkan cara kerja lebih kolaboratif
dan menyenangkan dalam mengembangkan software. Product Owner mewakili bisnis,
pelanggan atau pengguna dan memandu tim ke arah pengembangan produk yang tepat.
Sedangkan Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9
orang. Untuk project yang sangat besar, biasanya pekerjaan akan dibagi dan
didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan scrum master juga
dapat ikut membantu dalam koordinasi team.
Scrum
tepat digunakan saat kondisi:
- Keperluan
berubah dengan cepat
- Tim
programmer sedikit, yaitu 5-9 orang
- Pelanggan
tidak terlalu paham dengan apa yang diinginkan
Scrum
memiliki prinsip yaitu:
- Ukuran
tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan
satu sama lain
- Proses
dapat beradaptasi terhadap perubahan teknis dan bisnis
- Proses
menghasilkan beberapa software increment
- Pembangunan
dan orang yang membangun dibagi dalam tim yang kecil
- Dokumentasi
dan pengujian terus menerus dilakukan setelah software dibangun
- Proses
scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelebihan
Scrum antara lain:
1. Keperluan berubah dengan
cepat
2. Tim berukuran kecil
sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama
lain
3. Pekerjaan terbagi-bagi
sehingga dapat diselesaikan dengan cepat
4. Dokumentasi dan pengujian
terus menerus dilakukan setelah software dibangun
5. Proses Scrum mampu
menyatakan bahwa produk selesai kapanpun diperlukan
Kelemahan
Scrum antara lain:
- Developer
harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Dikarenakan,
model yang digunakan akan berpengaruh pada kinerja dari tim dan juga dapat
menunjang keberhasilan suatu project pembuatan perangkat lunak.