Nama : Muhammad Ihsan Al kahfi
NIM : 2012130021
Metodologi Extreme Programing (XP)
- Extreme Programming yang selanjutnya disingkat dengan XP merupakan salah satu dari sekian banyaknya metodologi dalam rekayasa perangkat lunak dan juga merupakan bagian dari metodologi pengembangan perangkat lunak agile.
- Secara umum Extreme Programming (XP) dapat dijabarkan sebagai sebuah pendekatan pengembangan perangkat lunak yang mencoba meningkatkan efisiensi dan fleksibilitas dari sebuah proyek pengembangan perangkat lunak dengan mengkombinasikan berbagai ide simpel/sederhana tanpa mengurangi kualitas software yang akan dibagun.
- XP dikembangkan oleh Beck, Cunningham, dan Jeffries dan ini merupakan lightweight disciplinepengembangan perangkat lunak berdasarkan empat core value.
Kelebihan :
- Meningkatkan kepuasan kepada klien
- Pembangunan system dibuat lebih cepat
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.
- User story 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
Metodologi Adaptive Software Development
Metodologi Adaptive Software Development bisa di singkat ASD di definisikan yaitu mewujudkan prinsip bahwa adaptasi yang berdekatan dari proses kerja urusan keadaan normal. Metode ini bisa dikatakan menggantikan metode pengembangan software waterfall dengan serangkaian perulangan berspekulasi, berkolaborasi dan siklus. Siklus dinamis memberikan pembelajaran dan adaptasi kepada proyek. Karakteristik dari siklus hidup ASD adalah mengacu kepada misi fokus, berbasis fitur, perulangan, timeboxed, risiko, dan tolerasi yang berubah-ubah.
Gambar Skema ASD
ASD ini di kembangkan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri.3 aktifitas yang di lakukan ASD yaitu sebgai berikut :
- Speculation adalah aktivitas adaptive cycle planning yaitu menggunakan informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment (produk software yang secara berkala diserahkan).
- Collaboration adalah aktifitas orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
- Learning adalah aktivitas tim pembangun sering merasa sudah tahu semua hal tentang proyek. Proses pembelajaran proyek ini bisa dilakukan 3 cara yaitu sebagai berikut :
- Focus group adalah klien dan pengguna memberi masukan terhadap software.
- Formal Technique Reviews adalah tim ASD lengkap melakukan review.
- Postmortems adalah tim ASD lakukan instrospeksi pada kinerja dan proses.
Metodologi Dynamic Systems Development Method (DSDM)
Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
Dynamic System Development Method dapat dikombinasikan dengan Extreme Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic System Development Method dan praktek yang sejalan dengan Extreme Programmning.
Dynamic System Development Method memiliki beberapa aaktifitas seperti :
– Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
– Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
– Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
– Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
– Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.
Kelebihan Dynamic Software Development Method (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
- 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
Metodologi Scrum
Kelebihan dan Kekurangan Scrum
1).
Kelebihan
-
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 kapanpun diperlukan
2).
Kekurangan
Developer harus selalu siap
dengan perubahan karena perubahan akan selalu diterima.
Metodologi Agile Modeling
Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah pembangunan
software. Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif.
Prinsip dalam Agile Modeling :
– Membuat model dengan tujuan: tentukan tujuan sebelum membuat model
– Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.
– Travel light: simpan model-model yang bersifat jangka panjang saja
– Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
– Memahami model dan alat yang yang digunakan untuk membuat software
– Adaptasi secara local
Kelebihan
·
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
·
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.