Anda di halaman 1dari 13

Pengertian Scrum

Scrum
Scrum adalah iteratif dan pengembangan perangkat lunak kerangka kerja
tambahan tangkas untuk proyek-proyek perangkat lunak dan mengelola produk
atau pengembangan aplikasi. Fokusnya adalah pada "strategi, pengembangan
produk fleksibel holistik di mana tim pengembangan bekerja sebagai sebuah unit
untuk mencapai tujuan bersama" sebagai lawan dari "pendekatan tradisional,
berurutan".

Sejarah
Scrum pertama kali didefinisikan sebagai "strategi, pengembangan produk fleksibel
holistik di mana tim pengembangan bekerja sebagai sebuah unit untuk mencapai
tujuan bersama" sebagai lawan dari "pendekatan tradisional, sekuensial" pada
tahun 1986 oleh Hirotaka Takeuchi dan Ikujiro Nonaka dalam "New New Produk
Game Development ".
Hirotaka Takeuchi dan Ikujiro Nonaka kemudian berpendapat dalam "Perusahaan
Pengetahuan Menciptakan" baik oleh Ikujiro Nonaka dan Hirotaka Takeuchi bahwa
itu adalah bentuk "penciptaan pengetahuan organisasi, terutama baik di membawa
tentang inovasi terus menerus, bertahap dan spiral".
Para penulis menggambarkan pendekatan baru untuk pengembangan produk
komersial yang akan meningkatkan kecepatan dan fleksibilitas, berdasarkan studi
kasus dari perusahaan-perusahaan manufaktur di industri otomotif, mesin fotokopi
dan printer. Mereka menyebut holistik atau pendekatan rugby, karena seluruh
proses dilakukan oleh satu tim lintas-fungsional di fase tumpang tindih beberapa, di
mana tim "mencoba untuk pergi jarak sebagai satu unit, melewati bola bolak-balik".
Dalam rugby, sebuah scrum mengacu pada cara restart permainan setelah
pelanggaran kecil. Pada awal 1990-an, Ken Schwaber digunakan apa yang akan
menjadi Scrum di perusahaan itu, Metode Pengembangan Lanjutan, dan Jeff
Sutherland, dengan John Scumniotales dan Jeff McKenna, mengembangkan
pendekatan yang serupa di Perusahaan Easel, dan adalah yang pertama untuk
menyebutnya menggunakan single Kata Scrum.
Pada tahun 1995, Sutherland dan Schwaber bersama-sama mempresentasikan
sebuah makalah yang menjelaskan metodologi Scrum di Desain Obyek Bisnis dan
Lokakarya Implementasi diselenggarakan sebagai bagian dari Berorientasi Objek
Sistem Pemrograman,, Bahasa & Aplikasi '95 (OOPSLA '95) di Austin, Texas,
pertama publik presentasi. Schwaber dan Sutherland berkolaborasi selama tahun
berikutnya untuk menggabungkan tulisan-tulisan di atas, pengalaman mereka, dan
industri praktek terbaik ke dalam apa yang sekarang dikenal sebagai Scrum.

Pada tahun 2001, Schwaber bekerja dengan Mike Beedle untuk menggambarkan
metode dalam buku Pengembangan Perangkat Lunak Agile dengan Scrum.
Pendekatan untuk perencanaan dan pengelolaan proyek adalah dengan membawa
pengambilan keputusan wewenang kepada tingkat sifat operasi dan kepastian.
Meskipun kata tersebut tidak akronim, beberapa perusahaan melaksanakan proses
telah dikenal untuk mengejanya dengan huruf kapital sebagai scrum. Hal ini
mungkin karena salah satu dari awal tulisan Ken Schwaber, yang dikapitalisasi
scrum dalam judul.

karakteristik
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


1). Backlog
Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat
dapat bertambah
2). 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.
3). 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.
4). Demo
Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan
dan dievaluasi oleh klien.

kekurangan dan kelebihan


1). Kelebihan
-

Keperluan berubah dengan cepat

Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya


dan memberdayakan satu sama lain
-

Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat

Dokumentasi dan pengujian terus menerus dilakukan setelah software


