Kenali lebih dalam Agile Development
Agile adalah sekumpulan metode pengembangan software yang dilakukan secara bertahap dan berulang (iterasi).
Agile development sering disebut sebagai
framework karena di dalamnya memang terdapat berbagai metode yang bisa
digunakan sesuai kebutuhan. Kami akan bahas lebih lanjut di bawah.
Setiap iterasi pada Agile juga
berbeda-beda durasinya, tergantung project yang Anda kerjakan dan metode yang
digunakan. Namun, umumnya iterasi berjalan antara satu sampai empat minggu.
Iterasi pada Agile fokus pada upaya
pengembangan software yang cepat sesuai perubahan kebutuhan konsumen dengan
melibatkan semua tim.
Contohnya, Anda sedang mengembangkan
aplikasi peta. Lalu, tiba-tiba terjadi pandemi yang memunculkan kebutuhan baru
di masyarakat tentang update informasi sebaran virus. Nah, dengan metode Agile,
Anda bisa beradaptasi dengan menambahkan fitur peta sebaran pandemi di iterasi
selanjutnya.
Dengan kata lain, Anda bisa langsung
mengambil keputusan perubahan software sesuai kondisi pasar sebelum software
benar-benar selesai.
Hasilnya, pengembangan software Anda
akan lebih fleksibel dan efisien. Plus, software Anda akan up-to-date karena
selalu menyesuaikan dengan kondisi pasar di setiap iterasinya.
Jenis-jenis Agile
1. Extreme
Programmning (XP)
2. Adaptive
Software Development (ASD)
3. Dynamic
Systems Development Method (DSDM)
4. Scrum
Methodology.
5. Crystal.
6. Feature
Driven Development (FDD)
7. Agile
Modeling (AM)
8. Rational
Unified Process.
agile Manifesto
Agile Manifesto adalah nilai-nilai dari
pengembangan software, Agile Manifesto yang berisi empat nilai penting dalam
pengembangan software, yaitu:
·
Mengedepankan individu dan interaksinya,
dibanding proses dan tools.
·
Mengedepankan software yang berfungsi,
dibanding membuat dokumentasi lengkap.
·
Mengedepankan kerjasama dengan konsumen,
dibanding negosiasi kontrak.
·
Mengedepankan menanggapi perubahan,
dibanding sekedar mengikuti rencana
Prinsip Agile
·
Prioritas utama adalah memuaskan klien
dengan menghasilkan perangkat lunak yang bernilai secara cepat dan rutin.
·
Siap terhadap perubahan kebutuhan.
Proses Agile memanfaatkan perubahan untuk keuntungan klien.
·
Menghasilkan perangkat lunak yang
bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan,
dengan mengutamakan jangka waktu yang pendek.
·
Rekan bisnis dan pengembang perangkat
lunak harus bekerjasama sepanjang proyek.
·
Lingkungan pengembang proyek memiliki
suasana yang motivatif. Berikan mereka lingkungan dan dukungan yang dibutuhkan,
dan percayai mereka untuk dapat menyelesaikan pekerjaan dengan baik.
·
Metode yang paling efisien dan efektif
untuk bertukar informasi dari dan dalam tim pengembang adalah dengan komunikasi
secara langsung.
·
Perangkat lunak yang bekerja adalah ukuran
utama kemajuan suatu tim.
·
Proses Agile mendukung pengembangan yang
berkelanjutan dengan kecepatan pengembangan yang konsisten.
·
Perhatian terhadap detail-detail teknis
dan desain akan meningkatkan agility.
·
Kesederhanaan (memaksimalkan jumlah
pekerjaan yang belum dilakukan) adalah hal yang sangat penting.
·
Self-organizing team mendukung
arsitektur, kebutuhan, dan rancangan perangkat lunak yang baik.
·
Secara berkala, tim pengembang
berefleksi tentang bagaimana agar pengembangan lebih efektif, kemudian menyesuaikan
cara bekerja mereka.
Tujuan Agile
·
High-value and working App system —
Software yang diciptakan berfungsi baik, nilai jualnya tinggi, dan biaya
pembuatannya rendah.
·
Iterative, incremental, evolutionary —
Pengembangan software terbuka dengan perubahan di mana tim mampu bekerja dengan
singkat dalam menambah fitur sesuai kebutuhan konsumen.
·
Cost control & value-driven
development — Software dikembangkan dengan
sesuai kebutuhan pengguna dengan waktu dan biaya pengembangan yang dikontrol.
·
High-quality production —
Kualitas software bisa terjaga dengan melakukan tes menyeluruh di setiap
iterasinya.
·
Flexible & risk management —
Proses pengembangan software disiapkan untuk menghadapi perubahan berbekal
kemampuan adaptasi yang baik. Jadi, dapat meminimalisir kegagalan.
·
Collaboration —
Kolaborasi tim lebih maksimal karena rutin bertemu untuk membahas perkembangan
project.
·
Self-organizing, self-managing teams —
Tim bisa mengatur dirinya sendiri dengan support dari pimpinan sehingga
tercipta tim yang solid.
Kelebihan dari agile
·
Dapat melakukan review pelanggan
mengenai software yang dibuat lebih awal.
·
Pembangunan system dibuat lebih cepat.
·
Perubahan dengan cepat ditangani
·
Jika pada saat pembangunan system
terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari agile
·
Pengembang harus selalu siap dengan
perubahan karena perubahan akan selalu diterima.
·
Agile tidak akan berjalan dengan baik
jika komitmen tim kurang.
·
Tidak cocok dalam skala tim yang besar
(>20 orang).
Comments
Post a Comment