Agile Development / Agile Process Models

 Agile Development / Agile Process Models

Agile Development adalah metode pengembangan perangkat lunak yang berdasar pada proses yang dilakukan berulang, dimana aturan dan solusi sudah disepakati oleh para anggota tim yang dilakukan secara terstruktur dan terorganisir. Metode ini juga menggunakan jangka waktu yang pendek dan membutuhkan adaptasi yang cepat dari para pengembang terhadap kemungkinan perubahan yang akan terjadi dalam bentuk apapun. 


Berikut adalah beberapa contoh Agile Process Models:

1. Extreme Programming 

Extreme Programming (XP) adalah metode pengembangan PL yang bersifat agile dengan tujuan untuk menghasilkan software yang memiliki kualitas yang lebih baik. XP memiliki siklus pengembangan yang pendek sehingga dapat memberikan respon yang baik terhadap perubahan yang diinginkan oleh user yang berganti. 

XP sendiri biasanya lebih berfokus dalam hal praktek rekayasa yang sesuai untuk pengembangan perangkat lunak. XP memiliki sifat yang cepat dan simpel. 




Tahapan Proses Metode Extreme Programming (Sumber: Sry Dhina Pohan, Iqbal Firdaus, IMPLEMENTATION OF EXTREME PROGRAMMING METHOD IN THE DEVELOPMENT OF PEKANBARU COMMUNITY TRAINING INFORMATION SYSTEM, 2022)

Tahapan Extreme Programming:

Tahapan XP dibagi menjadi 4 proses tahap pengembangan yaitu Planning, Designing, Coding dan Testing:

Planning

Tahapan planning merupakan tahapan dimana client bertemu dengan tim developer untuk memperkirakan gambaran yang diinginkan oleh client serta membuat rencana pengembangan yang dibagi menjadi beberapa tahapan yang diperlukan untuk memenuhi fungsionalitas yang dibutuhkan.

Planning sendiri memiliki dua kunci utama:
1. Realease Planning
Yaitu tahap dimana client menjelaskan fitur yang diharapkan dan diperlukan kepada developer. Dan tim developer akan memperkirakan tingkat kesulitan serta biaya yang dibutuhkan. 
2. Iteration Planning 
Yaitu tahap dimana tim akan mendapatkan arahan rutin setiap minggunya. Prosesnya akan berulang sehingga tiap dua minggu tim akan memberikan laporan terhadap progress software pada setiap akhir iterasi. Dan client akan menyampaikan fitur yang diinginkan untuk dua minggu kedepan. 

Designing

Tahapan designing adalah bagian dari planning namun dipisahkan agar proses dapat lebih optimal. Design yang baik akan membawa logika dan struktur ke dalam sistem sehingga dapat mengurangi kompleksitas dan redudansi yang tidak diinginkan. Beberapa kunci dalam tahap ini adalah:
1. Simple Design
XP berkonsentrasi untuk memastikan desain yang tepat sederhana dan lengkap selama fase perancangan desain. Fitur baru ditambahkan lebih disesuaikan keinginan klien.
2. Metafora Sistem
Metafora sistem mendukung pengembangan lebih terorganisir dan menyediakan konvensi penamaan. Konvensi penamaan penting karena digunakan untuk memahami desain sistem secara keseluruhan juga pengunaan ulang kode. 
3. Refactoring
Merupakan proses peningkatan desain yang berkelanjutan untuk memastikan desain tetap sederhana dan digunakan untuk menghindari kekacauan yang tidak diperlukan. Refactoring mengurangi redudansi dan duplikasi serta meningkatan kohesi kode sehingga dapat menghemat waktu. 

Coding

Tahap inilah di man kode dibuat dengan menerapkan praktik XP tertentu seperti standar pengkodean, pemrograman berpasangan, integrasi berkelanjutan dan kepemilikikan kode kolektif. Berikut adalah beberapa elemen dalam coding yang wajib diketahui: 
1. Pair Programming
Dalam XP setiap pemrogram memiliki pasangannya sendiri untuk mengembangkan fungsionalitas tertentu. 
2. Colective Code Ownership
Tim pengembangan memiliki kepemilikan kode secara kolektif sehingga memungkinkan anggota lainnya untuk memodifikasi kode secara kolektif. Hal ini juga memudahkan programming untuk menggunakan fungsionalitas yang diperlukan. 
3. Continuous Integration
Tim XP harus mengawasi dengan baik dan selalu menjaga proses integrasi serta melakukan pengujian setiap harinya. 
4. 40-Hour Work Per Week
Tim XP tidak boleh bekerja lebih daru 40 jam per minggu dan juga tanpa lembur. Hal ini diharapkan dapat memberikan lingkungan kerja yang lebih kondusif dan lebih nyaman. 

Testing

Tahap ini adalah inti dari XP. Karena pada fase ini aktivaitas rutin yang melibatkan pengujian unit baik secara otomatis ataupun oleh para pelanggan untuk memverifikasi bahwa keseluruhan sistem dibuat sesuai dengan keinginan client dan persyaratan padda awal. 

