Professional Documents
Culture Documents
didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang
memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile
development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang
digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan,
bebas bergerak, dan waspada.[1] Sehingga saat membuat perangkat lunak dengan
menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim
pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari
tim seimbang.
Pendahuluan
Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting
menentukan Metodologi pengembangan 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 kontrol pengerjaan suatu proyek,
sedangkan Proses pengembangan perangkat lunak adalah model-model dan metodologi yang
digunakan untuk mengembangkan suatu perangkat lunak. Ada beberapa model Metodologi
pengembangan perangkat lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping,
incremental, build & fix, dan synchronize & stabilize.[2] Terdapat enam langkah yang digunakan
dalam Metodologi pengembangan perangkat lunak,[3] yaitu :
Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan
dari perangkat lunak yang akan dibuat.
Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas
agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses
dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem.
Setelah 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 perangkat lunak dipelihara secara
berkala.
Agile manifesto
Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s
Manifesto diantaranya :
Interaksi dan personel lebih penting daripada proses dan alat, di dalam agile interaksi antar
anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses
pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat
melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan
lebih berguna daripada dokumentasi yang lengkap.
Kolaborasi dengan klien lebih penting daripada negosiasi kontrak, salah satu ciri dari agile
adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik
dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan
agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus
dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development
methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat
proses pembuatan perangkat lunak.
Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus
mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance yaitu :
1. Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat
lunak yang bernilai dengan cepat dan rutin.
2. Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat
lunak. Proses Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.
3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa
minggu sampai beberapa bulan, dengan preferensi kepada jangka waktu yang lebih
pendek.
4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang
proyek.
5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan
dukungan yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan
dengan baik.
6. Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim
pengembang perangkat lunak adalah dengan komunikasi secara langsung.
7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
8. Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-
pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara
berkelanjutan.
9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik
meningkatkan Agility.
10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat
penting.
11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang
dapat mengorganisir diri sendiri.
12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif,
kemudian menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.
Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses menerapkan agile
development methods. Dengan prinsip-prinsip tersebut agile berusaha untuk menyiasati tiga
masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak, yaitu:
Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah. Selain itu,
prioritas klien juga sering berubah seiring berjalannya proyek.
Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang
diperlukan sebelum pembangunan.
Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.
Model proses agile
Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik 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 : collaboration dan learning. '
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 instrospeksi pada kinerja dan proses.
1. Feasibility study, siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan
proses DSDM.
2. Business Study, susun kebutuhan fungsional dan informasi, tentukan arsitektur
aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.
3. Functional model iteration, perlihatkan fungsi perangkat lunak ke klien untuk
mendapatkan feedback
4. Design and Build Iteration, cek ulang prototip yang dibangun dan pastikan bahwa
prototip dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar
bekerja.
5. Implementation: buat perangkat lunak sesuai protoip yang ada dan terus tambah
fungsionalitasnya.
1. User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.
2. Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hierarki yang
ada.
3. Desain dan kode lebih mudah diperiksa secara efektif.
4. Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya.
Scrum
Scrum-ban
Story-driven modeling
Test-driven development (TDD)
Velocity tracking
Software Development Rhythms
Tujuan agile
Secara garis besar tujuan dirumuskannya agile development methods,yaitu :
Topik selanjutnya yaitu tentang cara kerja agile development methods. Disini
akan dijelaskan bagaimana agile development methods (model scrum)
digunakan dalam manajemen proyek.
Komposisi tim
Secara umum komposisi dari sebuah tim pengembang perangkat lunak [8] yaitu :
Story
Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi
apa yang klien kehendaki, dan ditulis dalam bahasa yang dimengerti klien.
Dengan kata lain dapat disimpulan Story adalah bagian terpenting dari Scrum.
Story terdiri dari kolom-kolom berikut ini
Tujuan sprint.
Daftar anggota tim harus lengkap.
Sprint backlog (daftar story yang akan diikutkan dalam sprint).
Tanggal demo yang pasti.
Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.
Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei
dikerjakan, sebagai contoh:
Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan
dilakukan 3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi
kerja yang dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan
evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai
aplikasi selesei dikerjakan.
Kelebihan
Beberapa kelebihan dari agile diantaranya :
Kekurangan
Sedangkan kekurangan dari agile antara lain :
Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
Tidak cocok dalam skala tim yang besar (>20 orang).
Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.