dibangun
Proses Scrum mampu menyatakan bahwa produk selesai kapanpun
diperlukan
2). Kekurangan
Developer harus selalu siap dengan perubahan karena perubahan akan selalu
diterima.
Implementasi
Penerapan Metodologi Scrum Dengan Team Foundation Server 2010 memiliki fokus
utama yaitu maajemen pengembangan produk.

Pengertian Scrum software development


Scrum merupakan framework untuk manajemen pengembangan software dengan
karakteristik cekatan dan bersifat iteratif dan incremental. Scrum mendefinisikan
dirinya fleksible, strategi pengembangan yang menyeluruh di mana seluruh team
bekerja sebagai satu unit dalam mencapai sebuah gol yang sama.

Dalam menjalankan kerjasama antara anggota team, scrum menekankan lokasi fisik
yang sama atau sarana online yang akrab antara semua member, dan juga
pertemuan muka dengan muka setiap hari antara semua anggota team.
Prinsip kunci dari scrum adalah memahami bahwa dalam project yang tengah
berlangsung, klien mungkin mengubah apa yang menjadi kebutuhan dan
keinginannya. Perubahan sulit diadaptasi oleh framework pengembangan aplikasi
yang bersifat tradisional. Scrum menerima perubahan ini dan memaksimalkan
seluruh anggota team untuk menyesuaikan perubahan mendadak ini.
Scrum mengadopsi permainan Rugby yang begitu mudah menyesuaikan diri semua
anggota team setelah ada sedikit pelanggaran. Kemudian menyesuaikan diri inilah
yang mengimpirasi scrum.
Scrum mempunyai 3 Role
1. Product Owner
Pengertian produk adalah tujuan dari proyek. Product Owner memastikan
bahwa proyek berjalan sesuai yang diharapkan. Product Owner merupakan
penjembatan antara client dengan team development. Product Owner akan
menuliskan spesifikasi-spesifikasi sesuai cara pandang client, di lain pihak
harus punya empati terhadap anggota team.
2. Team Member
Dilihat dari namanya jelas yaitu anggota-anggota team.
3. Scrum Master
Scrum Master akan mencegah hal-hal yang mengalihkan focus team. Scrum
master akan membuat suasana kondusif supaya team dapat bekerja sama
dalam mencapai goal.
Event penting dalam Scrum adalah sprint/iteration. Sprint merupakan unit dasar
dalam development dengan Scrum. Sprint merupakan jangka waktu yang dibatasi
pada suatu durasi 1 minggu, 2 minggu atau 1 bulan. Setiap sprint dimulai dengan
planning meeting dan diakhiri dengan sprint review dan retrospective meeting.

gambar seperti berikut ini:

Proses penting dalam Scrum antara lain:


1. Backlog refinement
2. Sprint planning
3. Daily Scrum
4. Sprint review meeting
5. Sprint retrospective meeting
Scrum sederhana namun sulit untuk dikuasai
Walaupun Scrum terlihat sangat sederhana namun sudah banyak organisasi di
Indonesia yang belum berhasil dalam mengimplementasikannya dan belum
mendapatkan hasil positif dari Scrum. Hal ini dikarenakan Scrum merupakan sebuah
pola pikir dan kultur yang baru. Tidak banyak organisasi yang dapat menerima

kesederhanaan Scrum. Untuk dapat memahami pola pikir dan kultur yang baru,
organisasi yang bersangkutan harus memiliki pemikiran terbuka untuk menerima
pengajaran yang baru. Organisasi yang telah sukses mengimplementasikan Scrum
dan telah mendapatkan hasil positif dari implementasi Scrum adalah organisasiorganisasi yang berpikiran terbuka dan berani mengambil resiko untuk
meninggalkan pola pikir dan kultur yang lama.
Metode SCRUM pada Pendekatan Rekayasa Perangkat Lunak AGILE
SCRUM adalah salah satu metode rekayasa perangkat lunak dengan menggunakan
prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim,
incremental product dan proses iterasi untuk mewujudkan hasil akhir.

Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE.


Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga
menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing
metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat
dikombinasika untuk menghasilkan proses yang optimal.

Jika metode XP lebih berfokus kepada framework yang memberikan kerangka


mengenai praktek-praktek teknis dalam membangun program menggunakan
pendekatan AGILE, seperti para programmer yang diharapkan untuk bekerja pada
station yang sama sehingga dapat menggunakan library yang sama dan lain
sebagainya.

