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 eksibel holistik di mana tim pengembangan bekerja bekerja sebagai sebuah unit untuk mencapai tujuan bersama" sebagai lawan dari "pendekatan tradisional, tradisional, berurutan".
Sejarah Scrum pertama kali didenisikan didenisikan sebagai "strategi, pengembangan produk produk eksibel holistik di mana tim pengembangan bekerja sebagai sebuah unit untuk mencapai tujuan bersama" sebagai lawan dari "pendekatan tradisional, sekuensial" sekuensial" pada tahun !# oleh $irotaka %akeuchi dan &kujiro 'onaka dalam "'ew 'ew (roduk )ame *e+elopment ". $irotaka %akeuchi dan &kujiro 'onaka kemudian berpendapat dalam "(erusahaan (engetahuan enciptakan" baik oleh &kujiro 'onaka dan $irotaka %akeuchi bahwa itu adalah bentuk "penciptaan pengetahuan organisasi, terutama baik di membawa tentang ino+asi terus menerus, bertahap dan spiral". (ara penulis menggambarkan pendekatan baru untuk pengembangan produk komersial yang akan meningkatkan kecepatan dan eksibilitas, berdasarkan studi kasus dari perusahaan-perusahaan manufaktur di industri otomotif, mesin fotokopi dan printer. ereka 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". *alam rugby, sebuah scrum mengacu pada cara restart permainan setelah pelanggaran kecil. (ada awal !!-an, en Schwaber digunakan apa yang akan menjadi Scrum di perusahaan itu, etode (engembangan /anjutan, dan 0e1 Sutherland, dengan 0ohn Scumniotales dan 0e1 cenna, mengembangkan pendekatan yang serupa di (erusahaan 2asel, dan adalah yang pertama untuk menyebutnya menggunakan single ata Scrum. (ada tahun !!3, Sutherland dan Schwaber bersama-sama mempresentasikan sebuah makalah yang menjelaskan metodologi Scrum di *esain 4byek 5isnis dan /okakarya /okakarya &mplementasi diselenggarakan diselenggarakan sebagai bagian dari 5erorientasi 4bjek Sistem (emrograman,, 5ahasa 6 7plikasi 8!3 944(S/7 8!3: di 7ustin, %e;as, pertama publik presentasi. Schwaber dan Sutherland berkolaborasi selama tahun berikutnya berikutnya untuk menggabungkan menggabungkan tulisan-tulisan di atas, pengalaman mereka, dan industri praktek terbaik ke dalam apa yang sekarang dikenal sebagai Scrum.
(ada tahun <, Schwaber bekerja dengan ike 5eedle untuk menggambarkan metode dalam buku (engembangan (erangkat /unak 7gile dengan Scrum. (endekatan untuk perencanaan dan pengelolaan proyek adalah dengan membawa pengambilan keputusan wewenang kepada tingkat sifat operasi dan kepastian. eskipun kata tersebut tidak akronim, beberapa perusahaan melaksanakan proses telah dikenal untuk mengejanya dengan huruf kapital sebagai scrum. $al ini mungkin karena salah satu dari awal tulisan en 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 aktiftas yang meliputi 1). Backlog 5acklog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat bertambah
2). Sprints 7ktitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-bo; 9biasanya =hari:. Selama proses ini berlangsung backlog tidak ada penambahan.
3). Scrum Meetings
7ktitas Scrum eeting merupakan pertemuan yang rutin dilakukan perhari untuk e+aluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya.
4). Demo 7ktitas *emo adalah penyerahan software increment ke klien didemonstrasikan dan die+aluasi oleh klien.
kekurangan an kele!ihan 1). "ele!ihan -
eperluan berubah dengan cepat
%im berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain -
(ekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
*okumentasi dan pengujian terus menerus dilakukan setelah software dibangun (roses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
2). "ekurangan Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
#mplementasi
(enerapan etodologi Scrum *engan %eam Foundation Ser+er < memiliki fokus utama yaitu maajemen pengembangan produk.
Pengertian Scrum so$t%are e&elopment Scrum merupakan framework untuk manajemen pengembangan software dengan karakteristik cekatan dan bersifat iteratif dan incremental. Scrum mendenisikan dirinya eksible, strategi pengembangan yang menyeluruh di mana seluruh team bekerja sebagai satu unit dalam mencapai sebuah gol yang sama.
*alam menjalankan kerjasama antara anggota team, scrum menekankan lokasi sik yang sama atau sarana online yang akrab antara semua member, dan juga pertemuan muka dengan muka setiap hari antara semua anggota team. (rinsip kunci dari scrum adalah memahami bahwa dalam project yang tengah berlangsung, klien mungkin mengubah apa yang menjadi kebutuhan dan keinginannya. (erubahan 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 >ugby yang begitu mudah menyesuaikan diri semua anggota team setelah ada sedikit pelanggaran. emudian menyesuaikan diri inilah yang mengimpirasi scrum. Scrum mempunyai = >ole . Prouct '%ner (engertian produk adalah tujuan dari proyek. (roduct 4wner memastikan bahwa proyek berjalan sesuai yang diharapkan. (roduct 4wner merupakan penjembatan antara client dengan team de+elopment. (roduct 4wner akan menuliskan spesikasi-spesikasi sesuai cara pandang client, di lain pihak harus punya empati terhadap anggota team. <. (eam Mem!er *ilihat dari namanya jelas yaitu anggota-anggota team. =. Scrum Master Scrum aster akan mencegah hal-hal yang mengalihkan focus team. Scrum master akan membuat suasana kondusif supaya team dapat bekerja sama dalam mencapai goal. 2+ent penting dalam Scrum adalah sprint?iteration. Sprint merupakan unit dasar dalam de+elopment dengan Scrum. Sprint merupakan jangka waktu yang dibatasi pada suatu durasi minggu, < minggu atau bulan. Setiap sprint dimulai dengan planning meeting dan diakhiri dengan sprint re+iew dan retrospecti+e meeting.
gambar seperti berikut ini@
(roses penting dalam Scrum antara lain@ . 5acklog renement <. Sprint planning =. *aily Scrum A. Sprint re+iew meeting 3. Sprint retrospecti+e meeting Scrum sederhana namun sulit untuk dikuasai Balaupun Scrum terlihat sangat sederhana namun sudah banyak organisasi di &ndonesia yang belum berhasil dalam mengimplementasikannya dan belum mendapatkan hasil positif dari Scrum. $al ini dikarenakan Scrum merupakan sebuah pola pikir dan kultur yang baru. %idak banyak organisasi yang dapat menerima
kesederhanaan Scrum. Cntuk dapat memahami pola pikir dan kultur yang baru, organisasi yang bersangkutan harus memiliki pemikiran terbuka untuk menerima pengajaran yang baru. 4rganisasi 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. etode SD>C pada (endekatan >ekayasa (erangkat /unak 7)&/2 SD>C adalah salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan 7)&/2, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir.
Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan 7)&/2. ungkin kita juga pernah mendengar metode 2;treme (rogramming 9E(: yang juga menggunakan pendekatan 7)&/2 dalam rekayasa perangkat lunak. asing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasika untuk menghasilkan proses yang optimal.
0ika metode E( lebih berfokus kepada framework yang memberikan kerangka mengenai praktek-praktek teknis dalam membangun program menggunakan pendekatan 7)&/2, seperti para programmer yang diharapkan untuk bekerja pada station yang sama sehingga dapat menggunakan library yang sama dan lain sebagainya.
Sedangkan metode SD>C lebih berfokus kepada project management yang memberikan kerangka kerja bagaimana mengelola sebuah proyek yang berbasis 7)&/2. etode ini memberikan pola "ceromony" apa saja yang harua dilaksanakan, "role" apa saja yang ada dalam SD>C termasuk tugas yang harus diperankannya dan masih banyak hal lainnya. %ulisan ini akan mencoba untuk mengupas metode SD>C ini.
*i dalam setiap iterasi scrum, semua anggota tim saling berkolaborasi untuk menyelesaikan setiap incremental product yang telah direncanakan dan disepakati bersama. *alam 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-organiing, artinya semua anggota tim akan bekerja sama untuk mengelola kerja mereka sesuai dengan kesepakatan mereka. ereka 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. 7tau seorang programmer akan membantu aktitas testing. Secara sederhana, anggota tim akan merencanakan tugas secara bersama dan melakukannya secara bersama sebagai sebuah kolaborasi tim.
'*+ ,-ungsi) alam Scrum
Scrum akan berjalan pada tim dengan jumlah orang yang tidak terlalu banyak, kirakira berjumlah lebih kurang G orang. Setiap orang dalam tim scrum akan memiliki role atau fungsi tertentu. *an hanya dikenal = role atau fungsi dalam menjalankan proyek berbasis scrum @
Product Owner (roduct owner adalah orang yang bertanggung jawab terdapat denisi produk yang akan dibuat. *engan kata lain, product owner adalah tim yang menciptakan "7(7" yang harus dimiliki oleh aplikasi. ereka bertugas untuk menuliskan semua item yang harus dimiliki oleh aplikasi. &tem-item tersebut memiliki "story" yang akan disampaikan oleh product owner. (roduct owner, juga bertanggung jawab untuk memberikan prioritas kepada setiap story, sehingga seluruh anggota tim SD>C 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 &ni adalah seseorang yang akan berperan sebagai fasilitator dalam setiap proses atau ceremony yang ada dalam scrum seperti layaknya seorang project manager.
Scrum Development Team %im inilah yang akan setiap iterasi menghasilkan suatu incremental product yang telah disepakati bersama. ereka bertanggung jawab untuk membuat program dan menguji program tersebut9testing: sehingga hasil dari setiap iterasi dapat digunakan dan diimplementasikan. %im ini harus mengatur dirinya sendiri 9self-organied:, dari proses analisa, design, coding dan akhirnya diujikan. ereka harus berkolaborasi bersama sehingga keluaran dari setiap iterasi adalah sebuah program yang benar-benar teruji dan sesuai dengan harapan product owner.
Proses Mem!angun #ncremental Prouct
Product Backlog Item 7dalah list dari 8user story8 untuk menggambarkan fungsi atau feature apa saja yang harus tersedia di dalam aplikasi. (roduct 4wner akan membuat user story
untuk selanjutnya dibawa dalam sebuah diskusi bersama untuk melihat lebih detail terkait dengan skala prioritas dan acceptance criteria.
5eberapa contoh user story pada (roduct 5acklog &tem •
•
•
0ika user mencoba = kali password secara salah, maka user akan di lock. enghasilkan report nilai semester mahasiswa. >eport alokasi ruangan kelas dan mampu memberikan alert sehingga jadwal kuliah tidak konik dengan jumlah ruangan yang ada.
Seluruh Story Form akan didiskusikan untuk selanjutkan diurutkan sebagai (roduct 5acklog &tem, sekaligus sebagai urutan incremental product pada setiap iterasi atau sprint. *i dalam scrum, kita akan lebih sering menggunakan istilah sprint dibandingkan iterasi.
Sprint Backlog 7dalah sebuah hasil diskusi bersama berdasarkan skala prioritas untuk melakukan mapping setiap (roduct 5acklog &tem9(5&: ke jadwal sprint. *engan adanya Sprint 5acklog, maka semua member dalam scrum akan mengetahui apa target pada setiap sprint atau setiap iterasi. Sangat dimungkinkan sebuah (5& akan dipecah menjadi < bagian atau lebih menjadi item yang lebih kecil sehingga dapat dikerjanan dalam sebuah sprint atau iterasi. (emecahan ini tetap menjalankan prinsip bahwa item tersebut adalah independent dan testable.
Sprint Tasks %eam akan melakukan identikasi pada setiap sprint backlog dan berdiskusi bersama tugas-tugas apa saja yang harus dilakukan pada setiap sprint atau iterasi. isal, telah ditetapkan bahwa kita akan membuat report nilai semester siswa pada sebuah sprint?iterasi tertentu. Selanjutnya kita mulai melakukan identikasi tugastugas yang harus dikerjakan agar kita mampu menyesaikan iterasi tersebut. Dontoh 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.
ktiftas Scrum
ita juga dapat menyebut aktitas scrum ini sebagai Scrum Deremony. 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.
)ambar di atas, menunjukan bagaimana proses rekayasa perangkat lunak menggunakan metode scrum akan berlangsung. *imulai dengan kegiatan untuk melakukanidentikasi backlog 9atau user story: dan selanjutnya kegiatan akan bergerak dari satu iterasi ke iterasi selanjutnya guna membangun incremental product. *i dalam setiap iterasi, terdapat juga kegiatan harian yang akan dilakukan oleh semua anggota tim scrum.
Backlog Refnement Meeting Semua proyek perangkat lunak selalu memiliki item yang akan digunakan untuk membantu pengguna aplikasi dalam menjalankan kesehariannya. eeting ini digunakan bersama oleh seluruh tim scrum untuk mengetahui feature atau fungsi apa saja yang akan terdapat pada aplikasi yang sedang dikembangkan. $asil dari meeting adalah sebuah (roduct 5acklog &tem. eeting ini harus dilakukan sebelum tim mulai bekerja pada tahapan iterasi atau sprint. Setiap list akan dire+iew 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. %im 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. *an 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 eeting ini dijalankan pada hari pertama pada setiap sebuah iterasi akan dimulai. *engan menggunakan (roduct 5acklog &tem yang telah ditetapkan pada saat 5acklog >enement eeting, maka tim sudah mengetahui feature apa yang akan mereka selesaikan pada iterasi. *an tim mulai melakukan identikasi 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
ini tiba saatnya sebuah iterasi dimulai. Semua anggota tim scrum sudah bersepakat feature apa yang akan dihasilkan pada iterasi ini. ereka 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 < menit dan masing-masing anggota harus melaporkan = point. (oint-point tersebut adalah apa yang telah dilakukan kemarin, apa yang akan dilakukan hari ini dan kendala yang dihadapi untuk menyelesaikan tugas. eeting 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 mereekasikan status dari semua tugas yang telah ditetapkan pada setiap iterasi. Semua tugas yang telah diidentikasi, akan dimasukkan ke dalam kolom "'ot Started". Selanjutnya tugas-tugas tersebut akan mengalami progress dan didiskusikan dalam daily meeting.
Sprint Review Meeting ini tiba saatnya akhir dari sebuah sprint, seluruh tim akan berdiskusi lagi untuk melakukan nal re+iew untuk menyatakan apakah mereka telah berhasil memenuhi ekspektasi yang ditetapkan oleh product owner. (roduct 4wner 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.
eeting ini tidak lagi berdiskusi mengenai status, incremental product yang telah dikembangkan selama satu periode sprint akan didemokan dan diujikan sebagai
nal re+iew untuk menyatakan bahwa sebuah user-story atau sebuah product backlog item telah benar-benar selesai sesuai dengan target sprint yang telah disepakati.
0ika 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. 7tau 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-organiation, sehingga tim yang akan menentukan langkah yang paling tepat bagi mereka.
Sprint Restrospective Meeting &ni adalah meeting untuk melakukan instropeksi dengan melihat kembali perjalanan selama sprint berlangsung. *iskusi lebih berfokus kepada upaya untuk membangun sebuah timyang efektif dan optimal guna menyelesaikan sprint-sprint berikutnya. ungkin 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 e1ort yang dikeluarkan atau banyak hal lainnya.
*engan 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.