Scrum

12 10 2007

Scrum?

Istilah ini seharusnya tidak asing bagi para Ilkomers dan Informatikers. Masih inget dengan metode software engineering yang disebut Agile development? Ya, Scrum adalah salah satu contoh dari metode tersebut.

Agile development?

Menurut mas Wiki, “Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project.”

Bahasa gampangnya, jika suatu proyek pengembangan software dikerjakan dengan menggunakan metode Agile, maka selama waktu pengerjaannya akan selalu dijumpai proses pengembangan yang dilakukan berulang. Setiap perulangan (iterasi) meliputi berbagai kegiatan yang wajib dilakukan dalam proyek pengembangan sofware itu sendiri, yaitu perencanaan, requirements analysis, desain, coding, testing, dan dokumentasi. Maka jelas bahwa satu kali iterasi bertujuan menghasilkan modul atau fungsionalitas yang deliverable pada client. Setiap iterasi umumnya berlangsung dalam jangka waktu 1 sampai 4 minggu.

So, Scrum?

Scrum juga menggunakan konsep iterasi semacam ini. Ingat, Scrum hanya salah satu contoh dari metode Agile. Masih ada beberapa contoh lain, misalnya Extreme Programming (XP). Lebih lengkapnya, silakan menengok penjelasan mas Wiki di sini.

Scrum dimulai dari proses bertemunya product owner dan team leader project. Pada pertemuan ini, product owner mengungkapkan fitur apa saja yang ia inginkan dari sistem yang akan dikembangkan. Daftar fitur disebut dengan istilah product backlog. Selanjutnya, ditentukan urutan prioritas fitur sesuai keinginan product owner untuk menyatakan fitur mana yang akan diselesaikan terlebih dahulu. Kedua belah pihak juga menyepakati rentang waktu satu kali iterasi atau disebut sprint duration.

Team leader membawa daftar tersebut kepada anggota timnya (developer). Setelah melakukan review, mereka memecah tiap fitur menjadi item-item yang lebih kecil (task) dan memberikan estimasi waktu pengerjaan atau effort (dalam satuan jam). Sprint siap dimulai!!

Pada sprint pertama, tim menentukan task mana saja yang akan dikerjakan dan berapa total effort yang dibutuhkan. Daftar task ini disebut sprint backlog dan bersifat fleksibel. Tim boleh menambah atau mengurangkan task ke dalamnya seiring berjalannya sprint itu sendiri. Pengerjaan tiap task juga bersifat fleksibel, dalam artian tiap developer boleh memilih untuk mengerjakan task tertentu sesuai minat dan kemampuannya.

Setiap hari, tim mengadakan pertemuan yang disebut Scrum daily meeting di bawah koordinasi team leader atau Scrum master. Dalam pertemuan ini, umumnya dibahas tiga topik utama, yaitu:
1. Apa yang sudah kamu kerjakan?
2. Apa yang akan kamu kerjakan?
3. Kesulitan apa yang kamu temui?

Setiap pertemuan menghasilkan Sprint Burndown Chart yang menggambarkan perkembangan pengerjaan tiap task dalam sprint. Misalnya, pada hari ke-0 sprint, grafik dimulai dari angka 500 jam. Kemudian pada hari ke-1, setiap developer mengurangkan estimasi usahanya hari itu (dalam satuan jam) pada total effort, sehingga grafik akan bergerak menuju angka 440 jam. Idealnya, pada hari terakhir sprint, grafik akan berakhir pada angka 0 jam yang berarti semua task selesai dikerjakan. Namun seringkali sprint-sprint awal tidak menghasilkan grafik ideal.

Grafik yang kurang sempurna menyatakan ada kesulitan yang ditemui selama pengerjaan suatu task. Menjadi tugas Scrum master untuk mencoba memecahkan kesulitan tersebut sehingga tidak mengganggu jalannya project. Jika sampai sprint selesai, belum ditemukan solusi yang tepat, maka item tersebut akan dikembalikan ke dalam product backlog untuk disertakan dalam sprint berikutnya sesuai nilai prioritas.

Sprint pertama selesai, produk awal siap diserahkan kepada client. Selanjutnya, tim bersiap menentukan task yang dikerjakan dalam sprint berikutnya.


Tindakan

Information

Tinggalkan komentar