Sedangkan metode SCRUM lebih berfokus kepada project management yang


memberikan kerangka kerja bagaimana mengelola sebuah proyek yang berbasis
AGILE. Metode ini memberikan pola "ceromony" apa saja yang harua dilaksanakan,
"role" apa saja yang ada dalam SCRUM termasuk tugas yang harus diperankannya
dan masih banyak hal lainnya. Tulisan ini akan mencoba untuk mengupas metode
SCRUM ini.

Di dalam setiap iterasi scrum, semua anggota tim saling berkolaborasi untuk
menyelesaikan setiap incremental product yang telah direncanakan dan disepakati
bersama. Dalam proses, setiap iterasi juga akan melakukan kegiatan analisis,
merencanakan desain dan selanjutnya program siap untuk dikembangkan. Setelah
program selesai, program juga akan diuji melalui proses testing yang telah
direncanakan oleh tim, sehingga akhirnya program tersebut menjadi sebuah
incremental product yang siap untuk di-deploy dan di-integrasi-kan dengan semua
program yang telah dibuat sebelumnya.

Semua kegiatan diatas akan dilakukan oleh tim dengan konsep self-organizing,
artinya semua anggota tim akan bekerja sama untuk mengelola kerja mereka
sesuai dengan kesepakatan mereka. Mereka bertanggung jawab untuk
menghasilkan incremental product dengan membagi tugas secara bersama dan
berdiskusi tanpa ada hirarki. Seorang yang berpengalaman testing, sangat
dimungkinkan untuk berkonstribusi ditahap analisa dan desain. Atau seorang
programmer akan membantu aktifitas testing. Secara sederhana, anggota tim akan
merencanakan tugas secara bersama dan melakukannya secara bersama sebagai
sebuah kolaborasi tim.

ROLE (Fungsi) dalam Scrum

Scrum akan berjalan pada tim dengan jumlah orang yang tidak terlalu banyak, kirakira berjumlah lebih kurang 7 orang. Setiap orang dalam tim scrum akan memiliki
role atau fungsi tertentu. Dan hanya dikenal 3 role atau fungsi dalam menjalankan
proyek berbasis scrum :

Product Owner
Product owner adalah orang yang bertanggung jawab terdapat definisi produk yang
akan dibuat. Dengan kata lain, product owner adalah tim yang menciptakan "APA"
yang harus dimiliki oleh aplikasi. Mereka bertugas untuk menuliskan semua item
yang harus dimiliki oleh aplikasi. Item-item tersebut memiliki "story" yang akan
disampaikan oleh product owner.
Product owner, juga bertanggung jawab untuk memberikan prioritas kepada setiap
story, sehingga seluruh anggota tim SCRUM mengetahui apa yang sebaiknya harus
dibuat pada setiap iterasi.
Sebagai representatif dari pengguna, product owner akan menjadi kunci apakah
hasil dari sebuah iterasi dapat di-deploy atau diimplementasikan.

Scrum Master
Ini adalah seseorang yang akan berperan sebagai fasilitator dalam setiap proses
atau ceremony yang ada dalam scrum seperti layaknya seorang project manager.

Scrum Development Team


Tim inilah yang akan setiap iterasi menghasilkan suatu incremental product yang
telah disepakati bersama. Mereka bertanggung jawab untuk membuat program dan
menguji program tersebut(testing) sehingga hasil dari setiap iterasi dapat
digunakan dan diimplementasikan.
Tim ini harus mengatur dirinya sendiri (self-organized), dari proses analisa, design,
coding dan akhirnya diujikan. Mereka harus berkolaborasi bersama sehingga
keluaran dari setiap iterasi adalah sebuah program yang benar-benar teruji dan
sesuai dengan harapan product owner.

Proses Membangun Incremental Product

Product Backlog Item


Adalah list dari 'user story' untuk menggambarkan fungsi atau feature apa saja
yang harus tersedia di dalam aplikasi. Product Owner akan membuat user story

untuk selanjutnya dibawa dalam sebuah diskusi bersama untuk melihat lebih detail
terkait dengan skala prioritas dan acceptance criteria.

