Agile Manifesto

Fay Anyatasia
Dekowarehouse Project
4 min readMar 21, 2018

Pada pengembangan sebuah software, salah satu metodologi yang sering digunakan adalah Agile. Agile dalam bahasa indonesia, yang artinya adalah lincah atau tangkas.

Pada tanggal 17 Februari 2001, tujuh belas developer (termasuk diantaranya adalah Ken Beck dan Martin Fowler) berjumpa untuk mendiskusikan teknik pengembangan software yang ringan dan lincah. Mereka kemudian menghasilkan apa yang disebut sebagai The Agile Manifesto yang terdiri atas 4 nilai dan 12 prinsip. Nah, Agile merujuk pada sekumpulan metode dan praktik berdasarkan nilai dan prinsip yang tercantum didalam Agile Manifesto.

Untuk melihat, Agile Manifesto secara lengkap, dapat membuka tautan berikut. Terdapat 4 nilai utama yaitu :

  1. Individuals and interactions over processes and tools

Individu dan interaksi lebih diutamakan dibandingkan proses dan alat-alatnya, karena yang memberikan respon terhadap kebutuhan klien adalah individu, bukannya proses, sehingga individu lah yang menjadi motor penggerak dalam pengembangan software ini. Jadi development akan lebih responsif terhadap kebutuhan klien.

Beberapa masalah yang sering terjadi dalam pengembangan suatu produk yaitu lempar tanggung jawab dan saling menyalahkan, tidak termotivasi, ataupun kurangnya kolaborasi antar individu. Masalah-masalah ini dapat diatasi jika adanya interaksi antar anggota yang baik. Interaksi yang baik ditandai dengan komunikasi yang lancar. Artinya antara satu developer, tidak boleh “bodo amat” dengan pekerjaan developer yang lain. Mereka harus saling memahami pekerjaan developer lain sehingga tidak ada lempar tanggung jawab.

Prinsip di atas juga berarti tidak ada pemaksaan tool yang dipakai oleh developer. Sebagai contoh, developer boleh memakai IDE dan sistem operasi favorit mereka. Dengan memberikan kebebasan bagi developer, mereka diharapkan memiliki produktifitas semaksimal mungkin.

2. Working software over comprehensive documentation

Dokumentasi memang penting, namun working software lebih diutamakan. Dulu banyak waktu dialokasikan untuk mendokumentasikan suatu produk seperti contohnnya penjabaran berbagai spesifikasi produk, requirement, desain interface, dan sebagainya yang ditulis secara detail sehingga menghasilkan dokumen yang cukup banyak. Hal ini menambah delay dalam delivery produk.

Namun pada agile, lebih diutamakan working product terdeliver dengan cepat kepada klien sehingga kita bisa mendapatkan feedback lebih cepat, yang nantinya dapat digunakan untuk membuat produk menjadi lebih baik lagi. Dokumentasi-dokumentasi requirement diwujudkan sebagai user stories, dan itu sudah cukup untuk developer untuk memulai megimplementasikan fungsi yang diinginkan.

3. Customer collaboration over contract negotiation

Kolaborasi klien didalam iterasi pengembangan software akan menjadikan proses development menjadi lebih efektif. Hal ini pun akan menguntungkan kedua belah pihak, baik klien ataupun developer. Developer diuntungkan karena dapat mengetahui spesifikasi produk dengan lebih jelas dan mengeliminasi fitur yang kurang feasible ataupun tidak diinginkan. Klien juga diuntungkan karena produk yang jadi nantinya akan sesuai dengan kebutuhan dan keinginannya.

Dibandingkan dengan metode konvensional seperti Waterfall, dimana requirement sudah harus jelas di awal. Klien hanya akan terlibat di awal, bukan ketika proses berjalan. Sehingga akan menyulitkan developer nantinya jika ketika produk itu di deliver, ternyata hal tersebut tak sesuai dengan keinginan klien.

4. Responding to change over following a plan

Requirement yang berubah-ubah seiring berjalannya pengembangan dapat diatasi dengan Agile. Iterasi dalam Agile cenderung pendek dan fitur baru dapat ditambahkan pada iterasi berikutnya jika diperlukan. Fleksibilitas dalam pengerjaan project dapat meningkatkan kualitas produk sehingga nilai dari produk dapat naik nantinya. Produk juga akan lebih sesuai dengan kebutuhan klien. Metodologi Agile ini berusaha membuat produk sedekat dengan apa yang dibutuhkan oleh klien.

12 Prinsip Agile yaitu :

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

Implementasi dalam kelompok kami :

Pada kelompok kami, agile sudah diterapkan dengan cukup baik. Jika di breakdown berdasarkan 4 value agile :

  1. Individuals and interactions over processes and tools

Kami selalu berkomunikasi dengan sesama melalui media sosial LINE. Komunikasi diantara kami berjalan lancar dan cukup intensif. Ketika ada masalah seperti misalkan installing package yang error, kami selalu mengkomunikasikannya di grup atau ke teman yang bersangkutan.

2. Working software over comprehensive documentation

Kami juga mengutamakan working software dibandingkan documentation. Documentation yang kami buat hanyalah berupa user manual. Documentation didalam codenya hampir tidak ada namun kami selalu memastikan code yang kami buat clean dengan cara saling mereview code satu sama lain sebelum merge ke suatu branch.

3. Customer collaboration over contract negotiation

Kami berkolaborasi dengan baik dengan partner kami yaitu Dekoruma. Kami memiliki grup bersama Kak Aru dan Kak Jenny. Mereka berdua baik sekali mengajarkan hal-hal yang tidak kami mengerti (karena kami semua belum pernah mencoba React sebelummnya) dan memberikan hal-hal yang kami butuhkan seperti refrensi untuk belajar. Ketika kami kesulitan, kak Aru dan kak Jenny pun sangat fast response untuk membantu kami.

4. Responding to change over following a plan

Selama iterasi pertama, belum ada perubahan dari klien. Namun pada sprint review kemarin, pihak Dekoruma meminta perubahan backlog yang sudah kami rencanakan sebelumnya yaitu “Comparison”dan pada akhirnya di sprint berikutnya kita mengerjakan backlog tersebut.

Referensi :

--

--