Scrum adalah suatu metodologi yang mengatur (manage) proses pembuatan software.
Scrum yang dikategorikan pada agile software development methodology.
Lihat agile manifesto, untuk mengerti filosofi dibalik kata agile pada konteks software development
methodology atau project management.
** Kenapa Scrum?
Scrum menarik karena scrum lebih condong pada cara me-manage proyek secara praktikal (practical
process model). Lebih menuntun tim untuk melakukan hal-hal yang perlu dan menyarankan hal-hal yang
tidak perlu dalam menginspeksi proses dan melakukan adaptasi terus meneus untuk menyetir arah dari
proses. Tidak seperti metodologi manajemen proyek lain yang cenderung deskriptif dan heavyweight.
** Scrum Role
Orang yang terlibat dalam proses scrum dibagi menjadi 3 jenis peran (role), yaitu:
Product Owner yaitu orang yang menentukan spesifikasi atau feature dari software yang akan di-
deliver.
ScrumMaster yang bertanggung jawab untuk mengatur scrum process selama proyek berjalan.
Oleh karena itu ScrumMaster harus menguasai Scrum process. ScrumMaster adalah fasilitator,
yang mempersiapkan dan memimpin pertemuan (meeting)
Project Team (tim 7 plus minus 2) yang merupakan self-organizing team yang menjalankan project,
seperti business analyst, software architect, developer, tester dan lain-lain.
Terminologi ayam (chicken) berarti orang yang berkepentingan terhadap proyek (involved) tapi tidak
sepenuhnya terlibat dalam proyek.
Terminologi babi (pig) adalah orang yang terlibat sepenuhnya dalam proyek. Yang termasuk dalam kategori
pig adalah anggota project team.
** Proses
Proses eksekusi proyek dengan menggunakan scrum, dapat dilihat pada gambar ini
First meeting
o Proses scrum diawli dengan pebuatan tujuan yang akan dicapai dan product backlog.
Product backlog dikuantisasi waktu dengan satuan hari (antara 1-20 hari)
Product backlog merupakan ombinasi antara story-based work (pekerjaan yang berbasis
use case/product feature) dan task-based work misalnya "Tambahkan validasi pada semua
form"
Product backlog diprioritaskan oleh product owner.
o Product backlog yang berisi list yang diprioritaskan dari fitur-fitur atau perubahan yang
akan ada pada produk.
o Menentukan sprint goal yaitu tujuan yang ingin dicapai pada scrum sprint berikutnya (30
hari kedepan).
Sprint goal biasa adalah minimum fungsinalitas yang harus dicapai.
Jika sprint goal tidak dicapai maka dilakukan abnormal termination
o Membuat sprint backlog yaitu list dari pekerjaan yang akan dilakukan selama sprint.
Sprint backlog merupakan bagian produck backlog yang didetailkan.
Sprint backlog dikuantisasi waktu berdasarkan jam (bukan hari yaitu antara 1-16).
Sprint backlog harus tranparan untuk semua orang dalam tim
o Yang boleh bicara dalam tim ini adalah scrum master dan anggota tim (pigs)
o Orang lain yang bekepentingan (chickens) dapat ikut dalam tim tetapi tidak boleh
berkomunikasi (berbicara)
Apa yang akan dikerjakan pada esok hari (24 jam mendatang)?
o Meeting setelah aktivitas selama 2 minggu atau 1 bulanan (Sprint) berakhir, yang kemudian
diikuti oleh sprint planning meeting untuk Sprint berikutnya.
o Meeting setelah sprint review meeting dan sprint planning meeting ScrumMaster dengan
tim untuk merevisi proses dan cara kerja Scrum, proses development agar Sprint
berikutnya lebih efektif dan enjoyable.
** Burndown charts
Burndown charts adalah grafik yang menunjukan seberapa banyak waktu yang dibutuhkan untuk
menyelesaikan proyek. Grafik ini merefleksikan progress dari proyek.
Y-axis: Sisa waktu yang diperlukan untuk menyelesaikan pekerjaan (dalam jam)
atau jumlah item pekerjaan yang masih harus diselesaikan
X-Axis: Tanggal
http://ejlp.blogspot.com/2006/04/sekilas-tentang-metodologi-pembuatan.html
Membuat aplikasi perangkat lunak tidaklah semudah apa yang dibayangkan. Membuat aplikasi juga
bukan sekedar memprogram dan debugging. Banyak faktor non teknis kadang mempengaruhi
dalam proses pembuatan aplikasi apalagi aplikasi ini dibuat dengan banyak team. Hal ini kita
memerlukan suatu metodologi mulai mengatur team, jadwal hingga proses pembuatan aplikasi
dalam membuat aplikasi perangkat lunak.
Pada artikel ini penulis akan mengajak pembaca bagaimana memanfaatkan metodologi Scrum
dalam membuat aplikasi yang dibantu dengan tool Visual Studio 2010 dan Team Foundation Server
2010.
Beberapa orang istilah Scrum kadang ditulis dengan SCRUM (semua huruf besar) walaupun
SCRUM bukanlah suatu singkatan tertentu.
Scrum Roles
Pada implementasi metodologi Scrum pembagian team dibagi menjadi tiga role yaitu
• Product Owner
• ScrumMaster
• Team
Product owner mewakili suara customer dan bertanggungjawab terhadap team yang akan
mengimplementasi dari requirement ke implementasi. Product owner biasanya menulis daftar fitur
produk berdasarkan diskusi dalam model user story dan memperioritaskan daftar fitur yang
dimasukkan kedalam product backlog. Satu team Scrum akan mempunyai satu product owner dan
juga anggota team development. Direkomendasikan bahwa role product owner tidak digabungkan
dengan role ScrumMaster.
Team yang bertanggungjawab dalam realisasi produk jadinya. Biasanya satu team terdiri sampai 5-
9 orang dengan ketrampilan yang dimiliki bervariasi yaitu analisa, desain, develop, test, technical
communication hingga dokumentasi. Setiap anggota team dituntut untuk bekerja sendiri dan
mengatur manajemen sendiri dalam koridor dalam satu team.
http://blog.aguskurniawan.net/post/scrum_tfs.aspx
Apa itu SCRUM
Scrum adalah sebuah pendekatan tangkas untuk pengembangan perangkat lunak. Daripada proses
penuh atau metodologi, itu adalah suatu kerangka kerja. Jadi, bukannya menyediakan lengkap,
deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek, banyak yang
diserahkan kepada tim pengembangan perangkat lunak. Hal ini dilakukan karena tim akan tahu
bagaimana cara terbaik untuk memecahkan masalah yang mereka disajikan. Inilah sebabnya
mengapa, misalnya, rapat perencanaan sprint digambarkan dalam bentuk hasil yang diinginkan
(komitmen untuk mengatur fitur yang akan dikembangkan di sprint berikutnya), bukan seperangkat
kriteria Masuk, definisi Tugas, kriteria Validasi, dan Keluar kriteria (ETVX) seperti yang akan
disediakan dalam metodologi yang paling.
Scrum bergantung pada pengorganisasian-diri, tim lintas fungsional. Tim scrum adalah
mengorganisir diri dalam bahwa tidak ada pemimpin tim secara keseluruhan yang memutuskan
mana orang yang akan melakukan tugas atau bagaimana suatu masalah akan dipecahkan. Mereka
adalah isu-isu yang ditentukan oleh tim secara keseluruhan. Tim ini lintas fungsional sehingga
setiap orang perlu untuk mengambil fitur dari ide untuk implementasi terlibat.
Tim-tim pengembangan agile yang didukung oleh dua orang tertentu: sebuah ScrumMaster dan
pemilik produk. ScrumMaster dapat dianggap sebagai pelatih bagi tim, membantu anggota tim
menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Pemilik produk mewakili bisnis,
pelanggan atau pengguna dan memandu tim ke arah gedung produk yang tepat.
proyek Scrum membuat kemajuan dalam serangkaian sprint, yang timeboxed iterasi tidak lebih dari
sebulan panjang. Pada awal sprint, anggota tim berkomitmen untuk memberikan beberapa nomor
fitur yang terdaftar di product backlog proyek. Pada akhir sprint, fitur ini dilakukan – mereka
diimplementasikan, diuji, dan diintegrasikan ke dalam produk berkembang atau sistem. Pada akhir
sprint tinjauan sprint dilakukan selama tim menunjukkan fungsi baru kepada pemilik produk dan
pemangku kepentingan lain yang memberikan umpan balik yang dapat mempengaruhi sprint
berikutnya.
http://tjokiest.wordpress.com/2011/02/11/apa-itu-scrum/
Indraadiputra@ymail.com, http://infokriptografi.com
A. Pendahuluan
Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai kata
yang mengambarkan konsep model proses yang berbeda dari konsep model-model proses yang
sudah ada. Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya
dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan
melakukannya dan membantu orang lain membangunnya sekaligus.
Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat,
software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien
lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting
daripada mengikuti rencana. Namun demikian, sama seperti model proses yang lain, Agile Software
Development memiliki kelebihan dan tidak cocok untuk semua jenis proyek, produk, orang dan
situasi. Agile Software Development memungkinkan model proses yang toleransi terhadap
perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi. Namun di sisi lain menyebabkan
produktifitas menurun.
Berikut ini adalah model-model proses yang termasuk agile process model :
XP(Extreme Programming)
Adaptive Software Development (ASD)
Dynamic Systems Development Method
Scrum
Agile Modeling
C. Scrum
pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan
selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu
komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas
kemajuan dan XP adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman
dan pembangunan.
Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan,
memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan
pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk
mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang
membantu menyelesaikan pekerjaan secepat dan maintainably mungkin
ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama
lain
proses dapat beradaptasi terhadap perubahan teknis dan bisnis
proses menghasilkan beberapa software increment
pembangunan dan orang yang membangun dibagi dalam tim yang kecil
dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Scrum memiliki aktifitas yang meliputi :
Backlog
Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah
Sprints
Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang
ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30hari).
Selama proses ini berlangsung backlog tidak ada penambahan.
Scrum Meetings
Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk evaluasi apa
yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.
Demo
Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan dievaluasi
oleh klien.
Exterme Programming :
Penyelesaian requarement dilakukan dengan membagi-bagi menjadi hal-hal kecil (sprint). Pekerjaan
ini dikerjakan bersama-sama dengan ada orang yang bertugas untuk memecah pekerjaan besar
menjadi pekerjaan-pekerjaan kecil.
2. Pertemuan singkat tiap hari untuk melaporkan perkembangan yang terjadi.
D. Penutup
Aktifitas yang terjadi di dalam Agile Model Process tetap mengandung aktifitas-aktifitas yang ada
pada model proses generasi sebelumnya seperti waterfall, incremental, spiral dan RAD. Selain itu,
model-model proses di atas tetaplah bukan model proses yang cocok untuk setiap jenis software.
Referensi:
Ambler, Scott W. “An Introducation to Agile Modeling.” Agile Modeling Home Page. 2001-2008.
Diakses di http://www.agilemodeling.com/essays/introductionToAM.htm. 07/09/08.
Pressman, Roger S. Software Engineering : A Practitioner’s Approach. 6th Ed. McGraw-Hall. NY.
2005.
http://www.aingrieut.co.cc/2009/03/pengantar-kata-agile-berarti-bersifat.html
http://infokriptografi.blogspot.com/2010/05/resume-scrum-pada-rekayasa-perangkat.html
Scrum
adalah sebuah proses yang sederhana untuk mengembangkan produk yang kompleks dan untuk
meningkatkan kinerja sebuah organisasi.
Scrum sangat cocok digunakan untuk pengembangan produk piranti lunak yang kompleks karena
proses Scrum menggunakan metode empiris atau dengan kata lain setiap tahap di dalamnya
melibatkan inspeksi dan adaptasi.
Daripada memformalisasikan jalan keluar terhadap resiko yang akan dihadapi dalam proyek, Scrum
menggunakan pendekatan untuk menggunakan data-data yang ditemukan dari proses inspeksi dan
adaptasi ini sebagai bahan pembelajaran guna dapat mencari jalan keluar.
Evaluasi Scrum
Kesan pertama pihak yang telah melihat Scrum membuatnya ingin beralih untuk menggunakan
Scrum dengan segera. Scrum memang menawarkan dampak yang positif. Namun Scrum bukanlah
untuk setiap pihak. Berikut adalah bahan evaluasi apakah sebuah organisasi patut untuk beralih ke
Scrum atau tidak.
1. Apakah organisasi saya telah men-deliver proyek dengan sukses?
1. Apakah tim saya puas dengan hasil yang di-deliver?
2. Apakah kustomer saya puas dengan hasil yang di-deliver?
3. Apakah produk yang dikembangkan menghasilkan ROI (Return on Investment) yang tinggi?
2. Apakah setiap pihak di organisasi telah puas dengan proses yang berjalan di organisasi saya?
3. Apakah semangat, solidaritas dan kekompakan tim berada di tingkat yang tinggi?
Apabila anda menjawab ya untuk semua pertanyaan diatas, maka disarankan agar anda tetap
melakukan apa yang sedang anda lakukan dengan proses yang telah berjalan. Scrum adalah sebuah
proses sangat sederhana yang bertujuan untuk mengekspos semua permasalahan dalam sebuah
organisasi dan membuat kinerja tim menjadi optimal. Organisasi anda tidak akan mendapatkan
keuntungan yang signifikan apabila anda menjawab ya untuk semua pertanyaan evaluasi di atas.
Product Owner
Pemilik Produk (Product Owner) adalah pihak yang bertanggung jawab atas ROI dari produk.
Gagal atau suksesnya sebuah produk di pasar sangat bergantung pada Pemilik Produk. Pemilik
Produk bertanggung jawab membuat Product Backlog yang harus tersedia dalam sebuah produk.
Product Backlog ini diurutkan dan dipilih disetiap Sprint untuk dapat dikerjakan di Sprint sehingga
menghasilkan produk yang berpotensi untuk dirilis.
Perencanaan Sprint
Pertemuan Perencanaan Sprint dilakukan di awal Sprint. Batasan waktu untuk Perencanaan Sprint
adalah 8 jam untuk Sprint yang berlangsung selama 1 bulan (dan secara proporsional lebih singkat
untuk Sprint yang lebih singkat). Di pertemuan ini Pemilik Produk dan Tim Pengembang
berkolaborasi untuk memilih Product Backlog yang telah diurutkan oleh Pemilik Produk untuk akan
dimasukkan ke dalam Sprint. Hasil dari pertemuan ini adalah Sprint Backlog
daily scrum atau daily standup meeting
Pertemuan Scrum harian (daily scrum atau daily standup meeting) adalah pertemuan dimana setiap
hari Tim Pengembang bertemu selama 15 menit (maksimal). Di dalam pertemuan ini Tim
Pengembang membahas 3 hal:
• Apa yang telah saya lakukan kemarin
• Apa yang akan saya kerjakan hari ini
• Apa yang menghambat saya untuk menyelesaikan pekerjaan saya
Hanya Tim Pengembang saja yang boleh berpartisipasi di dalam pertemuan ini. Pemilik Produk
hanya boleh melihat saja dan tidak boleh ikut berpartisipasi di dalam pertemuan ini. Sedangkan
Scrum master hanya bertindak sebagai fasilitator dan tidak boleh berpartisipasi dalam pertemuan
ini.
Pertemuan ini bukanlah pertemuan untuk menyelesaikan masalah. Apabila ada yang perlu dibahas
di luar 3 hal diatas, maka dibahas di luar pertemuan ini.
Refleksi Sprint
Pertemuan Refleksi Sprint adalah pertemuan yang dilakukan setelah Ulasan Sprint dan sebelum
Perencanaan Sprint di Sprint yang berikutnya. Pertemuan ini memiliki batasan waktu selama 3 jam
untuk Sprint yang berlangsung selama 1 bulan (dan secara proporsional lebih singkat untuk Sprint
yang lebih singkat). Di pertemuan ini Tim Pengembang bertemu untuk membahas hal apa yang
telah berjalan dengan baik di Sprint yang baru selesai dan hal apa yang dapat ditingkatkan di Sprint
yang berikutnya.
Scrum Master
Scrum Master bukanlah pengganti manajer proyek di dalam sebuah Tim Scrum. Scrum Master
adalah seorang pemimpin yang melayani (servant leadership). Scrum Master adalah seorang
fasilitator untuk melayani tim dan bukanlah seseorang yang memerintah dan memberi pekerjaan
pada anggota Tim Pengembang.
Sprint
Dalam Scrum, Sprint adalah kerangka waktu yang berdurasi maksimal 1 bulan untuk
mengembangkan produk yang berpotensi untuk dirilis.
Tim Pengembang
Tim Pengembang adalah sekelompok orang yang bertanggung jawab untuk mengubah Product
Backlog menjadi sebuah produk yang berpotensi untuk dirilis di setiap akhir Sprint. Tim
Pengembang idealnya terdiri dari +/- 7 orang. Di dalam Scrum, setiap anggota Tim Pengembang
sama rata tingkatannya dan tidak mengenal adanya pangkat dan jabatan. Setiap anggota Tim
Pengembang bertanggung jawab untuk melakukan apapun yang dibutuhkan untuk menghasilkan
produk akhir, baik itu testing, analisa sistem, dokumentasi, disain, pemrograman, dsb.
Ulasan Sprint
Pertemuan Ulasan Sprint dilakukan di akhir Sprint. Batasan waktu (timebox) untuk Ulasan Sprint
adalah 4 jam untuk Sprint yang berlangsung selama 4 jam (dan secara proporsional lebih singkat
untuk Sprint yang lebih singkat). Di pertemuan ini Tim Pengembang mendemokan hasil pekerjaan
mereka di dalam Sprint di hadapan Pemilik Produk. Dari pertemuan ini Pemilik Produk dapat
mendapatkan masukan mengenai Product Backlog untuk Sprint berikutnya.
http://digaku.ansvia.com/channel/bebas_ngepost/post/scrum-27989.html
A man who dares waste one hour of time has not discovered the value of life.
Evolusi kerangka metode pengembangan perangkat lunak terus berkembang dari waktu ke waktu.
Apakah kerangka tersebut cocok dipergunakan dalam tingkat organisasi besar atau kecil. Beberapa
teknik seperti buffer management , burndown sprint , dan backlog management, terdapat pada
metodology pengembangan berikut. enjoy …
Predictive Processes
Model waterfall merupakan proses perancangan secara sequential, biasa digunakan di dalam proses
perancangan perangkat lunak, merupakan progress di dalam menjalankan proses melalui fase dari
Konsepsi, Inisiasi, Analisis, Desain, Konstruksi, Pengujian , Produksi/Implementasi dan Perawatan.
Iterative Process
Spiral
Model Spiral merupakan dasar dari perbaikan secara berkelanjutan, merupakan kunci produk untuk
definisi kebutuhan dan analisis, system dan perancangan desain dan implementasi kode/ baris
program.
wiki spiral
Rational Unified Process ( RUP ) merupakan sebuah produk perangkat lunak, dibangun oleh
Rational Software oleh IBM. Produk menyertakan knowledge base dengan artifak dan deskripsi
detail untuk beberapa tipe yang berbeda dari aktifitas.
wiki RUP
Crystal
Crystal Clear diaplikasikan pada team dengan kapasitas 6-8 developer yang berkerja pada system.
Crystal Clear berfokus pada manusia bukan pada proses atau arfifak.
· business study
· implementation.
Open UP
Open UP secara memiliki karakteristik essensial dari RUP dimana menyertakan pengembangan
iterative, use case dan pengembangan scenario, risk management dan pendekatan arsitektural-
centric. Kebanyakan bagian dari RUP tidak dimasukan, dan banyak element yang digabungkan.
Hasilnya sedikit lebih sederhana dari proses pada RUP.
Scrum
Scrum merupakan metode pengembangan perangkat lunak iterative dan secara incremental untuk
mengelolan sebuah project dan produk atau pengembangan aplikasi. Scrum tidak hanya pada
project managemen tetapi juga menantang ide konvensional mengenai management. Scrum
berfokus pada institusi project managemen dimana sangat sulit untuk dilakukan perencanaan.
Mekanisme control proses empirical, dimana terdapat timbal balik yang berkonstitusi pada teknik
utama management yang dipergunakan berlawanan dari perintah tradisional dan managemen
berorientasi control. Merepresentasikan secara radikal sebuah pendekatan untuk perencanaan dan
pengelolaan project, hingga memberikan dukungan keputusan dan membuat otoritas pada tingkat
property dan kepastian operasi.
Scrum merupakan sebuah jargon yang dibawa dari olah raga rugby, dimana mereferensikan sebuah
pengulangan permainan setelah terjadi aksiden atau ketika bola keluar lapangan.
Dimana tim berusaha melangkah maju dengan meningkatkan posisi penguasaan bola. Rugby sport.
notes : topik mengenai scrum , backlog , dan burndown akan dibahas pada rubrik SCRUM.