Agile
Metodologi: Agile vs Waterfall
Pada artikel ini, akan dibahas secara singkat mengenai salah satu metodologi dalam pengembangan software, yaitu Agile Methodology. Agile dan Waterfall adalah metodologi yang digunakan ketika mengembangkan suatu software. Salah satu perbedaan mendasar dari keduanya adalah tingkat keadaptifan dari masing-masing metodologi. Tidak ada yang lebih baik ataupun lebih buruk, keduanya memiliki kelebihan masing-masing. Waterfall cenderung cocok digunakan ketika oftware yang ingin dikembangkan adalah suatu software yang nilainya kritikal, dimana kesalahan kecil dapat memiliki dampak yag sangat besar. Waterfall juga cocok digunakan ketika semua requirement yang dibutuhan sudah ditentukan dengan baik dan pasti. Berbeda dengan waterfall, Agile digunakan untuk menciptakan software yang ingin diimplementasikan secara cepat dan requirementnya bisa berubah ditengah-tengah dahap development.
Apa itu Agile : 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 planThat is, while there is value in the items on the right, we value the items on the left more.
Sumber: https://agilemanifesto.org/
Agile diambil dari kata agility yang artinya kecepatan, kemudahan untuk bergerak. Sesuai dengan definisi itu, tujuan utama dari agile adalah menciptakan proses development software secara cepat dan mudah beradaptasi terhadap perubahan-perubahan. Agile menerapkan proses development yang singkat secara repetitif dengan tujuan bisa memperoleh feedback secara cepat dan adaptif terhadap penambahan atau pengurangan fitur. UNtuk mempermudah dalam implementasi Agile, kita dapat menggunakan Agile Framework, salah satu contohnya yang akan dibahas disini adalah Scrum.
Scrum : Suatu Framework
Scrum adalah suatu framework pada Agile Methodology yang menitikberatkan pada manajemen pekerjaan yang didasarkan pada keadaan tim development. Hal unik yang terdapat pada Scrum adalah bahwa framework ini mendukung anggota tim development untuk meningkatkan kemampuannya melalui pengalaman, belajar secara mandiri, mengorganisir dan merefleksikan kebaikan atau kesalah yang dilakukan pada setiap sprint. Sprint didalam scrum adalah suatu keseluruhan dari tahap development singkat yang waktunya ditentukan berdasarkan kesepakatan (biasanya 2 minggu). Beberapa komponen penting dari Scrum akan dibahas dibawah, yaitu product backlog, Scrum role, dan Scrum event.
Product Backlog
Product Backlog adalah tempat dimana semua requirement disimpan lengkap dengan detailnya. Detail disini misalnya jumlah requirement (user stories) yang harus dilengkapi untuk setiap fase sprint. Product backlog harus dimaintain oleh Product Owner dan dipahami oleh scrum team. Scrum team dapat meminta (request) untuk dilakukan penambahan, pengurangan, atau modifikasi dari product backlog.
Scrum Roles
Ada 3 jenis peran pada Scrum:
- Development Team
Development team adalah sekumpulan cross-functional expert (orang yang memahami cidangnya, tetapi juga sedikit memahami bidang lainnya) yang akan berkolaborasi dalam merealisasikan Product Backlog Items. Development team didalam scrum mengatur dan mengkoordinasikan pekerjaannya secara mandiri untuk menyelesaikan target didalam sprint. - Product Owner
Product Owner adalah tokoh yang berperan dalam menciptakan Product Backlog. Product owner bertanggung jawab terhadap pengembangan perangkat lunak pada setiap iterasi sprint, dan usaha-usaha yang perlu dilakukan untuk memaksimalkan nilai dari produk. - Scrum Master
Scrum Master adalah tokoh yang berperan dalam kegiatan suportif seperti membantu mempertumakan development team dengan product owner dikala terjadi masalah, mengatur jalannya sprint meeting, dan menciptakan keadaan dimana product owner, development team, dan client dapat memahami dan memaksimalkan scrum.
Scrum Events
- Sprint
Jangka waktu dimana product backlog item (PBI) akan dikembangkan oleh tim development sehingga menjadi suatu produk yang lebih baik. Sprint pada umumnya berlangsung selama 2 minggu, akan tetapi lamanya waktu sprint bisa ditentukan berdasarkan kesepakatan di sprint planning. Ketika suatu sprint telah melewati durasinya, maka sprint berikutnya akan langsung berjalan. Secara urutan dalam scrum, sprint dilakukan setelah sprint planning. - Sprint Planning
Sprint planning adalah kegiatan untuk merumuskan hsal-hal yang perlu dilakukan selama sprint. Product Owner akan menentukan tujuan dari sprint dan bersama-sama dengan Development team akan berunding sehingga saling memahami maksud dari masing-masing PBI. DEvelopment team juga akan memilih PBI mana yang akan dikerjakan dengan membagi-bagi PBI berdasarkan prioritas dan tingkat urgency - Daily Meeting
Daily meeting (daily scrum) dilakukan setiap hari selama sprint sekitar 15 menit sebelum kegiatan sprint di hari itu dimulai. Meeting ini dilakukan oleh development team dan scrum master. Tujuan dari daily meeting ini adalah untuk mengukur perkembangan implementasi software sejauh ini. - Sprint Review
Sprint review dilakukan setiap periode akhir sprint. Pada sprint review, development team akan mempresentasikan hasil kerjanya selama masa sprint. Pada review ini, product owner akan menilai dan memberikan masukan terhadap pekerjaan yang telah dilakuakn tim development terhadap PBI yang dimaksudkan product owner. - Sprint Retrospective
Sprint retrospective dilakukan setelah sprint review. Dalam sprint retrospective, tim scrum akan melakukan refleksi terhadap keberhasilan dan kegagalan yang terjadi selama sprint yang telah berlalu. Tujuan utama dari kegiatan ini adalah untuk meningkatkan etos kerja di sprint berikutnya.
Penutupan
Demikian artikel mengenai metodologi Agile, semoga artikel ini dapat memberikan sedikit pengetahuan mengenai Agile dan Scrum. Terima kasih.