Agile Development: Be Agile!
Dalam kehidupan kita harus terus bergerak agar dapat bersaing dalam lingkungan yang kompetitif. Dalam dunia koding pun kita juga harus menerapkan hal yang sama. Agile Development menerapkan prinsip ini, tim bergerak cepat agar dapat bersaing dengan dunia teknologi yang sangat kompetitif.
Definisi dari agile sendiri menurut Agile Alliance adalah kemampuan untuk membuat dan merespon perubahan agar dapat sukses dalam lingkungan yang tidak pasti. Agile Software Development merupakan istilah untuk mendeskripsikan kumpulan dari metode dan pelaksanaan untuk men-deliver aplikasi secara cepat kepada pengguna. Inti dari agile adalah kemandirian dan lintas fungsi dari sebuah tim untuk membuat sebuah solusi dari kolaborasi.
Sejarah Singkat Agile
Di akhir tahun 1990 bermacam-macam metodologi software development mulai meningkat popularitasnya, dengan setiap metodologi memiliki kumpulan idenya sendiri. Ada poin utama dalam pendekatan agile:
- Kolaborasi antara tim pengembang dengan pemegang kepentingan bisnis
- menghantarkan produk secara iteratif dan inkremental
- Tim yang kecil dan mengatur dirinya sendiri
- memiliki cara yang inovatif untuk membuat, mengetes, dan mendeploy kode
Agile Manifesto menghasilkan 4 nilai dan 12 prinsip, yang memembentuk basis dari Agile Software Development dan masih sering digunakan sampai hari ini.
Agile hanyalah sebuah metodologi, ada framework yang menerapkan metodologi tersebut. Scrum merupakan salah satu framework yang menerapkan Agile dan digunakan dalam perkuliahan PPL yang sedang saya ambil pada saat ini.
Scrum
Scrum merupakan framework untuk mengembangkan dan melanjutkan produk yang kompleks. Scrum telah digunakan untuk mengembangkan perangkat lunak, perangkat keras, perangkat lunak terintegrasi, dan masih banyak lagi. Keampuhan Scrum dalam menghadapi kompleksitas semakin terbukti setiap harinya seiring dengan semakin meningkatnya kompleksitas dan interaksi antara teknologi, pasar dan lingkungan. Scrum terbukti efektif dalam transfer pengetahuan secara berkala dan berkelanjutan. Scrum saat ini sudah digunakan secara luas untuk produk-produk, layanan-layanan, dan manajemen perusahaan induk.
Scrum memiliki empat acara formal untuk melakukan inspeksi dan adaptasi, yakni:
- Sprint Planning
- Daily Scrum
- Sprint Review
- Sprint Retrospective
Scrum Team
Scrum Team terdiri dari Product Owner, Development Team dan Scrum Master. Scrum Team mengatur dirinya sendiri tanpa diperintah oleh orang lain diluar tim. Bentuk tim dalam Scrum dirancang untuk mengoptimalkan fleksibilitas, kreativitas dan produktivitas. Bentuk Scrum Team telah terbukti menjadikan tim semakin efektif dalam mengerjakan semua tipe pekerjaan yang telah disebutkan sebelumnya dan untuk jenis pekerjaan sekompleks apa pun. Penghantaran produk “Selesai” secara inkremental dilakukan agar memastikan versi produk yang berpotensi untuk digunakan selalu siap tersedia.
Agile membuat sebuah tim menjadi kompetitif dan cepat dalam merespon perubahan. Kompetensi tersebut sangat diperlukan agar dapat unggul dibanding tim lain dan menghasilkan produk yang memuaskan serta seringnya proses delivery produk.
Sekian tulisan saya mengenai agile. Semoga kita dapat menjadi agile dalam kehidupan dan dunia perkodingan. Sampai ketemu di tulisan saya selanjutnya!