Agile Software Development: Manifesto dan Prinsip

Muhammad Rifqi
6 min readMay 3, 2021

--

Sumber: ScienceSoft

When to use iterative development? You should use iterative development only on projects that you want to succeed. — Martin Fowler

Pada artikel kita akan membahas mengenai Agile Software Development, mulai dari pengertian, agile manifesto, agile principles, hingga salah satu implementasi dari Agile yakni Scrum. Yuk kita mulai!

Apa itu Agile Software Development?

Agile Software Development adalah metodologi pengembangan perangkat lunak dengan proses pengerjaan yang berulang (iteratif). Sesuai dengan namanya, yakni agile, setiap proses pengerjaan dilakukan dengan fase yang cepat serta adaptif terhadap segala perubahan.

Agile Manifesto

Sumber: Ilker Demirel

Agile Manifesto merupakan nilai-nilai utama yang mendasari Agile Software Development. Terdapat empat poin Agile Manifesto, antara lain:

1. Individuals and interactions over processes and tools

Poin ini menyatakan bahwa pada Agile Software Development, individu dan interaksi (dalam hal ini adalah komunikasi dan kerjasama antar individu) lebih diutamakan dibanding proses dan tools. Karena secanggih apapun proses dan tools yang digunakan, pengembangan tidak akan berjalan lancar tanpa adanya individu dan kerjasama yang baik.

2. Working software over comprehensive documentation

Poin ini menyatakan bahwa pada Agile Software Development, fungsionalitas perangkat lunak yang dibuat lebih diutamakan dibanding dokumentasi yang lengkap dan menyeluruh. Karena sepenting apapun dokumentasi, hal yang lebih penting adalah bagaimana produk yang kita kembangkan berfungsi dan dapat digunakan oleh client.

3. Customer collaboration over contract negotiation

Poin ini menyatakan bahwa pada Agile Software Development, kolaborasi dan interaksi dengan client lebih diutamakan dibanding negosiasi kontrak. Karena bagaimanapun, client sendiri lah yang paling memahami apa yang ia inginkan dan butuhkan. Sehingga dengan adanya kolaborasi, produk yang dihasilkan akan semakin sesuai dengan ekspektasi dan kebutuhan client.

4. Responding to change over following a plan

Poin ini menyatakan bahwa pada Agile Software Development, respon dan adaptasi terhadap perubahan lebih diutamakan dibanding tetap pada rencana awal. Rencana hanyalah sekadar rencana, pada prosesnya perubahan dan perkembangan merupakan suatu hal yang tidak bisa dihindari.

Agile Principles

Sumber: Openxcell

Berdasarkan keempat nilai utama Agile Manifesto yang telah dibahas sebelumnya, dijabarkan dua belas prinsip pada Agile, atau yang dikenal dengan istilah Agile Principles, antara lain:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
    Mengutamakan kepuasan client dengan menghasilkan produk secara lebih awal dan berkelanjutan
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
    Menerima segala perubahan yang diminta client
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
    Menghasilkan software secara bertahap dalam jangka waktu yang pendek
  4. Business people and developers must work together daily throughout the project.
    Adanya kerja sama dan interaksi antara pengembang dan pebisnis selama pengerjaan proyek
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
    Membentuk tim berisikan orang-orang yang bermotivasi tinggi
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
    Melakukan komunikasi secara langsung (tatap muka)
  7. Working software is the primary measure of progress.
    Progress diukur dari software yang dapat berfungsi dengan baik
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
    Pengembangan dilakukan secara berkelanjutan dan dengan kecepatan yang konstan
  9. Continuous attention to technical excellence and good design enhances agility.
    Memperhatikan kualitas dan desain teknis yang baik
  10. Simplicity–the art of maximizing the amount of work not done–is essential.
    Menyederhanakan pekerjaan
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
    Tim harus mampu mengorganisir diri sendiri
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
    Melakukan evaluasi secara berkala dan menyesuaikan pola kerja

Scrum

Seperti yang telah disinggung di awal, kita akan membahas mengenai salah satu pengimplementasian dari Agile Software Development, yakni Scrum. Scrum merupakan suatu framework pengembangan perangkat lunak dengan pendekatan Agile, yang menekankan pada kolaborasi tim, proses yang iteratif, serta hasil produk yang incremental.

Three Pillars of Scrum

Sumber: Scrum.org

Dalam proses Scrum, terdapat tiga pilar utama atau yang dikenal dengan istilah Three Pillars of Scrum, antara lain:

  1. Transparency
    Segala proses dan kegiatan dilakukan secara transparan, dimana semua pihak yang terlibat mengetahuinya.
  2. Inspection
    Inspeksi terhadap produk, proses, individu, praktik, dan improvements dilakukan oleh setiap orang yang ada di tim.
  3. Adaptation
    Adaptasi berupa improvements terhadap hasil inspeksi yang telah dilakukan sebelumnya.

Roles pada Scrum

Sumber: Scrum.org

Dalam melakukan Scrum, terdapat tiga peran utama dengan perannya masing-masing, diantaranya:

  1. Product Owner
    Berperan sebagai representasi dari client sekaligus menjadi jembatan antara client dengan developer
  2. Scrum Master
    Berperan untuk memimpin tim developer, memastikan proses berjalan dengan lancar dan dapat mencapai goals yang ada
  3. Developer Team
    Berperan untuk men-develop software sesuai dengan tahapan yang telah direncanakan

Tahapan pada Scrum

Sumber: PowerSlides
  1. Pembuatan Product Backlog
    Pada tahapan ini, product owner merumuskan product backlog berdasarkan spesifikasi atau permintaan fitur dari client, dengan menentukan prioritas pengerjaan.
  2. Sprint Planning Meeting
    Pada tahapan ini, scrum master akan memfasilitasi pertemuan antara product owner dengan tim developer untuk membahas mengenai product backlog item apa saja yang akan dikerjakan pada sprint selanjutnya. Pada tahap ini juga estimasi bobot dari setiap tugas.
  3. Pemilihan Sprint Backlog
    Dilakukannya sprint planning akan menghasilkan sprint backlog yang berisi daftar product backlog item (PBI) yang harus dikerjakan pada sprint. Pada tahap ini, setiap developer akan memilih PBI yang akan ia kerjakan.
  4. Sprint
    Pada tahapan sprint, tim developer mengerjakan PBI yang telah dipilih sebelumnya. Umumnya tahapan ini dilakukan selama 1–4 minggu.
  5. Daily Scrum
    Pada tahapan yang dipimpin oleh scrum master ini, setiap developer akan mempresentasikan mengenai apa yang telah ia lakukan kemarin, apa yang akan ia lakukan besok, dan hambatan apa saja yang ia rasakan. Tahapan ini dilakukan setiap hari selama sprint dengan waktu +-15 menit.
  6. Sprint Review
    Pada tahapan ini, product owner akan mendemonstrasikan increment, yakni hasil pekerjaan tim developer selama satu sprint, dan menjelaskan apakah goals pada sprint tersebut tercapai kepada pihak client. Nantinya feedback yang diberikan oleh pihak client akan dimasukkan kedalam product backlog untuk ditelaah.
  7. Sprint Retrospective
    Sebagai tahapan terakhir dari sebuah sprint, pada tahap ini setiap anggota tim akan memberikan evaluasi terkait kinerja tim dalam sprint yang telah dilakukan, dengan harapan permasalahan yang sama tidak akan terulang kembali sekaligus menjadi improvement untuk sprint selanjutnya.

--

--

No responses yet