Agile Development

source: https://nascenia.com/necessary-factors-to-make-agile-software-development-a-success/

Apa itu Agile

Istilah Agile berasal dari kata “ Agility” , yang memiliki arti respons yang efektif, baik secara cepat ataupun adaptif terhadap perubahan. Sedangkan arti dari agile sendiri adalah kemampuan untuk menciptakan dan menanggapi perubahan. Agile adalah cara untuk menangani lingkungan yang tidak pasti ataupun kacau. Dalam proses sofware development, Agile menuntut kita untuk berpikir tentang apa yang terjadi di lingkungan sekitar kita, dan bagaimana cara beradaptasi dalam menghadapi lingkungan tersebut. Berdasarkan konsep tersebut, diciptakanlah approach dalam software development yaitu agile software development.

The Agile Manifesto

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.

Berdasarkan dari 4 nilai yang ada dari Agile Manifesto, dihasilkannya 12 prinsip diantaranya:

12 Agiles Principles, source: https://nicocasel.net/blog/why-i-feel-natural-with-agile-principles/

Agile frameworks

Seperti dari yang sudah dijelaskan, Agile software development terdiri dari beberapa framework dan praktik. Berikut adalah beberapa penjelasan dari framework yang merupakan subset dari agile software development.

1. Extreme Programming (XP)

XP Release Cycle, source: Slide RPL Agile Development Universitas Indonesia
Alur proses Scrum, source: https://www.scrum.org/resources/what-is-scrum
  • Series of Sprint Cycles: tahap dimana sprint-sprint akan dilaksanakan. Setiap cycle dari sprint mengembangkan increment dari system yang dibuat.
  • Project Closure: Tahap penyelesaian projek, menyelesaikan dokumen yang diperlukan untuk projek seperti panduan instalasi atau user manual.
  • Development Team: Merupakan team programmer yang bertugas untuk mengembangkan software. Biasanya tidak ada role karena setiap anggota bekerja sama dalam mengembangkan aplikasi dari fitur masing-masing, namun juga dapat dibagi seperti menjadi frond end dan back end developer.
  • Scrum Master: Merupakan orang yang bertugas untuk mengatur development team. Semua event yang ada pada scrum juga akan diatur jadwal dan pelaksanaannya oleh scrum master.
  • Sprint: Merupakan tahap dimana development team bekerja sama dalam menyelesaikan sprint backlog yang sudah ditentukan pada sprint planning. Biasanya durasi dari 1 sprint bisa sekitar 1–4 minggu.
  • Daily Standup Meeting: Merupakan meeting yang diadakan setiap hari yang diadakan dengan waktu singkat. Hal yang dibahas pada meeting ini adalah apa saja yang telah dilakukan setelah meeting terakhir, apakah ada halangan yang dihadapi, dan apa yang akan dilakukan sebelum meeting selanjutnya.
  • Sprint Review: Merupakan demo dari produk yang telah selesai di increment dari 1 tahap sprint terhadap stakeholder dari produk.

Contoh praktik Scrum yang dilakukan pada projek yang saya buat

Dalam salah satu project yang saya kembangkan, team saya mengimplementasikan scrum sebagai framework agile yang dilakukan. Berikut adalah sedikit penjelasan tentang aktivitas yang kami lakukan.

Sprint Planning

Product owner dari project kami menentukan fitur-fitur apa saja yang ingin dimasukkan ke dalam project, yang kemudian dibagi oleh scrum master kami menjadi PBI (Product Backlog Item). Pada sprint planning, scrum master kemudian akan menentukan PBI apa saja yang akan dimasukkan ke dalam sprint backlog yang akan dikerjakan pada sprint.

Sprint

Durasi waktu sprint yang kami lakukan dalam proses scrum ini adalah 2 minggu. Pada tahap ini, setiap anggota development team akan mengerjakan PBI yang sudah di assign ke dirinya masing-masing. Dalam mengerjakan projek, development team kami dibagi menjadi 2 role, yaitu frond end developer dan back end developer.

Daily Standup Meeting

Daily Standup Meeting kami adakan sekitar 2–3 hari sekali. Meskipun normalnya durasi tersebut adalah 1 hari, karena pada saat proses development anggota tim masih sibuk aktivitas kuliah, maka diputuskan untuk diadakan daily standup meeting dengan durasi tersebut, dan diadakan menyesuaikan dengan schedule masing-masing anggota.

Sprint Review

Pada akhir dari sprint, kami mempresentasikan hasil produk yang telah di increment pada satu tahap sprint tersebut. Hal yang dipresentasikan dari produk merupakan working product yang telah di deploy di environment development. Product owner kemudian akan memberikan feedback mengenai kelebihan dan kekurangan yang ada pada produk tersebut. Jika masih ada fitur yang tidak memenuhi kriteria, maka PBI fitur tersebut akan dimasukkan ke sprint backlog selanjutnya untuk dibenarkan. Setelah tahap ini selesai, diadakan sprint retrospective, yang akan mendiskusikan lebih lanjut mengenai apa yang sudah cukup dan apa yang masih bisa di improve, sehingga sprint selanjutnya dapat berjalan dengan lebih baik.

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store