Metodologi pengembang perangkat
lunak
Dalam rekayasa
perangkat lunak, metodologi
pengembangan perangkat lunak atau metodologi pengembangan sistem adalah
suatu kerangka kerja yang digunakan untuk menstrukturkan, merencanakan, dan
mengendalikan proses pengembangan suatu system informasi.
Banyak ragam kerangka kerja yang telah dikembangkan selama ini, yang
masing-masing memiliki kekuatan dan kelemahan sendiri-sendiri.
Suatu
metododologi pengembangan sistem tidak harus cocok untuk difgunakan untuk
semua royek. Masing-masing metodologi mungkin cocok diterapkan untuk suatu
proyek tertentu, berdasarkan berbagai pertimbangan teknis, organisasi, proyek,
serta tim.
Ada 12 metode
Softwate Development yang saya rangkum dari beberapa sumber di internet, antara
lain:
1. Waterfall Model
2. Agile Methodology
3. Scrum Development Methodology
4. RAD (Rapid Application Development)
5. Prototype Methodology
6. Dynamic Systems Development Model (DSDM)
7. Spiral Model
8. Extreme programming
9. Feature Driven Development
10. Joint Application Development
11. Lean Development
12. Rational Unified Process
1. Waterfall Model
2. Agile Methodology
3. Scrum Development Methodology
4. RAD (Rapid Application Development)
5. Prototype Methodology
6. Dynamic Systems Development Model (DSDM)
7. Spiral Model
8. Extreme programming
9. Feature Driven Development
10. Joint Application Development
11. Lean Development
12. Rational Unified Process
Agile Development Method
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 metode ini:
• Proses Iterative dan Incremental.
• Requirement dapat berubah sewaktu-waktu.
• Pelacakan requirement dengan melihat Backlog produk.
• Keterlibatan user secara aktif.
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat.
• Requirement dapat berubah sewaktu-waktu.
• Pelacakan requirement dengan melihat Backlog produk.
• Keterlibatan user secara aktif.
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat.
Kekurangan dari metode ini:
• Interaksi dengan client yang
kadang terlalu berlebihan.
• Agile sulit diimplementasikan dalam proyek yang berskala besar.
• Waktu perencanaan proyek yang singkat.
• Membutuhkan manajemen tim yang terlatih.
• Agile sulit diimplementasikan dalam proyek yang berskala besar.
• Waktu perencanaan proyek yang singkat.
• Membutuhkan manajemen tim yang terlatih.
Waterfall Development Method
Pengembangan sistem dan juga perangkat lunak dari
sebuah software komputer dilakukan secara sekuensial dan juga saling berurutan.
Pada model pengembangan sistem metode waterfall, sebuah pengembangan sistem dilakukan
berdasarkan urutan analisis, desain, pengkodean, pengujian, dan berakhir pada
tahap supporting. Disebut sebagai metode waterfall dikarenakan tahapan dan juga
urutan dari metode yang dilakukan merupakan jenis metode yang berurutan dan
berkelanjutan, seperti layaknya sebuah air terjun.
Kelebihan metode ini:
• Relatif mudah dimengerti dan mudah digunakan.
• Requirement dari sistem bersifat stabil.
• Baik dalam manajemen kontrol.
• Bekerja dengan baik ketika kualitas lebih diutamakan dibandingkan dengan biaya dan jadwal/deadline.
• Requirement dari sistem bersifat stabil.
• Baik dalam manajemen kontrol.
• Bekerja dengan baik ketika kualitas lebih diutamakan dibandingkan dengan biaya dan jadwal/deadline.
Kekurangan dari metode ini:
• Semua kebutuhan sistem harus diketahui di awal
• Integrasi sekaligus di akhir sistem.
• Testing hanya dilakukan pada setiap akhir fase, bahkan tidak jarang testing hanya dilakukan di akhir-akhir proyek.
• Membutuhkan waktu yang cukup lama meski kadang proyeknya tidak terlalu besar.
• Perubahan requirement dapat merubah keseluruhan proses yang telah dilaksanakan.
• Integrasi sekaligus di akhir sistem.
• Testing hanya dilakukan pada setiap akhir fase, bahkan tidak jarang testing hanya dilakukan di akhir-akhir proyek.
• Membutuhkan waktu yang cukup lama meski kadang proyeknya tidak terlalu besar.
• Perubahan requirement dapat merubah keseluruhan proses yang telah dilaksanakan.
Agiel Vs Waterfall
Tahap Analisis
Pada metode waterfall,
tahap analisis dilakukan setelah inisialisasi proyek. Pada tahap ini semua
kebutuhan sistem dikumpulkan dari client atau pemilik proyek. Sistem analis
akan menganalisa proyek sebelum dilanjutkan ke fase berikutnya dan hasilnya
berupa kebutuhan sistem yang biasanya bersifat statis.
Pada metode Agile, tahap
analisis akan dilakukan di awal-awal project. Pada Agile namun masih ada
kemungkinan bahwa hasil dari tahap analisis ini mengalami perubahan tergantung
dari kebutuhan sistem. Karena susah untuk dapat mengumpulkan semua kebutuhan sistem
pada awal proyek maka tidak jarang analisis juga dilakukan pada setiap iterasi,
namun analisis yang dilakukan disini lebih spesiļ¬k ke fungsi tertentu saja.
Tahap Pengujian
Pada metode
waterfall proses pengujian menggunakan metode waterfall, penggujian dilakukan
setelah semua proses selesai dan penggujian metode waterfall terpisah dari
proses build sistem.
Pada metode
agile proses pengujian menggunakan metode Agile, pengujian dilakukan beriringan
dengan proses implementasi atau coding, sehingga tidak membutuhkan tahapan
tersendiri untuk melakukan testing.
Waktu
Waktu yang dimaksud
adalah lama pelaksanaan proyek. Metode waterfall memakan waktu yang relatif
lebih banyak dibandingkan dengan metode agile namun tetapi kualitas yang
dihasilkan sebanding dengan waktu pengerjaannya.
Sedangkan pada metode
agile dengan prinsipnya “rilis berkala” kadang membuat suatu proyek terkesan
terburu-buru dan kualitas secara keseluruhan kurang terlalu diperhatikan.
Biaya
Waktu pengerjaan suatu
proyek akan berpengaruh terhadap biaya yang harus dikeluarkan untuk sebuah
proyek. Semakin lama waktu pengerjaan suatu proyek maka biaya yang dibutuhkan
juga akan semakin besar. Tak jarang suatu proyek dihentikan karena kekurangan
biaya. Atau bisa juga biaya yang diberikan oleh client tidak
sebanding dengan tingkat kesulitan proyek.