Beberapa contoh user story pada Product Backlog Item

Jika user mencoba 3 kali password secara salah, maka user akan di lock.

Menghasilkan report nilai semester mahasiswa.

Report alokasi ruangan kelas dan mampu memberikan alert sehingga jadwal
kuliah tidak konflik dengan jumlah ruangan yang ada.

Seluruh Story Form akan didiskusikan untuk selanjutkan diurutkan sebagai Product
Backlog Item, sekaligus sebagai urutan incremental product pada setiap iterasi atau
sprint. Di dalam scrum, kita akan lebih sering menggunakan istilah sprint
dibandingkan iterasi.

Sprint Backlog
Adalah sebuah hasil diskusi bersama berdasarkan skala prioritas untuk melakukan
mapping setiap Product Backlog Item(PBI) ke jadwal sprint. Dengan adanya Sprint
Backlog, maka semua member dalam scrum akan mengetahui apa target pada
setiap sprint atau setiap iterasi. Sangat dimungkinkan sebuah PBI akan dipecah
menjadi 2 bagian atau lebih menjadi item yang lebih kecil sehingga dapat
dikerjanan dalam sebuah sprint atau iterasi. Pemecahan ini tetap menjalankan
prinsip bahwa item tersebut adalah independent dan testable.

Sprint Tasks
Team akan melakukan identifikasi pada setiap sprint backlog dan berdiskusi
bersama tugas-tugas apa saja yang harus dilakukan pada setiap sprint atau iterasi.
Misal, telah ditetapkan bahwa kita akan membuat report nilai semester siswa pada
sebuah sprint/iterasi tertentu. Selanjutnya kita mulai melakukan identifikasi tugastugas yang harus dikerjakan agar kita mampu menyesaikan iterasi tersebut. Contoh
tugas-tugas yang harus kita lakukan dalm iterasi tersebut adalah membuat form
report, menganalisa database, mendesain bagaimana layar user untuk keperluan
input, melakukan testing dan lain-lain.

Aktifitas Scrum

Kita juga dapat menyebut aktifitas scrum ini sebagai Scrum Ceremony.
Sebagaimana di awal tulisan ini, scrum berfokus kepada manajemen proyek yang
didalamnya terdapat framework tentang bagaimana mengelola dan menjalankan
proyek rekayasa perangkat lunak menggunakan prinsip agile.

Gambar di atas, menunjukan bagaimana proses rekayasa perangkat lunak


menggunakan metode scrum akan berlangsung. Dimulai dengan kegiatan untuk
melakukanidentifikasi backlog (atau user story) dan selanjutnya kegiatan akan
bergerak dari satu iterasi ke iterasi selanjutnya guna membangun incremental
product. Di dalam setiap iterasi, terdapat juga kegiatan harian yang akan dilakukan
oleh semua anggota tim scrum.

Backlog Refinement Meeting


Semua proyek perangkat lunak selalu memiliki item yang akan digunakan untuk
membantu pengguna aplikasi dalam menjalankan kesehariannya. Meeting ini
digunakan bersama oleh seluruh tim scrum untuk mengetahui feature atau fungsi
apa saja yang akan terdapat pada aplikasi yang sedang dikembangkan. Hasil dari
meeting adalah sebuah Product Backlog Item.
Meeting ini harus dilakukan sebelum tim mulai bekerja pada tahapan iterasi atau
sprint. Setiap list akan direview apakah scope-nya masih terlalu luas atau perlu displit atau dibagi-bagi lagi menjadi potongan yang lebih kecil, sehingga dapat
dengan mudah untuk di-mapping ke dalam suatu iterasi/sprint.
Tim juga akan berdiskusi tingkat kesulitan dan prioritas dari masing-masing item,
sehingga tim bisa membuat schedule yang tepat untuk melakukan mapping
mengenai item yang akan dikerjakan lebih dahulu sehingga tim memiliki
perencanaan item apa saja yang akan dikerjakan untuk setiap iterasi.
Dan tentu saja, pada tahap ini tim mencoba untuk menyamakan persepsi mengenai
acceptance criteria yaitu kriteria apa saja untuk mengatakan bahwa iterasi dan
incremental product yang dihasilkan adalah sesuai harapan.

Sprint Planning Meeting