Kelebihan dan Kekurangan XP


2. Adaptive Software Development (ASD) 

Adaptive Software Devlopment adalah pengembangan software yang mewujudkan prinsip bahwa adaptasi yang bedekatan dari proses kerja normal dan hampir sama dengan pengembangan software metode waterfall. Namun siklus ASD lebih mengacu kepada misi fokus, berbasis fitur, perulangan, timeboxed, resiko dan toleransi yang berubah -ubah. ASD diperkenalkan oleh Jim Highsmith sebagai teknik untuk membuat software dan sistem yang kompleks. 



Tahapan Adaptive Software Development (Sumber: Myint Zu Than, "An Analysis on Adaptive Software Development (ASD)", 2022, English)


Tahapan dalam Adaptive Software Development (ASD)

1. Speculation

Adalah aktivitas adaptive cycle planning yaitu dengan informasi awal seperti permintaan dari klien, batasan project dan kebutuhan awal atau dasar untuk didefinisikan rangkaian software incriment. 

2. Collaboration

Adalah aktivitas orang orang yang memiliki motivasi tinggi untuk bekerja sama, saling melengkapi, kerja keras, memiliki keterampilan dalam bidangnya, rela membantu dan selalu mengkomunikasikan masalah untuk mendapatkan penyelesaian yang efektif.

3. Learning 

Adalah aktivitas tim pembangun biassanya akan merasas sudah tahu hal hal dalam proyek tersebut. Proses pembelajaran biasanya dilakukan dalam 3 cara yaitu:
- Focus Group
- Formal Technique Reviews
- Postmortems

Kelebihan dan Kekurangan Adaptive Software Development


3. Scrum Methodology (Kundang K Juman, Agile Development Methods, 2018)

Scrum adalah suatu metodologi atau kerangka kerja yang lebih terstruktur untuk mengembangkan suatu produk yang kompleks. Scrub memiliki tim yang memiliki peran dan tugas dan perannya masing masing. Setiap komponen dalam kerangka scrum memiliki tujuan tertentu. 




Tahapan Scrum Methodology (Sumber: Hariri Lail, "METODOLOGI AGILE DAN SCRUM DALAM PENGEMBANGAN SISTEM", 2021)

Tahapan dalam Scrumb dibagi menjadi tiga fase:

1. Pregame

a. Perencanaan (Planning)

Fase ini dapat beruapa konseptualiasasi dan analisas dan bisa juga mengembangkan produk yang telah ada. Maka pada umumnya hanya melakukan analisis

b. Arsitektur 

Fase ini kita mulai merancang daftar backlog yang ingin diimplementasikan. Dilakukan juga modifkasi pada rancangan sistem dan rancangan lainnya seperti tampilan. 

2. Game

a. Product Backlog

Product backlog memuat daftar dari poin yang akan dibuat oleh tim yang berdasarkan prioritas dan kebutuhan customer. Product backlog dapat berubah sesuai kebutuhan selama pengerjaan proyek.

b. Sprint

Scrum menstrukturisasi pengembangan produk dalam jangka waktu tertentu seperti 1-4 minggu. Dan sprint memiliki durasi dan akan diakhiri baik jika produk selesai ataupun tidak. 

c. Sprint Planning

Setiap permulaan sprint akan diadakan sprint planning yaitu dimana Product Owner dan Tim Scrum akan bertemu dan melakukan review terhadap Product Backlog. 

d. Daily Scrum Meeting

Adalah kegiatan dengan batasan waktu maksimal selama 15 menit agar tim pengembang dapat menyamakan pekerjaan mereka dan membuat rencana pengerjaan untuk 24 jam kedepan.

e. Sprint Review and Retrospective

Pada akhir sprint maka akan dilakukan review untuk menginspeksi apa hasil dari sprint yang telah dilakukan. 

3. Postgame

Pada fase ini terdapat closure yang merupakan fase dimana jika semua permintaan, harga, dan kualitas sudah sesuai dengan versi yang akan dirilis. Dengan demikian proyek akan dinyatakan "Closed" ataupun ditutup.

Kelebihan dan Kekurangan Scrum




Demikian beberapa contoh Agile Process Models. Semoga tulisan ini bisa memberikan manfaat untuk Anda yang membaca. Sampai jumpa di tulisan berikutnya. Terima Kasih. 

Referensi:
(Sry Dhina Pohan, "IMPLEMENTATION OF EXTREME PROGRAMMING METHOD IN THE DEVELOPMENT OF PEKANBARU COMMUNITY TRAINING INFORMATION SYSTEM", 2022)

(Myint Zu Than, "An Analysis on Adaptive Software Development (ASD)", 2022, English)

(Hariri Lail, "METODOLOGI AGILE DAN SCRUM DALAM PENGEMBANGAN SISTEM", 2021)


Komentar