Agile Development Pada Scrum Booster

Khoirul Khuluqi Abdulloh
Scrum Booster
Published in
4 min readApr 4, 2019

Agile Development Method merupakan salah satu dari metodologi pengembangan perangkat lunak yang digunakan dalam mengembangkan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Metodologi ini didasarkan prinsip-prinsip untuk pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap segala perubahan dalam bentuk apapun, sehingga dapat diterapkan pengembangan yang fleksibel dan juga produk yang berkualitas tinggi. Supaya pengembangan dengan metodologi ini dapat berjalan dengan baik, diperlukan inovasi dan komitmen yang baik antara tim pengembang dan juga klien. Agile Development tidak cocok dalam skala tim yang besar yakni >20 orang.

The Four Values Of The Agile Manifesto

Agile Manifesto terdiri dari empat nilai dasar dan 12 prinsip pendukung yang mengarahkan pendekatan Agile ke pengembangan perangkat lunak. Agile Manifesto dibuat untuk memandu pengembangan sehingga terbentuk perangkat lunak yang berfungsi dan berkualitas tinggi. Setiap metodologi Agile menerapkan empat nilai tersebut dengan cara yang berbeda-beda, semuanya bergantung pada developer.

  1. Individuals and Interactions Over Processes and Tools
    Yang merespons kebutuhan bisnis dan mendorong proses pengembangan adalah orang. Komunikasi adalah contoh perbedaan antara menilai individu dengan menilai proses. Dalam kasus individu, komunikasi lancar dan terjadi ketika suatu kebutuhan muncul. Dalam hal proses, komunikasi dijadwalkan dan memerlukan konten tertentu.
  2. Working Software Over Comprehensive Documentation
    Secara historis, sejumlah besar waktu dihabiskan untuk mendokumentasikan produk untuk pengembangan dan pengiriman produk akhir. Daftar dokumentasi ini luas dan merupakan penyebab keterlambatan panjang dalam pengembangan. Agile tidak menghilangkan dokumentasi, tetapi merampingkannya. Agile Manifesto menghargai dokumentasi, tetapi lebih menghargai perangkat lunak yang berfungsi.
  3. Customer Collaboration Over Contract Negotiation
    Dengan model pengembangan seperti Waterfall, pelanggan menegosiasikan persyaratan untuk produk, seringkali dengan sangat rinci, sebelum pekerjaan dimulai. Ini berarti pelanggan terlibat dalam proses pengembangan sebelum pengembangan dimulai dan setelah selesai, tetapi tidak selama proses. Agile Manifesto menggambarkan pelanggan yang terlibat dan berkolaborasi sepanjang proses pengembangan. Hal ini membuat pengembangan lebih mudah untuk memenuhi kebutuhan pelanggan mereka.
  4. Responding to Change Over Following a Plan
    Pengembangan perangkat lunak tradisional menganggap perubahan sebagai biaya, sehingga harus dihindari. Dengan Agile, pendeknya iterasi berarti prioritas dapat digeser dari iterasi ke iterasi selanjutnya dan fitur baru dapat ditambahkan ke iterasi berikutnya. Pandangan Agile adalah bahwa perubahan memberikan nilai tambah.

