Dasar Teori Bahan praktikum

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