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

Popular Posts