The Twelve Agile Manifesto Principles

  1. Customer satisfaction through early and continuous software delivery
    Pelanggan lebih bahagia ketika mereka menerima perangkat lunak yang berfungsi secara berkala, daripada menunggu periode waktu yang lama untuk rilis.
  2. Accommodate changing requirements throughout the development process
    Kemampuan untuk menghindari keterlambatan saat persyaratan atau permintaan fitur berubah.
  3. Frequent delivery of working software
    Scrum mengakomodasi prinsip ini karena tim beroperasi dalam sprint atau iterasi perangkat lunak yang memastikan pengiriman perangkat lunak yang berfungsi secara teratur.
  4. Collaboration between the business stakeholders and developers throughout the project
    Keputusan lebih baik dibuat ketika tim bisnis dan teknis diselaraskan.
  5. Support, trust, and motivate the people involved
    Tim yang termotivasi lebih cenderung memberikan karya terbaik mereka daripada tim yang tidak bahagia.
  6. Enable face-to-face interactions
    Komunikasi lebih berhasil ketika tim pengembangan ditempatkan bersama.
  7. Working software is the primary measure of progress
    Memberikan perangkat lunak fungsional kepada pelanggan adalah faktor utama yang mengukur kemajuan.
  8. Agile processes to support a consistent development pace
    Tim menetapkan kecepatan yang dapat diulang dan dipelihara di mana mereka dapat memberikan perangkat lunak yang berfungsi, dan mereka mengulanginya dengan setiap rilis.
  9. Attention to technical detail and design enhances agility
    Keahlian yang tepat dan desain yang baik memastikan tim dapat menjaga kecepatan, terus meningkatkan produk, dan mempertahankan perubahan.
  10. Simplicity
    Pengembangan cukup dilakukan untuk menyelesaikan pekerjaan saat ini.
  11. Self-organizing teams encourage great architectures, requirements, and designs
    Anggota tim yang terampil dan termotivasi yang memiliki kekuatan dalam pengambilan keputusan, mengambil kepemilikan, berkomunikasi secara teratur dengan anggota tim lain, dan berbagi ide yang menghasilkan produk berkualitas.
  12. Regular reflections on how to become more effective
    Perbaikan diri, peningkatan proses, keterampilan maju, dan teknik membantu anggota tim bekerja lebih efisien.

Scrum

Pada metode Scrum, terdapat 3 peran yaitu Developer Team, Scrum Master, dan Product Owner. Saya beserta teman-teman saya di kuliah PPL ini berperan sebagai tim developer, yang berperan untuk membuat produk sesuai dengan yang dispesifikasikan oleh Product Owner. Scrum Master berperan untuk memastikan bahwa semua prosedur yang ada di Scrum dijalankan dengan baik. Kemudian Product Owner berperan untuk menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan feedback.

Pada Scrum terdapat istilah sprint. Terdapat 6 sprint pada perkuliahan PPL ini, dan satu sprint mempunyai durasi 2 minggu. Terdapat beberapa kegiatan yang dilakukan dalam satu sprint, yakni Sprint Planning, Daily Scrum, Sprint Review, dan Sprint Retrospective. Sprint Planing bertujuan untuk menentukan sprint backlog, mengidentifikasi pekerjaan-pekerjaan apa saja yang akan dilakukan untuk suatu sprint, dan men-define tujuan dari suatu sprint. Daily Scrum Meeting bertujuan untuk monitoring atau memberi kabar terkait pengerjaan suatu sprint dan kendala yang dihadapi, idealnya dilakukan selama 15 menit. Sprint Review bertujuan melaporkan semua yang telah Developer Team lakukan selama satu sprint kepada Product Owner, di sini Product Owner dapat menilai apakah software yang dikembangkan sudah sesuai dengan spesifikasi Product Owner atau belum. Pada kegiatan ini Product Owner, dapat mengajukan perubahan-perubahan yang kemudian akan diimplementasikan oleh Developer Team. Terakhir Sprint Retrospective, setiap anggota tim saling menilai satu sama lain dan menentukan apa yang perlu dipertahankan dari sprint sebelumnya dan apa yang bisa ditingkatkan.

Pada pelaksanaan metode Scrum di kuliah PPL ini, kami mengalami beberapa kendala yakni sulitnya menemukan jadwal yang pas bagi setiap tim melakukan kegiatan-kegiatan tersebut dikarenakan kesibukan-kesibukan mata kuliah lainnya dan juga kegiatan non akademik. Kami sebagai tim berusaha sekuat tenaga agar dapat mengimplementasikan metode Scrum ini dengan sebaik-baiknya, sehingga kelak dapat berguna di dunia pasca kampus.

--

--