Understanding Agile

Kustiawanto Halim
Auto Personalia
Published in
4 min readApr 19, 2017
Agile Manifesto

What I have done.

Selama minggu lalu, terdapat beberapa hal yang saya lakukan diantaranya adalah:

  • Membuat front-end untuk create division. Dalam membuat tampilan, saya menggunakan navbar yang sama dengan yang dibuat oleh teman saya sebelumnya. Saya melakukan perubahan pada bagian menu, yaitu yang tadinya Ubah Struktur menjadi Tambah Struktur. Saya juga menambahkan dua menu baru, Lihat Divisi dan Tambah Divisi. Secara umum pembuatan tampilan cukup mudah, hanya perlu menambahkan table untuk Lihat Divisi dan membuat form singkat untuk Tambah Divisi.
  • Membuat unit test untuk fungsi viewListDivision. Pembuatan unit test pada dasarnya sama dengan yang telah saya lakukan pada branch create job.
  • Melengkapi unit test untuk branch create job. Setelah mendapatkan review dari Riscel, maka saya menambahkan satu test yang belum diimplementasikan untuk fungsi pada create job.
  • Selain itu, yang saya lakukan adalah membantu teman-teman dalam knowledge sharing, yang saya bantu share adalah pengetahuan pembuatan unit test, serta fungsi pada Node.js.

Adapun masalah yang dihadapi adalah masalah komunikasi, karena pada minggu lalu dan minggu ini, jadwal saya dan teman-teman sedikit berbeda sehingga kesulitan dalam melakukan sinkronisasi pekerjaan satu sama lain.

Berikutnya, hal baru yang saya pelajari adalah terkait dengan Agile. Berikut penjelasannya.

Agile Manifesto dan Agile Principle

Agile sebagai bentuk jawaban pada masa industri pada tahun 1900-an karena lamanya waktu yang dibutuhkan dari fase bisnis requirement hingga mencapai deliverable product yang diinginkan. Karena waterfall model yang lazim digunakan pada saat itu tidak mampu memenuhi kebutuhan, maka pada tahun 2000, 17 orang hebat berkumpul untuk merumuskan Agile Manifesto sebagai berikut:

“We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

“Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

“That is, while there is value in the items on
the right, we value the items on the left more.”

Empat Nilai dalam Agile Manifesto

Agile Manifesto dikompresi dalam empat nilai dasar sebagai berikut:

  1. Individuals and Interactions Over Processes and Tools
    Nilai pertama ini bermakna bahwa kita harus menghargai “orang” secara lebih dibandingkan dengan proses ataupun alat yang digunakan, karena “orang”-lah yang melakukan respon terhadap kebutuhan bisnis dan menjalankan proses development. Komunikasi adalah contoh bentuk menghargai “orang” dibandingkan proses ataupun alat, karena dalam kasus agile, komunikasi merupakan hal terpenting.
  2. Working Software Over Comprehensive Documentation
    Agile Manifesto menghargai dokumentasi, tetapi lebih menghargai software yang “berjalan”. Seperti yang kita ketahui, begitu banyak waktu yang dihabiskan untuk menuliskan dokumentasi seperti technical requirement, interface design, dll. Agile tidak menghilangkan dokumentasi, tetapi dipadatkan dalam bentuk user story yang mudah dipahami dan langsung digunakan developer.
  3. Customer Collaboration Over Contract Negotiation
    Negosiasi adalah masa dimana customer dan product manager membahas detail mengenai produk, mulai dari requirement hingga design. Sedangkan dalam Agile, customer adalah sosok yang bergabung dan melakukan kolaborasi dalam menentukan throughput dari proses development.
  4. Responding to Change Over Following a Plan
    Pada cara pengembangan software tradisional, perubahan yang dilakukan terhadap requirement harus dihindari, tetapi dalam Agile, perubahan terhadap requirement dapat dilakukan karena singkatnya waktu iterasi, asalkan perubahan yang dilakukan memang untuk meningkatkan kualitas project.

“A process or capability in which human agents determine a system development approach for a specific project situation through responsive changes in, and dynamic interplays between contexts, intentions, and method fragments.” Agile methodologies allow the Agile team to modify the process and make it fit the team rather than the other way around.

~ An Agile Information Systems Development Method

Dua Belas Prinsip Agile Manifesto

Ada dua belas prinsip dalam Agile Manifesto sebagai berikut:

  • Customer satisfaction through early and continuous software delivery — Customer akan lebih senang apabila menerima working software dalam jangka waktu tertentu dan terus menerus, daripaada menunggu waktu rilis yang lama.
  • Accommodate changing requirements throughout the development process —Kemampuan menghindari delay ketika terjadi perubahan requirement atau fitur.
  • Frequent delivery of working software —Scrum mengakomodasi prinsip ini, dimana dalam setiap sprint atau iterasi diharuskan untuk menghasilkan software yang deliverable.
  • Collaboration between the business stakeholders and developers throughout the project — Keputusan yang baik dibuat ketika bisnis dan teknis sejalan.
  • Support, trust, and motivate the people involved —Team yang gembira dan memiliki motivasi biasanya memiliki produktifitas yang baik.
  • Enable face-to-face interactions —Komunikasi adalah kunci sukses pengembangan, terutama apabila dilakukan secara tatap muka langsung.
  • Working software is the primary measure of progress — Software yang fungsionalitasnya sudah baik dan siap digunakan customer adalah alat ukur dari progress Agile.
  • Agile processes to support a consistent development pace — Team akan memastikan kegiatan pengembangan dilakukan dalam waktu yang terukur dan dilakukan terus menerus secara konstan dalam setiap iterasi.
  • Attention to technical detail and design enhances agility — Skill dan design yang baik memastikan team dapat melakukan pengembangan tepat waktu.
  • Simplicity —Kembangkan apa yang perlu dikembangkan pada iterasi atau sprint itu saja.
  • Self-organizing teams encourage great architectures, requirements, and designs —Anggota team yang memiliki skill lebih, baik dalam manajemen maupun teknis, harus berbagi pengalaman dan pengetahuan kepada anggota team lainnya.
  • Regular reflections on how to become more effective — Self-improvement, process improvement, meningkatkan skill dan teknis membantu team bekerja lebih efektif.

Agile sendiri dibuat agar proses pengembangan dapat sejalan dengan kebutuhan bisnis. Agile berfokus pada kebutuhan customer dan membutuhkan partisipasi customer tersebut.

Dalam PPL ini, konsep Agile sangat terasa kental, dimana kita menggunakan Scrum, dosen sebagai customer, kami harus menyesuaikan pengembangan dengan keinginan customer, serta cepatnya fase pengembangan yang ada.

--

--

Kustiawanto Halim
Auto Personalia

Mobile Apps Developer (Android, iOS, Flutter) | IoT enthusiast