Mengenal Agile Development Methods
Halo, kembali lagi dengan saya di artikel kali ini. Pada kesempatan kali ini kita tidak akan membahas tentang masalah teknikal seperti sebelumnya. Sekarang kita akan membahas tentang metode pengembangan aplikasi bernama Agile
Apa itu Agile
Kita mulai dari pertanyaan mendasar, apa itu Agile? Pada dasarnya, Agile adalah sebuah metode pengembangan perangkat lunak yang dilakukan secara berulang dan incremental. Tujuan utama dari adanya Agile adalah agar kita bisa menghasilkan sebuah produk dalam waktu cepat dan pengembangan produk tersebut dilakukan seiring berjalannya waktu.
Pada metode Agile akan terjadi banyak perubahan dan tim pengembang diharapkan mempunyai kemampuan untuk beradapatasi dengan perubahan yang cepat dan tiba tiba tersebut.
Agile Manifesto & Principle
Setelah memahami Agile, kita tau bahwa kita melakukan peningkatan kualitas secara terus menerus. Lalu apakah ada sebuah peraturan atau prinsip yang harus dipegang saat pengembangan perangkat lunak tersebut?
Ya, ada. Agile Manifesto dan Priciple adalah jawabannya. Secara umum Agile Manifesto & Principle adalah nilai nilai yang harus dipegang oleh tim Agile saat proses pengembangan dengan metode Agile. Manifesto ini akan membantu sebuah tim agar tidak terjadi kekacauan dalam project dan mempermudah pengerjaan.
Lalu apa saja isi manifesto tersebut? Berikut kita akan membahas isi dari Manifesto tersebut
1. Individuals and Interactions Over Processes and Tools
Pada poin pertama ini, dikatakan bahwa interaksi individu dalam sebuah proses pengembangan lebih penting daripada tools. Maksudnya disini adalah “pengendali” utama dalam project adalah individu yang berada dalam tim pengembangan tersebut. Bukan berdasarkan tools yang digunakan sehingga para developer dapat berkomunikasi dan saling membantu apabila kesulitan.
2. Working Software Over Comprehensive Documentation
Tujuan utama dari pengembangan aplikasi adalah aplikasi itu sendiri. Pada poin ini dijelaskan bahwa Software yang bekerja akan lebih mudah dipahami oleh client daripada setumpuk Dokumentasi yang susah dan melelahkan untuk dibaca. Dengan prinsip ini pula pengembangan akan lebih cepat dan client dapat memberikan masukan secara langsung setelah menggunakan app yang kita buat.
3. Customer Collaboration Ove Contract Negotiation
Apabila pada sebuah project terjadi keadaan dimana project sudah tidak sesuai dengan kontrak dan negosiasi di awal, maka prinsip ini harus dipegang teguh. Customer Collaboration akan menjadi solusi pada keadaan ini. Kita dapat berkomunikasi dengan Client dan memikirkan solusi terbaik untuk kelanjutan project yang sedang berjalan ini.
4. Responding to Change Over Following a Plan
Ini adalah prinsip yang telah dijelaskan di awal tadi tentang Agile. Yaitu selalu siap apabila ada perubahan dan tidak terlalu kaku terhadap rencana yang ditentukan di awal. Karena dengan Agile maka perubahan di tengah jalan akan banyak terjadi dan tim harus siap untuk keadaan tersebut.
Ya, itu adalah 4 Agile Manifesto dan penjelasan singkatnya. Lalu setelah ini apa? Apabila Agile adalah metodologi, lalu bagaimana praktek nya? Disinilah hadir SCRUM, lalu apa itu Scrum? Berikut adalah penjelasannya
Agile Principle
Lalu ada Agile Principle, terdapat 12 prinsip yang disepakati yang bersumber dari 4 point di atas (AgileManifesto). 12 prinsip itu adalah :
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Berkenalan dengan Scrum
Apa itu Scrum? Apa beda nya dengan Agile? Kita akan mempelajarinya bersama sama di bagian ini
Menurut scrum.org, Scrum adalah :
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
Dapat dipahami bahwa Scrum adalah sebuah cara atau framework dalam mengerjakan sesuatu oleh sebuah tim, dimana tim dapat bekerja dengan kreatif, menghasilkan produk dengan hasil terbaik dan juga selalu adaptif dengan perubahan perubahan yang terjadi.
Role dalam Scrum
Dalam implementasi Scrum, terdapat beberapa Role dimana setiap role memiliki peran yang berbeda. Kita akan bahas pada bagian ini
Product Owner
Produk owner bertugas untuk membagi bagian bagian dari produk menjadi bagian kecil yang biasa disebut PBI. Lalu product owner juga bertugas untuk membagikan PBI PBI ini ke tim developer satu per satu. Produk owner juga memberikan penilaian terhadap pekerjaan anggota tim development.
Scrum Master
Scrum Master berperan sebagai perantara komunikasi antara Produk Owner dengan Development Team. Selain itu Scrum Master juga harus memastikan tiap anggota nya mengerjakan project dengan baik selama satu sprint.
Development Team
Development team adalah tim yang mengimplementasikan sebuah project dalam bentuk PBI. Tim inilah yang menjadi pusat pengerjaan dan project sangat bergantung kepada tim ini.
Hal yang dilakukan saat Scrum
Lalu setelah pembagian Role, apa yang dilakukan oleh mereka saat pengerjaan proyek?
Terdapat beberapa jenis fase dalam proses Scrum dimana proses ini akan diulang beberapa kali sampai menghasilkan produk yang baik dan diterima oleh client
Fase Inisiasi
Pada fase ini, tim akan membuat mock up atau design dari aplikasi yang akan dibuat. Selain itu Development Team juga harus mempersiapkan Environment yang nanti nya akan digunakan untuk bekerja secara tim seperti Git.
Sprint Planning
Sprint Planning adalah fase dimana tim dengan Scrum Master merencanakan dan meng assign PBI yang ada ke masing masing anggota. Selain itu Product Owner juga menentukan ketentuan Goal dari sebuah sprint.
Fase Sprint (Implementasi)
Pada fase ini lah Development Team mengembangkan aplikasi yang sudah direncakan. Setiap anggota mengerjakan PBI yang telah di assign kepada mereka. Selain itu pada fase ini akan dilakukan Daily Standup Meeting untuk memonitor pekerjaan dari setiap member.
Fase Sprint Review and Spring Retrospective
Sprint Review adalah masa dimana kita menilai produk software yang dihasilkan. Selain itu juga dilakukan penilaian terhadap anggota tim. Pada fase ini akan ditentukan apakah PBI yang dikerjakan mendapat Acceptance atau tidak dari Product Owner.
Proses proses di atas dilakukan secara berulang beberapa kali dimana satu kali cycle disebut satu Sprint. Satu project bisa terdiri dari beberapa sprint dimana selalu terjadi peningkatan fitur dan kualitas dari sebuah aplikasi yang dikerjakan.
Penutup
Bagaimana? Apakah teman teman sekarang mengerti apa dan bagaimana prinsip Agile di implementasikan dalam Scrum? Agile dan Scrum sangat bermanfaat dimana sangat banyak digunakan oleh start up start up. Karena start up memang sebuah perusahaan yang selalu terjadi perubahan dan harus siap beradaptasi dengan perubahan. Hal itulah yang menjadikan Agile dan Scrum banyak dimanfaatkan di dunia professional.
Semoga artikel ini dapat bermanfaat untuk teman teman dan menambah wawasan tentang dunia Software Engineering.
Tetap semangat teman teman!!!