Agile methods
A. Agile methods
Agility dalam pengembangan perangkat lunak diartikan sebagai kemampuan untuk beradaptasi dan bereaksi secara cepat dan efektif terhadap perubahan serta meminimalisir dampak terhadap perangkat lunak yang sedang dibangun. Kolaborasi antara tim pengembang dengan klien menjadi hal yang penting, klien dianggap sebagai anggota tim. Fleksibilitas di tawarkan kepada klien kaitannya dengan kesadaran dan pengetahuan pelanggan tentang apa yang dia inginkan.
Gambar 1 : Diagram Agile Development Method
B. Model Proses atau metode-metode pada Agile Development
Terdapat 20 model proses atau metode pada agile development, dalam makalah ini hanya akan dibahas beberapa metode yang diulas dalam jurnal internasional, diantaranya :
a. Extreme Programming
Ektreme programming merupakan metode pada agile development yang sering digunakan. XP (Extreme progreamming) didasarkan pada :
1. Communication
2. Simplicity
3. Feedback
4. Courage
dalam extreme programin pelanggan akan memberikan kebutuhan mereka dalam bentuk cerita yang pada dasarnya bersifat non-teknis. Cerita dari pelanggan selanjutnya akan diubah menjadi tugas, dalam pembangunan perangkat lunak akan berlangsung iterasi kecil dimana setiap iterasi sekelompok tugas akan dibahas. Pelanggan akan terlibat untuk memperoleh feed back yang cepat. Pengujian akan di lakukan dalam bentuk unit test dan accetance test.
b. Adaptive Software Development (ASD)
Teknik atau metode ini biasanya digunakan untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari adaptive software development adalah kolaborasi manusia dan tim yang mengatur diri sendiri. Sistem kerja adaptive software development adalah collaboration and learning.
Collaboration : bermotivasi tinggi untuk bekerja sama, saling melengkapi, rela membantu, kerja keras, terampil di bidangnya, dan mengkomunikasikan masalah untuk menyelesaikan masalah secara efektif.
Learning : tim developer sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui tiga cara:
1. Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.
2. Formal Technique Reviews, tim ASD lengkap melakukan review.
3. Postmortems, tim ASD melakukan pada kinerja dan proses.
c. Scrum
Scrum merupakan salah satu development method yang paling populer. Kegiatan pada metode ini diantaranya :
1. Sprint Planning
2. Sprint Review
3. Scrum Meeting
Scrum Master memfasilitasi harian Pertemuan Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2 - 4 minggu sekali) dengan pemilik produk dan tim, di mana di setiap individu akan menjelaskan status tugas mereka saat itu dan apa yang akan mereka lakukan hari berikutnya. Sebuah Sprint review biasanya membentang sekitar dua sampai empat minggu, dimana setiap tim harus memiliki perangkat lunak bekerja.
d. Dynamic Systems Development Method (DSDM)
Metode DSDM merupakan perpanjangan dari Rapid Application Development. DSDM menekankan pada keterlibatan terus pelanggan. DSDM adalah metode yang lebih cocok untuk proyek-proyek yang memiliki keterbatasan waktu dan anggaran.
Siklus hidup DSDM Project memiliki 4 tahap
1. Studi
2. Fungsional Model Iterasi
3. Desain dan Build
4. Pelaksanaan
DSDM memberikan pendekatan berulang tambahan dan juga memberikan beberapa teknik inti yang disebut time boxing, Prototyping, Pengujian, Workshop dll. Tujuan utama dari metode DSDM adalah untuk menjaga Proyek serta mengendalikan waktu dan anggaran.
e. Crystal Methods
Crystal Method dimulai sebelum agile Manifesto dan merupakan salah satu pendiri metodologi tangkas. Metode ini memiliki 3 Prioritas dan 3 Properti, diantaranya :
1. prioritas: Keselamatan, Efisiensi, Habitability
2. properti: Frequent Delivery, Peningkatan Reflektif, Komunikasi tertutup
crystal method adalah keluarga dari Adaptive, Ultra-light dan Stretch-to-fit metodologi dan lebih difokuskan pada Orang daripada proses atau arsitektur
f. Feature Driven Development (FDD)
Feature driven development merupakan sebuah model pengembangan perangkat lunak yang berdasarkan pada fitur yang akan dibuat. Keuntungan dari metode feature driven development :
1. User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.
2. Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hirarki yang ada.
3. Desain dan kode lebih mudah diperiksa secara efektif.
4. Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya
C. Tujuan Agile Development
· High-value & working App system, dengan menggunakan agile development methods akan menghasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
· Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
· Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner.
· Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
· High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga.
· Flexible & risk management
· Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.
D. Keuntungan dan Permasalahan Dalam Agile Development
a. Keuntungan menggunakan metode agile development
1. Meningkatkan komunikasi dan koordinasi antar anggota tim
2. Pengembang membuat demo yang dapat rilis setiap beberapa minggu bukannya setiap beberapa bulan atau tahun (quick release).
3. Lebih dinamis serta mendukung real-time tracking
4. Reasonable Process
5. Kepuasan klien dan kualitas perangkat lunak terjamin
6. Fleksibilitas desain
b. Kekurangan atau permasalahan pada agile development
1. Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
2. Tidak cocok dalam skala tim yang besar.
3. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
4. Kekhawatiran saat berkoordinasi dengan tim lain
Tidak ada komentar:
Posting Komentar