Agile Development Methods adalah sekelompok meto- en membuat rencana tentang kebutuhan dari per-
dologi pengembangan perangkat lunak yang didasarkan angkat lunak yang akan dibuat.
pada prinsip-prinsip yang sama atau pengembangan sis-
tem jangka pendek yang memerlukan adaptasi cepat da- • Implementasi, bagian dari proses dimana program-
ri pengembang terhadap perubahan dalam bentuk apa- mer melakukan pengkodean perangkat lunak.
pun. Agile development methods merupakan salah satu • Tes perangkat lunak, disini perangkat lunak yang te-
dari Metodologi pengembangan perangkat lunak yang di- lah dibuat di tes oleh bagian kontrol kualitas agar
gunakan dalam pengembangan perangkat lunak. Agile bug yang ditemukan bisa segera diperbaiki dan ku-
memiliki pengertian bersifat cepat, ringan, bebas berge- alitas perangkat lunak terjaga.
rak, dan waspada.[1] Sehingga saat membuat perangkat
lunak dengan menggunakan agile development methods • Dokumentasi, setelah dilakukan tes perangkat lunak
diperlukan inovasi dan responsibiliti yang baik antara tim langkah selanjutnya yaitu proses dokumentasi per-
pengembang dan klien agar kualitas dari perangkat lunak angkat lunak untuk mempermudah proses mainte-
yang dihasilkan bagus dan kelincahan dari tim seimbang. nanance kedepannya.
• Deployment, yaitu proses yang dilakukan oleh pen-
jamin kualitas untuk menguji kualitas sistem. Sete-
lah sistem memenuhi syarat maka perangkat lunak
siap dideployment.
• Pemeliharaan, langkah terakhir yaitu pemeliharaan.
Tidak ada perangkat lunak yang 100% bebas dari
bug, oleh karena itu sangatlah penting agar perang-
kat lunak dipelihara secara berkala.
2 Agile manifesto
Diagram dari agile development methods
1 Pendahuluan
Saat bekerja dalam tim untuk mengerjakan suatu proyek
sangatlah penting menentukan Metodologi pengembang-
an perangkat lunak dan Proses pengembangan perangkat
lunak yang akan digunakan. Metodologi pengembangan
perangkat lunak sendiri adalah sebuah metodologi yang
digunakan untuk membuat struktur, rencana, dan kon-
trol pengerjaan suatu proyek, sedangkan Proses pengem-
bangan perangkat lunak adalah model-model dan meto-
dologi yang digunakan untuk mengembangkan suatu per-
angkat lunak. Ada beberapa model Metodologi pengem-
Martin Fowler, salah satu pencetus ide agile development me-
bangan perangkat lunak diantaranya : waterfall, fountain, thods
spiral, rapid, prototyping, incremental, build & fix, dan
synchronize & stabilize.[2] Terdapat enam langkah yang Agile development methods terdefinisi dalam empat nilai,
digunakan dalam Metodologi pengembangan perangkat biasa di sebut Agile Alliance’s Manifesto,[4] diantaranya :
lunak,[3] yaitu :
1. Interaksi dan personel lebih penting daripada pro-
• Perencanaan, pada langkah ini pengembang dan kli- ses dan alat.
1
2 3 MODEL PROSES AGILE
2. Perangkat lunak yang berfungsi lebih penting da- 5. Kembangkan proyek di sekitar individual yang ter-
ripada dokumentasi yang lengkap. motivasi. Berikan mereka lingkungan dan dukung-
an yang mereka butuhkan, dan percayai mereka un-
3. Kolaborasi dengan klien lebih penting daripada tuk menyelesaikan pekerjaan dengan baik.
negosiasi kontrak.
6. Metode yang paling efisien dan efektif untuk me-
4. Respon terhadap perubahan lebih penting dari-
nyampaikan informasi dari dan dalam tim pengem-
pada mengikuti rencana.
bang perangkat lunak adalah dengan komunikasi se-
cara langsung.
Pengertian dari Agile Alliance’s Manifesto[4] dijelaskan
di bawah ini: 7. Perangkat lunak yang bekerja adalah ukuran utama
kemajuan.
• Interaksi dan personel lebih penting daripada pro-
8. Proses agile menggalakkan pengembangan ber-
ses dan alat, di dalam agile interaksi antar anggota
kelanjutan. Sponsor-sponsor, pengembang-
tim sangatlah penting, karena tanpa adanya interaksi
pengembang, dan pengguna-pengguna dapat
yang baik maka proses pembuatan perangkat lunak
mempertahankan kecepatan tetap secara berkelan-
tidak akan berjalan sesuai rencana.
jutan.
• Perangkat lunak yang berfungsi lebih penting da-
ripada dokumentasi yang lengkap, saat melakukan 9. Perhatian yang berkesinambungan terhadap keung-
proses demonstrasi kepada klien, perangkat lunak gulan teknis dan rancangan yang baik meningkatkan
yang berfungsi dengan baik akan lebih berguna da- Agility.
ripada dokumentasi yang lengkap. 10. Kesederhanaan (memaksimalkan sumber daya yang
• Kolaborasi dengan klien lebih penting daripada tersedia) adalah hal yang amat penting.
negosiasi kontrak, salah satu ciri dari agile adalah 11. Arsitektur, kebutuhan, dan rancangan perangkat lu-
klien menjadi bagian dari tim pengembangan per- nak terbaik muncul dari tim yang yang dapat meng-
angkat lunak. Kolaborasi yang baik dengan klien organisir diri sendiri.
saat proses pembuatan perangkat lunak sangatlah
penting ketika menggunakan agile. Karena fungsi- 12. Secara berkala, tim pengembang berefleksi tentang
fungsi dari perangkat lunak yang dikembangkan ha- bagaimana untuk menjadi lebih efektif, kemudian
rus terus menerus dibicarakan dan diimprovisasi di- menyesuaikan dan menyelaraskan kebiasaan beker-
sesuaikan dengan keinginan klien. ja mereka.
• Respon terhadap perubahan lebih penting dari-
pada mengikuti rencana, agile development methods Dua belas prinsip tersebut menjadi suatu dasar bagi tim
berfokus terhadap kecepatan respon tim ketika kli- agar sukses menerapkan agile development methods. De-
en menginginkan perubahan saat proses pembuatan ngan prinsip-prinsip tersebut agile berusaha untuk me-
perangkat lunak. nyiasati tiga masalah yang biasanya dihadapi saat proses
pembuatan perangkat lunak, yaitu:
Agar suatu tim berhasil dalam menerapkan agile develo-
pment methods, maka tim tersebut harus mengikuti dua • Kebutuhan perangkat lunak sulit diprediksi dari
belas prinsip yang ditetapkan oleh Agile Alliance,[4] ya- awal dan selalu akan berubah. Selain itu, prioritas
itu : klien juga sering berubah seiring berjalannya pro-
yek.
1. Prioritas utama proses agile adalah memuaskan kli- • Desain dan pembangunan sering tumpang tindih.
en dengan menghasilkan perangkat lunak yang ber- Sulit diperkirakan seberapa jauh desain yang diper-
nilai dengan cepat dan rutin. lukan sebelum pembangunan.
2. Menyambut perubahan kebutuhan, walaupun ter-
• Analisis, desain, pembangunan dan testing tidak da-
lambat dalam pengembangan perangkat lunak. Pro-
pat diperkirakan seperti yang diinginkan.
ses Agile memanfaatkan perubahan untuk keun-
tungan kompetitif klien.
3. Menghasilkan perangkat lunak yang bekerja secara 3 Model proses agile
rutin, dari jangka waktu beberapa minggu sampai
beberapa bulan, dengan preferensi kepada jangka Beberapa model dari agile development methods,[2] yaitu
waktu yang lebih pendek. :
4. Rekan bisnis dan pengembang perangkat lunak ha-
rus bekerja sama tiap hari sepanjang proyek. • Acceptance Test Driven Development (ATDD)
3
Rational unified process, adalah suatu kerangka nentuan coding pattern yang digunakan,
pengembangan perangkat lunak iteratif yang pembuatan program, pengujian, optima-
dibuat oleh Rational Software, suatu divisi si program, pendataan berbagai kemung-
dari IBM sejak 2003. Rational unified pro- kinan pengembangan / perbaikan lebih
cess bukanlah suatu proses dengan aturan yang lanjut, dan pembuatan dokumentasi.
konkrit, melainkan suatu kerangka proses yang 4. Transition, merupakan tahap untuk me-
dapat diadaptasi dan dimaksudkan untuk dise- nyerahkan sistem aplikasi ke konsumen
suaikan oleh tim pengembang perangkat lunak (roll-out), yang umumnya mencakup pe-
yang akan memilih elemen proses disesuaikan laksanaan pelatihan kepada pengguna
dengan kebutuhan mereka.Model ini membagi dan testing beta aplikasi terhadap ekspe-
suatu sistem aplikasi menjadi beberapa kom- tasi pengguna.
ponen sistem dan memungkinkan para develo-
per aplikasi untuk menerapkan metode iterati-
ve (analisis, disain, implementasi dan penguji- • Scrum
an) pada tiap komponen. Dengan menggunak-
an model ini, Rational unified process membagi • Scrum-ban
tahapan pengembangan perangkat lunaknya ke
• Story-driven modeling
dalam 4 fase sebagai berikut.
• Test-driven development (TDD)
1. Inception, merupakan tahap untuk meng-
identifikasi sistem yang akan dikem- • Velocity tracking
bangkan. Aktivitas yang dilakukan pa-
da tahap ini antara lain mencakup anali- • Software Development Rhythms [5][6]
sis sistem, perumusan target dari sistem
yang dibuat, identifikasi kebutuhan, per-
umusan kebutuhan pengujian, pemodel-
an diagram UML, dan pembuatan doku- 4 Tujuan agile
mentasi.
Secara garis besar tujuan dirumuskannya agile develo-
2. Elaboration, merupakan tahap untuk me-
pment methods,[7] yaitu :
lakukan disain secara lengkap berdasark-
an hasil analisis di tahap inception. Akti-
vitas yang dilakukan pada tahap ini an- 1. High-value & working App system, diharapkan de-
tara lain mencakup pembuatan disain ar- ngan memakai agile development methods dapat di-
sitektur subsistem, disain komponen sis- hasilkan perangkat lunak yang mempunyai nilai jual
tem, disain format data disain database, yang tinggi, biaya pembuatan bisa di tekan dan per-
disain antarmuka/tampilan, disain peta angkat lunak bisa berjalan dengan baik.
tampilan, penentuan design pattern yang
digunakan, pemodelan diagram UML, 2. Iterative, incremental, evolutionary, agile adalah
dan pembuatan dokumentasi. metode pengembangan perangkat lunak yang ite-
ratif, selalu mengalami perubahan, dan evolusio-
3. Construction, merupakan tahap untuk ner. Tim harus bekerja dalam waktu yang sing-
mengimplementasikan hasil disain dan kat(biasanya 1-3 minggu) dan juga selalu menam-
melakukan pengujian hasil implementa- bah fungsionalitas dari perangkat lunak sesuai de-
si. Pada tahap awal construction, ada ba- ngan kebutuhan klien. Agile dapat dianalogikan ke-
iknya dilakukan pemeriksaan ulang ha- tika seseorang ingin pergi ke suatu kota dan dia tidak
sil analisis dan disain, terutama disain tahu jalannya. Lalu bagaimana dia bisa sampai tuju-
pada diagram sequence,class, component, an? Dengan sering bertanya kepada orang yang dia
dan deployment. Apabila disain yang temui dijalan hingga dia sampai di tempat tujuan.
dibuat telah sesuai dengan analisis sis-
tem, maka implementasi dengan baha- 3. Cost control & value-driven development, salah sa-
sa pemrograman tertentu dapat dilakuk- tu tujuan dari agile yaitu pengembangan perangkat
an. Aktivitas yang dilakukan pada ta- lunak disesuaikan dengan kebutuhan pengguna, tim
hap ini antara lain mencakup penguji- bisa dengan cepat merespon kebutuhan yang dii-
an hasil analisis dan disain (misal meng- nginkan pengguna sehingga waktu dan biaya pem-
gunakan class responsibility collaborator buatan perangkat lunak bisa dikontrol.
untuk kasus pemrograman berorientasi
obyek), pendataan kebutuhan implemen- 4. High-quality production, walaupun biaya pembuat-
tasi lengkap (berpedoman pada identi- an perangkat lunak bisa ditekan dan proses pembu-
fikasi kebutuhan di tahap analisis), pe- atan bisa dipercepat , tetapi kualitas dari perangkat
5.2 Story 5
lunak yang dibuat harus tetap dijaga. Dengan mela- • Developer, merupakan titik vital dalam tim, tanpa
kukan tes setiap fungsionalitas perangkat lunak se- developer perangkat lunak tidak akan bisa dibuat.
telah selesei dibuat berarti agile juga mengakomodir
kebutuhan ini.
5.2 Story
5. Flexible & risk management, jika kita menggunak-
an metode pembuatan yang biasanya dipakai, jika Story adalah daftar kebutuhan atau fitur yang nanti akan
ingin mengubah fungsionalitas dari wireframe yang dibuat. Story berisi apa yang klien kehendaki, dan di-
telah dibuat di butuhkan proses yang rumit. Mulai tulis dalam bahasa yang dimengerti klien. Dengan kata
dari pertemuan dengan sistem analis untuk mengu- lain dapat disimpulan Story adalah bagian terpenting dari
bah sistem perangkat lunak, perubahan rencana ri- Scrum.
lis produk hingga perubahan biaya produksi. Perte- Story terdiri dari kolom-kolom berikut ini[9] :
muan dengan klien untuk melakukan tes perangkat
lunak juga sering dilakukan sehingga fungsionalitas • ID – Identifikasi unik, biasanya berupa nomor urut.
perangkat lunak mudah diubah dan akhirnya kega- Hal ini untuk menghindari kehilangan jejak story
galan perangkat lunakpun bisa diminimalisir. kalau kita mengganti namanya.
6. Collaboration, dengan menggunakan agile, tim pe- • Nama – Nama story bersifat deskriptif, padat, sing-
ngembang diharuskan sering bertemu untuk mem- kat, dan jelas (2-10 kata), sehingga tim dan klien
bahas perkembangan proyek dan feedback dari kli- memahami kira-kira story yang dibicarakan.
en yang nantinya akan ditambahkan dalam perang-
kat lunak, sehingga tim bisa berkolaborasi dengan • Kepentingan – Derajat kepentingan yang diberik-
maksimal. an oleh klien terhadap story. Pemberian derajat
kepentingan biasanya menggunakan deret fibonacci
7. Self-organizing, self-managing teams, rekrut (1,1,2,3,5,dst). Semakin tinggi nilainya maka sema-
orang terbaik, beri dan dukung kebutuhan mereka kin tinggi pula prioritas pengerjaannya.
lalu biarkan mereka bekerja. Itulah perbedaan agile
• Perkiraan awal – Perkiraan awal tim tentang bera-
dan SDM lainnya. Dengan agile, developer dapat
pa banyak kerja yang diperlukan untuk mengimple-
memanajemen dirinya sendiri, sedangkan manajer
mentasikan sebuah story.
tim hanya bertugas mengkolaborasikan developer
perangkat lunak dengan klien. Sehingga terciptalah • Demo – deskripsi umum bagaimana cara story ini
tim yang solid. didemokan pada waktu sprint demo (lakukan ini,
klik itu, lalu ini akan muncul,dll).
• Manajer / Scrum Master, bertugas mengkolaborasik- Sprint 1, tim membuat fungsi login,logout dan demo per-
an developer dengan klien, membuat dan mengeva- angkat lunak akan dilakukan 3 minggu kemudian. Sete-
luasi target pengerjaan perangkat lunak. lah dilakukan demo untuk mengevaluasi kerja yang dila-
kukan tim pada Sprint 1, maka Sprint 1 dianggap selesei.
• Sistem Analis, membuat arsitektur sistem dari per- Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 be-
angkat lunak yang akan dibuat. gitu seterusnya sampai aplikasi selesei dikerjakan.
6 8 REFERENSI
6 Kelebihan dan Kekurangan Merupakan salah situs yang wajib dibaca bi-
la anda ingin belajar tentang agile development
methods, didalamnya anda dapat menemukan
6.1 Kelebihan
informasi diantaranya :
Beberapa kelebihan dari agile diantaranya[8] : • Cara untuk mengembangkan perangkat
dengan menggunakan prinsip-prinsip da-
• 82% Menambah produktivitas tim. ri agile.
• 77% Menambah kualitas perangkat lunak. • Bagaimana tim berinteraksi selama pro-
ses pembuatan perangkat lunak.
• 78% Menambah kepuasan klien. • 12 prinsip agile manifesto.
• 37% Menghemat biaya.
• Agile and lean software development linkedin group
• Agile tidak akan berjalan dengan baik jika komi- Pivotal tracker merupakan perangkat lunak
tmen tim kurang. agile project management dari Pivotal Lab.Di
dalam perangkat lunak ini terdapat berbagi file
• Tidak cocok dalam skala tim yang besar (>20 dan fungsionalitas manajemen tugas, pelacak-
orang). an kecepatan dan perencanaan iterasi, penanda
rilis, dan grafik kemajuan.
• Perkiraan waktu release dan harga perangkat lunak
sulit ditentukan.
• Trello
• Asana
• The agile samurai
•
•
•
8 9 TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES
9.2 Images
• Berkas:Agile_Method.jpg Sumber: https://upload.wikimedia.org/wikipedia/id/8/83/Agile_Method.jpg Lisensi: GFDL Kontributor: ?
Pembuat asli: ?
• Berkas:Generic_diagram_of_an_agile_methodology_for_software_development.png Sumber: https://upload.wikimedia.org/
wikipedia/commons/f/ff/Generic_diagram_of_an_agile_methodology_for_software_development.png Lisensi: CC BY-SA 3.0
Kontributor: Karya sendiri Pembuat asli: Benzirpi
• Berkas:Martin_Fowler_(2008).jpg Sumber: https://upload.wikimedia.org/wikipedia/commons/f/f8/Martin_Fowler_%282008%29.jpg
Lisensi: CC BY 2.0 Kontributor: Flickr: Martin Fowler Pembuat asli: Ade Oshineye
• Berkas:Question_book-4.svg Sumber: https://upload.wikimedia.org/wikipedia/commons/6/64/Question_book-4.svg Lisensi: CC-BY-
SA-3.0 Kontributor: Created from scratch in Adobe Illustrator. Originally based on Image:Question book.png created by User:Equazcion.
Pembuat asli: Tkgd2007
• Berkas:Wiki_letter_w.svg Sumber: https://upload.wikimedia.org/wikipedia/commons/6/6c/Wiki_letter_w.svg Lisensi: CC BY-SA 3.0
Kontributor: Karya sendiri; Wikimedia Foundation Pembuat asli: SVG Jarkko Piiroinen; rights, design and origin Wikimedia Foundation