Meeting ini dijalankan pada hari pertama pada setiap sebuah iterasi akan dimulai.
Dengan menggunakan Product Backlog Item yang telah ditetapkan pada saat
Backlog Refinement Meeting, maka tim sudah mengetahui feature apa yang akan
mereka selesaikan pada iterasi. Dan tim mulai melakukan identifikasi tugas atau
task apa saja yang harus dikerjakan guna menyelesaikan feature yang telah
ditetapkan pada setiap iterasi atau sprint. Selanjutnya tim mulai membagi tugas
atau task tersebut kepada seluruh anggota scrum.

Daily Scrum

Kini tiba saatnya sebuah iterasi dimulai. Semua anggota tim scrum sudah
bersepakat feature apa yang akan dihasilkan pada iterasi ini. Mereka juga sudah
memiliki rencana kolaborasi dan setiap anggota tim telah sepakat dengan tugasnya
masing-masing. Setiap hari, semua anggota tim akan melakukan meeting lebih
kurang 20 menit dan masing-masing anggota harus melaporkan 3 point. Point-point
tersebut adalah apa yang telah dilakukan kemarin, apa yang akan dilakukan hari ini
dan kendala yang dihadapi untuk menyelesaikan tugas. Meeting ini didesain untuk
dilakukan secara singkat, jika ada sesuatu yang detail, anggota tim bisa berdiskusi
lebih detail diluar meeting ini dengan orang-orang terkait.

Setiap harinya, sprint backlog akan selalu mereflekasikan status dari semua tugas
yang telah ditetapkan pada setiap iterasi. Semua tugas yang telah diidentifikasi,
akan dimasukkan ke dalam kolom "Not Started". Selanjutnya tugas-tugas tersebut
akan mengalami progress dan didiskusikan dalam daily meeting.

Sprint Review Meeting


Kini tiba saatnya akhir dari sebuah sprint, seluruh tim akan berdiskusi lagi untuk
melakukan final review untuk menyatakan apakah mereka telah berhasil memenuhi
ekspektasi yang ditetapkan oleh product owner. Product Owner akan menjadi orang
kunci yang akan menentukan apakah incremental product yang telah dibuat dalam
sprint tersebut dapat diterima atau dinyatakan gagal sehingga perlu adanya diskusi
lanjutan untuk menentukan langkah selajutnya.

Meeting ini tidak lagi berdiskusi mengenai status, incremental product yang telah
dikembangkan selama satu periode sprint akan didemokan dan diujikan sebagai

final review untuk menyatakan bahwa sebuah user-story atau sebuah product
backlog item telah benar-benar selesai sesuai dengan target sprint yang telah
disepakati.

Jika sebuah user story telah dinyatakan gagal di dalam sebuah iterasi, tim bisa saja
memutuskan untuk menunda terlebih dahulu user-story ini, untuk selanjutnya akan
ditinjau kembali pada iterasi mendatang. Atau tim juga bisa menentukan, jika userstory ini akan dilakukan kembali pada iterasi selanjutnya sehingga jadwal user-story
yang telah direncanakan sebelumnya akan ditunda terlebih dahulu, untuk
menyelesaikan user-story yang masih belum yang belum berhasil.

Sebagaimana karakteristik dari metode scrum, tim scrum adalah self-organization,


sehingga tim yang akan menentukan langkah yang paling tepat bagi mereka.

Sprint Restrospective Meeting


Ini adalah meeting untuk melakukan instropeksi dengan melihat kembali perjalanan
selama sprint berlangsung. Diskusi lebih berfokus kepada upaya untuk membangun
sebuah timyang efektif dan optimal guna menyelesaikan sprint-sprint berikutnya.
Mungkin perlu perbaikan dalam pola komunikasi antar tim, atau terdapat sebuah
proses yang mungkin bisa dihilangkan karena justru menyulitkan tim tetapi efek
terharap hasil akhir tidak sesuai dengan effort yang dikeluarkan atau banyak hal
lainnya.

Dengan adanya meeting ini, diharapkan hubungan antar tim akan semakin baik,
kolaborasi menjadi lebih efektif dan optimal serta pengetahuan akan product akan
semakin bertambah sehingga memudahkan sprint-sprint berikutnya.