Metode Lincah Agile Development Methods
Judul Sub Pokok Bahasan : Metode Lincah Agile Development Methods
Tujuan Instruksional Khusus : Diharapkan setelah mengikuti mata kuliah ini mahasiswa dapat:
1. Mendefinisikan pengembangan proses bertingkat incremental development yang dapat memberikan hasil yang cepat dalam pembuatan perangkat lunak
2. Meringkas dan menyimpulkan esensi dari metode agile development 3. Menjelaskan prinsip dan praktek dari extreme programming
4. menjelaskan peran prototype dalam proses software
1. Dasar Teori
1.1.Rapid Software Development
Karena lingkungan bisnis yang berubah dengan cepat, bisnis software harus merespon peluang baru dan persaingan.Hal ini memerlukan pengembangan hasil perangkat lunak dengan cepat.Bisnis mungkin
bersedia menerima perangkat lunak yang berkualitas lebih rendah jika mendapatkan hasil yang cepat fungsionalitas perangkat lunak yang penting.
Kebutuhan
Karena perubahan lingkungan bisnis, seringkali tidak mungkin untuk mendapatkan system requirement yang konsisten dan stabil.Karena itu model pengembangan waterfall tidak bisa mengakomodasi dengan
baik. Dan pengembangan berdasarkan oterasi hasil yang berulang adalah satu-satunya jalan untuk menghasilkan software dengan cepat.
Karakteristik Proses Rapid Development
Beberapa karakteristik didapatkan dengan menggunakan pengembangan rapid. Antara lain adalah sebagai berikut:
Proses spesifikasi, desain, dan implementasi dilakukan bersamaan. Tidak ada spesifikasi yang mendetail dan dokumentasi desain di minimisasi.
Sistem dikembangangkan dalam serangkaian tingkat, end users mengevaluasi tiap tingkat dan
membuat proposal untuk tingkat selanjutnya
Antarmuka user biasanya dikembangkan dengan menggunakan metode pengembangan interaktif.
1
Karena proses pada pengembangan rapid dilakukan dengan metode iterative. Kita dapat melihat proses dengan model iterative pada Error: Reference source not found.
Gambar 1. Model Pengembangan Iterative
Sumber : Ian Sommerville Software Engineering
1.2.Metode Agile
Karena lingkungan bisnis yang berubah dengan cepat, bisnis software harus merespon peluang baru dan persaingan.Hal ini memerlukan pengembangan hasil perangkat lunak dengan cepat.Bisnis mungkin
bersedia menerima perangkat lunak yang berkualitas lebih rendah jika mendapatkan hasil yang cepat fungsionalitas perangkat lunak yang penting.Prinisip dan karakteristik model pengembangan agile dapat
dilihat pada Tabel 1.[ CITATION Wir16 \l 1033 ]
Tabel 1 Prinsip Pengembangan Agile Prinsip
Deskripsi
Keterlibatan customer Customer harus dilibatkan secara langsung selama proses pengembangan.
Peran customer adalah membuat prioritas system requirement yang baru dan mengevaluasi iterasi dari pengembangan sistem
Pengembangan bertingkat
Software dikembangkan dengan model tingkatan dimana customer menspesifikasikan kebutuhan untuk dimasukkan pada tiap tingkatan
pengembangan
Fokus pada orang, bukan proses
Skill dari team pengembang harus dieksploitasi. Team juga dibiarkan untuk mengembangkan dengan cara mereka sendiri.
Mengakomodasi perubahan
Mengharapkan kebutuhan agar sistem untuk berubah dan merancang sistem sehingga bisa mengakomodasi perubahan-perubahan yang terjadi.
Mempertahankan kesederhanaan
Fokus pada kesederhanaan pada software yang dikembangkan dan proses pengembangan itu sendiri. Jika ada yang rumit maka akan dilakukan
proses refactoring untuk mengeliminasi kekompleks an dari sistem.
2
Masalah pada metode agile
Pada pengembangan metode agile, dapat timbul beberapa macam permasalahan yang mungkin muncul pada tahap pengembangan perangkat lunak.
Sulit untuk menentukan customer yang tertarik untuk terlibat dalam proses.
Anggota team mungkin tidak cocok dalam pengembangan yang intensif yang menjadi
karakteristik pada metode agile.
Memprioritaskan perubahan bisa sulit dilakukan karena terdapat beberapa stakeholder.
Mempertahankan kesederhanaan membutuhkan kerja extra.
Kontrak mungkin menjadi masalah seperti halnya pada pengembangan bertingkat.
Salah satu metode praktis dari pengembangan agile adalah dengan extreme programming.
1.3.Extreme programming
Metode agile yang paling dikenal dan paling banyak digunakan adalah extreme programming.XP adalah pendekatan extreme pada pengembangan bertingkat. Penjelasan lebih detail mengenai extreme
programing dapat dilihat pada bab 2 1.2. Salah satu ciri dari pengembagan dengan XP adalah :
Versi baru dapat di bangun beberapa kali per hari.
Peningkatan di kirimkan ke customer tiap 2 minggu.
Semua test harus dijalankan untuk setiap hasil, dan hasil hanya diterima ketika test dijalankan
dengan sukses Model pengembangan meggunakan XP [ CITATION Fal16 \l 1033 ]dapat dilihat pada Error: Reference
source not found.
Gambar 2. Model Pengembangan Extremme Programming
Sumber : Ian Sommerville Software Engineering
Sejarah XP
3
Proyek pengembangan perangkat lunak yang dianggap sebagai yang pertama kali menerapkan XP adalah C3 Chrysler Comprehensive Compensation Project dari Chrysler. Proyek ini adalah proyek penggajian
10.000 karyawan Chrysler, terdiri dari kira-kira 2000 class dan 30.000 method. Proyek yang dimulai pertengahan dekade 90-an ini terancam gagal karena rumitnya sistem yang dibangun dan kegagalan
pada saat testing. Chrysler kemudian menyewa Kent Beck, seorang pakar software engineering yang di kemudian hari dikenal sebagai pencetus awal dari XP, untuk menyelamatkan proyek tersebut. Beck
bersama rekannya Ron Jeffries dengan kewenangan yang diberikan oleh Chrysler melakukan berbagai perubahan di C3 Project untuk membuatnya lebih efisien, adaptif, dan fleksibel. Hal yang paling penting
bagi mereka adalah harus mampu memenuhi permintaan utama dari Chrysler, untuk melakukan launching perangkat lunak tersebut dalam waktu tidak lebih dari dua tahun sejak saat Beck dikontrak.
Beck dan Jeffries pada akhirnya berhasil menyelesaikan target Chrysler dengan menerapkan berbagai metode dalam proses pengembangan perangkat lunak tersebut. Kumpulan metode inilah yang kemudian
dikenal sebagai model atau pendekatan XP dalam pengembangan perangkat lunak. Begitu sederhananya metode-metode tersebut sehingga bagi orang yang belum menerapkan, XP terlihat sebagai kumpulan
ide lama yang terlalu sederhana dan tidak akan memberikan efek apapun pada sebuah proyek pengembangan perangkat lunak.
Kent Beck sendiri mengakui dan menegaskan bahwa XP tidak selalu cocok untuk setiap proyek pengembangan perangkat lunak. Kelebihan XP adalah sesuai untuk digunakan pada proyek yang memiliki
dynamic requirements. Proyek semacam ini memerlukan adaptasi cepat dalam mengatasi perubahan- perubahan yang terjadi selama proses pengembangan perangkat lunak. XP juga cocok untuk proyek
dengan jumlah anggota tim tidak terlalu banyak sekitar 10-20 orang dan berada pada lokasi yang sama.
Latar Belakang XP Requirement yang berubah dengan cepat menuntut lifecycles yang lebih pendek, dan tidak selaras
dengan metoda pengembangan tradisional, yang pada umumnya memerlukan disain luas di awal dan mengakibatkan perubahan desain yang terjadi kemudian memerlukan biaya yang lebih tinggi atau
kehilangan milestones.
Berdasarkan hal ini kemudian dilahirkan konsep XP yang digagas oleh Kent Beck dan Ward Cunningham pada Maret 1996
1
.Metode XP merupakan yang terpopuler dari beberapa metodologi pengembangan software yang dipakai untuk mengimplementasikan proyek pengembangan perangkat lunak.
Kunci Utama XP Menurut penggagas dari metode XP, Kent Beck mendefinisikan empat kunci utama inti dari XP yaitu:
1. Communication Komunikasi