Agile Manifesto & Principles

Jihad MJR
AdHub Team
Published in
3 min readMar 17, 2019

“ Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.”

4 Agile Manifesto

Agile Manifesto merupakan nilai-nilai yang digunakan dalam mendasari berlangsungnya Agile Software Development. Agile Manifesto muncul dilatarbelakangi oleh rasa lelah para pengembang software akibat metode yang digunakan pada saat itu, yaitu Waterfall Model. Salah satunya jeda waktu yang panjang antara penentuan requirement dan product delivery yang dapat berujung pada pembatalan project karena prosesnya yang lama. Kebutuhan klien juga berubah-ubah pada jangka waktu tersebut sehingga produk akhir tidak memenuhi requirement.

Agile Manifesto terdiri dari 4 nilai utama. Berikut adalah 4 nilai Agile Manifesto yang dikutip dari website tersebut.

1. Individuals and Interactions Over Processes and Tools

Interaksi antar individu lebih diutamakan dibandingkan prosesnya, karena yang merespon terhadap kebutuhan klien adalah individu, bukan proses, sehingga individu lah yang menyetir development yang berlangsung. Komunkasi tim sangatlah menentukan arus pengembangan. Sehingga kominkasi harus terstruktur dan terjadwal.

Penerapan: Dalam proses pengembangan produk, kami lebih mengutamakan komunikasi antar individu. Seperti ketika kami menentukan tech stack yang akan kami terapkan.

2. Working Software Over Comprehensive Documentation

Pada agile, lebih diutamakan working produk yang terdeliver ke klien dengan cepat, sehingga hal-hal terkait dokumentasi tersebut dikurangi. Dokumentasi-dokumentasi diwujudkan sebagai user stories dan itu sudah cukup menyampaikan dan memulai megimplementasikan fungsi yang diinginkan.

Penerapan: Ketika mengembangan produk kami meluncurkan fitur baru pada setiap sprint dan kami tidak memprioritaskan dalam membuat dokumentasi seperti halnya UCS.

3. Customer Collaboration Over Contract Negotiation

Pada agile, iterasi yang dilengkapi dengan kolaborasi dengan klien akan lebih efektif untuk development. Klien dapat memberikan feedback terhadap hasil yang telah dibuat pada setiap iterasi yang disebut dengan sprint. Sehingga perbaikan atau perubahan dapat dilakukan saat sprint berlangsung tidak ketika program sudah siap untuk dirilis

Penerapan: Pada setiap iterasi sprint kami melakukan sprint review, dalam hal ini fitur yang sudah kami rilis akan diberikan umpan balik oleh product owner dan akan kami perbaiki dalam iterasi berikutnya.

4. Responding to Change Over Following a Plan

Model development tradisional seperti Waterfall tidak fleksibel terhadap perubahan, sehingga sekarang banyak dihindari. Model tersebut menekankan proses development yang sesuai dengan perencanaan dan secara detail serta sesuai urutan yang telah ditetapkan dengan fitur-fitur yang sudah pasti, tidak dapat berubah-ubah. Pada Agile, development lebih fleksibel terhadap perubahan. Agile menggunakan iterasi yang pendek dan fitur baru dapat ditambahkan pada iterasi berikutnya jika diperlukan fitur baru. Sehingga Agile fleksibel terhadap perubahan dapat meningkatkan kualitas project sehingga diperoleh nilai lebih pada hasil akhirnya.

Penerapan: Rencana yang sudah kami rancang sejak awal mungkin akan berubah, seperti pada sprint pertama

12 Agile Principles

Dari keempat nilai tersebut, dapat dijabarkan ke dalam 12 prinsip sebagai Agile Principles. Berikut adalah prinsip-prinsip tersebut yang dikutip dari website agile manifesto.

  • 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.

Referensi:

--

--