Managemen Proyek dan Pengembangan
Sistem Pada Bidang Komputer Menggunakan Metode Scrum
ANGGOTA KELOMPOK
Andry Setiawan (20115754)
Bachtiar Adiguna (21115215)
Fajri Fadli (22115445)
Kevin Clarence (23115691)
Kelas: 3KB01
Mata Kuliah
Manajemen Proyek & Resiko
1. SEJARAH SINGKAT METODOLOGI SCRUM
Scrum pertama kali diperkenalkan dalam artikel Takeuchi and Nonaka
yang berjudul "The New New Product Development Game" dan
dipublikasikan oleh Harvard Business Review (HBR) pada tahun 1986.
Pada artikel tersebut Takeuchi dan Nanaka melakukan survey pada
beberapa perusahaan di Jepang, antara lain ; Fuji Xerox, Canon, 3M
dan Honda. Survei tersebut dilakukan untuk melihat bagaimana
perusahaan-perusahaan tersebut dapat membuat produk baru dengan
kualitas produk yang sangat bagus, secara sukses.
Takeuchi dan Nanaka menemukan bahwa perusahaan-perusahaan tersebut
menggunakan pendekatan yang sama dalam mengembangkan produknya.
Metode Scrum digunakan pertama kali dalam pengembangan perangkat
lunak dimulai oleh Jeff Sutherland, Easel Corporation pada tahun
1993. Metode Scrum pertama kali diformulasikan dan dipresentasikan
pada Object Management Group tahun 1995 dengan judul paper "Scrum
Development Process"
2. PENGERTIAN METODOLOGI SCRUM
Scrum adalah suatu metodologi yang mengatur (manage) proses
pembuatan software. Scrum merupakan suatu kerangka kerja. Jadi,
bukannya menyediakan deskripsi rinci tentang bagaimana segala sesuatu
yang harus dilakukan pada proyek seperti diserahkan kepada tim
pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya
tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang
mereka disajikan. Ada 3 elemen organisasi utama pada scrum yaitu
product owner, Scrum master, dan the Scrum team. Scrum Master dapat
dianggap sebagai pelatih bagi tim, membantu anggota tim menggunakan
kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner
mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah
pegembangan produk yang tepat. Sedangkan The Scrum Team merupakan
grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek
yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke
grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat
ikut membantu dalam koordinasi team.
Selain itu Scrum juga 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.
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. Anggota team yang bekerja
menggunakan metodologi Scrum terbagi menjadi beberapa roles atau
peranan, yang terbagi sebagai berikut :
I. Development Team
Development team atau tim pengembang adalah team yang mendesain
dan melakukan proses problem-solvers. Biasanya team tersebut terdiri
dari 3-9 orang.
3-9 orang adalah team yang paling optimal dalam menggunakan metode
scrum berdasarkan beberapa penelitian yang ada. Pembagian tugas dan
distribusi informasi ditentukan diantara anggota tim itu sendiri.
Setiap anggota tim bertanggungjawab atas keberhasilan keluaran sprint
yang dilakukan.
II. Product Owner
Product Owner atau pemilik proyek harus memastikan bawha tim
pengembang bekerja sesuai dengan target yang telah ditetapkan dilihat
dari kacamata bisnis. Pemilik proyek melakukan manajemen terhadap
Product Backlog, yang dibreakdown menjadi to-do-list, sehingga semua
keinginan dan kebutuhan sistem dapat terekam dengan baik berdasarkan
keuntungan yang diterima dengan mempertimbangkan sisi bisnisnya.
Pemilik proyek fokus pada bagaimana produk dihasilkan nantinya.
Selain itu pemilik proyek juga harus selalu melihat berapa banyak
dana yang dikeluarkan dalam mengembangkan produk dan seberapa besar
pendapatan yang dihasilkan oleh produk tersebut.
III. Scrum Master
Scrum master atau tenaga ahli Scrum adalah kombinasi dari pelatih,
fixer dan penjaga gawang. Hal yang paling penting dari Scrum Master
adalah, Scrum Master harus dapat mengarahkan dan melatih Tim
Pengembang dan Pemilik Proyek untuk memastikan bahwa mereka selalu
berada dalam kondisi terbaiknya dalam meraih kesuksesan.
Scrum Master memimpin rapat setiap harinya - Daily Scrum. Scrum
master harus memastikan bahwa tim pengembang tidak teralihkan
fokusnya pada hal-hal diluar proyek/pekerjaan.
IV. Scrum Team
Scrum Team atau Tim Scrum adalah gabungan dari Tim Pengembang,
Pemilik Proyek dan Tenaga Ahli Scrum.
3. Istilah-istilah dalam Scrum
I. Product Backlog
Pemilik Proyek menyusun dan mengumpulkan semua permintaan dan
kebutuhan sistem, misalnya fitur-fitur yang dibutuhkan dan-atau
kebutuhan non-fungsional sistem. Setelah tujuannya sudah ditetapkan,
semua permintaan dan kebutuhan tersebut dibagi-bagi menjadi
bagian-bagian kecil yang mana setiap bagian kecil tersebut harus
mempunyai nilai dan layak untuk dikembangkan.
Pemilik Proyek juga menentukan skala prioritas dalam pengerjaan
bagian-bagian kecil tersebut. Bagaimana dan seperti apa bagian-bagian
kecil tersebut diimplementasikan dan di-deliver?
Pertanyaan tersebut akan menghasilkan sebuah to-do-list
berdasarkan kebutuhan pasar dan kebutuhan pelanggan yang selalu
berubah seiring dengan berjalannya waktu.
II. Backlog Refinement
Backlog harus di-maintain dengan baik dan tepat oleh Tim Scrum
untuk dilakukan perencanaan, sehingga Sprint dapat berjalan dengan
lancar. Hal-hal yang harus dilakukan dalam me-maintain backlog antara
lain adalah melakukan proses estimasi dan breakdown kebutuhan, Hal
tersebut dilakukan agar kondisi Sprint (1-4 minggu) terpenuhi.
Oleh karena itu, sangat membantu apabila tim mengalokasikan waktu
khusus setiap minggu untuk melakukan Penghalusan Backlog (Backlog
Refinement), dan disaat yang sama juga melakukan perencanaan.
III. Sprint
Sprint adalah kotak-waktu yang berisi periode kerja dimana pada
sprint fokus terhadap deliveryproduk berdasarkan item-item yang
dipilih dari Product Backlog. Didalam Sprint selalu ditetapkan waktu
pekerjaan secara konsisten dan Sprint yang baru dimulai sesegera
mungkin setelah sprint yang ada telah selesai dikerjakan.
IV. Daily Scrum
Setiap hari, Tim Scruam harus melakukan pertemuan (rapat) selama
maksimal 15 menit. Hal ini dilakukan dengan tujuan untuk
mensinkronkan progres, mengidentifikasi masalah dan menyelesaikan
masalah yang ada dalam mengerjakan pekerjaannya.
Pertanyaan yang biasa ditanyakan adalah :
Apa yang anda lakukan sejak pertemuan terakhir ?
Apa rencana yang anda lakukan sampai pertemuan berikutnya ?
Apa ada suatu masalah yang membuat anda tidak dapat mengerjakan
pekerjaan yang telah direncanakan sebelumnya ?
Pertanyaan 1 dan 2 digunakan untuk melihat sejauh mana progress
yang telah dibuat dan untuk menentukan siapa yang mengerjakan apa
setiap harinya. Pertanyaan ketiga digunakan untuk mencari solusi dari
permasalahan yang muncul. Mulai dari pertanyaan yang bersifat teknis
hingga non-teknis yang dinilai dapat mengacaukan pekerjaan.
V. Sprint Review
Setiap Sprint selalu berakhir dengan mendemontrasikan dan
mempresentasikan fitur-fitur yang telah dikerjakan. Hal tersebut
dilakukan untuk memastikan bahwa fitur-fitur tersebut dapat bekerja
dengan baik.
Sebaiknya Sprint review dilakukan dalam team yang kecil, sebelum
produk tersebut didemontrasikan dan dipresentasikan pada team yang
besar (Pemilik Produk, pelanggan dan manajemen perusahaan).
VI. Sprint Retrspective
Didalam Sprint Retrspective, Tim Scrum merefleksikan bagaimana
pekerjaan-pekerjaan berjalan pada Sprint sebelumnya? Harapan yang
ingin dicapai pada Sprint Retrspective adalah adanya perbaikan
tindakan sehingga Sprint berikutnya dapat dikerjakan dengan lebih
baik lagi. Perbaikan-perbaikan tersebut harus di-implementasi-kan
pada Sprint berikutnya.
4. PRINSIP METODOLOGI SCRUM
· 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
5. KELEBIHAN DAN KEKURANAN METODOLOGI SCRUM
I. Kelebihan Metodologi Scrum antara lain:
· 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
· Scrum membantu perusahaan dalam menghemat waktu dan
uang.
· Metode scrum membolehkan perusahaan dimana persyaratan
bisnis sulit untuk diukur menjadi mudah dikembangkan.
· Pergerakan pengembangan cutting edge dapat dengan cepat
dikodekan dan diuji menggunakan metode ini. Bagaikan kesalahan yang
mudah untuk diperbaiki.
· Scrum merupakan sebuah metode yang mudah dikontrol yang
mana peningkatan pekerjaan dapat terjadi setiap periode waktu yang
ditentukan
· Scrum merupakan metode iteratif yang membutuhkan
feedback secara kontinu dari user.
· Karena short sprint dan constant feedback, scrum dapat
dengan mudah mengatasi setiap perubahan
· Daily scrum meeting memungkinan untuk mengukur
produktfitas individu. Ini mengarah pada peningkatan produktifitas
dari setiap anggota tim.
· Setiap isu diidentifikasi dengan baik pada setiap
pertemuan harian dan oleh karena itu dapat diselesaikan dengan cepat.
· Mudah untuk mengirim produk berkualitas sesuai
waktunya.
· Scrum dapat bekerja dengan berbagai teknologi dan
bahasa pemrograman namun secara khusus berguna untuk peningkatan web
2.0 maupun media proyek baru.
· Biaya overhead dari proses dan manajemen sangat minim
sehingga mengarah ke hasil lebih cepat dan lebih murah.
II. Kekurangan Metodologi Scrum antara lain :
· Developer harus selalu siap dengan perubahan karena
perubahan akan selalu diterima.
· Lemah dalam perencanaan arsitektur
· Scrum adalah salah satu penyebab utama scope creep
karena kecuali ada tanggal akhir tertentu, stakeholder proyek
manajemen akan tergoda untuk terus menuntut fungsi baru disampaikan.
· Jika tugas tidak didefinisikan dengan baik, perkirakan
biaya proyek dan waktu tidak akan akurat. Dalam kasus seperti itu,
tugas dapat tersebar di beberapa sprint.
· Jika anggota tim tidak berkomitmen, maka proyek tidak
akan selesai atau bahkan gagal
· Proyek yang kecil dapat bergerak dengan sangat baik
karena hanya diselesaikan oleh tim yang kecil
· Metode ini hanya membutuhkan anggota tim yang
berpengalaman, jika tim berisi orang - orang yang masih pemula maka
proyek tidak dapat selesai sesuai waktunya
· Scrum dapat bekerja dengan baik jika scrum master
mempercayai tim yang mereka kelola, jika scrum master terlalu
mengontrol secara ketat setiap anggota tim ini dapat menyebabkan tim
menjadi stress yang mengakibatkan demoralisasi dan kegagalan dari
proyek tersebut.
· Jika setiap anggota tim meninggalkan tim selama
pengembangan proyek dapat menyebabkan efek yang kurang baik bagi
perkembangan proyek tersebut
· Project quality management sangat sulit untuk
diimplementasikan dan diukur kecuali team dapat melakukan pengujian
regresi setelah beberapa sprint.
Sumber & Referensi:
https://www.scrum.org/resources/what-is-scrum
https://www.scrumalliance.org/why-scrum
http://scrummethodology.com/
https://en.wikipedia.org/wiki/Scrum_(software_development)
Komentar
Posting Komentar