• 0
  • 0
  • 0
  • 0
  • 17 August 2018

Mengembangkan Produk Software Dengan Teknik Scrum

Scrum3Scrum adalah sebuah framework atau kerangka kerja yang digunakan untuk mengembangkan produk perangkat lunak yang terlalu kompleks untuk diprediksi secara konsisten. Scrum saat ini menjadi alternatif yang mulai banyak digunakan dalam proses pengembangan perangkat lunak.

Scrum bukan merupakan metode atau tool yang berkaitan dengan teknis programming. Scrum lebih merupakan sebuah metodologi bagaimana sebuah tim berkolaborasi dan berinteraksi dalam sebuah proyek pembuatan perangkat lunak. Dalam sebuah proyek perangkat lunak, diperlukan pemahaman terhadap kebutuhan bisnis (user), mendesain sebuah solusi/program yang dapat membantu kebutuhan user, dilanjutkan membuat program, diujikan dan akhirnya bisnis dapat menggunakan program. Scrum bertujuan agar manager bisa menjelaskan tentang kebutuhan user ke seluruh tim sehingga seluruh tim bisa memahami, mendesain arsitektur, dan menyelesaikan proyek pembuatan dan pengembangan perangkat lunak di sebuah organisasi.

Scrum mencoba untuk mengurangi kompleksitas dengan tiga prinsip yaitu transparansi, verifikasi, dan adaptasi. Transparansi bermaksud agar kemajuan dan hambatan sebuah proyek setiap hari dan seterusnya terpantau oleh semuanya. Sedangkan verifikasi bermaksud dengan interval teratur dilakukan penyerahan dan penilaian terhadap fungsi produk yang dikembangkan. Sementara adaptasi yaitu persyaratan untuk produk bukan merupakan harga mati, tetapi setelah diserahkan dievaluasi kembali dan disesuaikan jika perlu.

Tujuan menggunakan Scrum adalah kecepatan penyelesaian produk yang berkualitas tinggi dengan biaya yang efektif, namun sesuai dengan visi awal yang telah dirumuskan. Pelaksanaan konversi dari visi ke dalam sebuah produk tidak disusun sangat detil dalam daftar persyaratan yang kemudian dieksekusi secara bertahap, melainkan dengan formulasi yang jelas dari perspektif pengguna berupa User Stories. Pelaksanaannya, kemudian dilakukan dalam interval dua sampai empat minggu secara berulang dan bertahap berupa sebuah Sprint. Pada akhir setiap sprint adalah penyerahan fungsi (software) yang “selesai” sebagai peningkatan produk yang berpotensi untuk diserahkan kepada pelanggan.

Asal Mula Scrum
Scrum dikembangkan oleh Jeff Sutherland dan Ken Schwaber di awal tahun 90-an. Mereka mengkodifikasikan Scrum pada tahun 1995 pada konferensi OOPSLA di Austin, Texas (AS) dan menerbitkan kertas “Scrum Software Development Process”. Uniknya, nama Scrum diambil Ken dan Jeff berdasarkan sebuah kertas “The New Product Development Game” yang dibuat oleh Takeuchi dan Nonaka. Istilah scrum diambil dari permainan rugby yang menekankan pentingnya kerjasama tim dalam bermain olahraga tersebut dan menjadi sukses dalam hal permainan pengembangan produk baru.

Hasil dari makalah tersebut menunjukkan kinerja yang luar biasa dalam pengembangan produk baru yang kompleks. Sebuah tim yang baik adalah tim yang mampu memberikan arah yang jelas untuk merancang sebuah taktik agar mencapai tujuan bersama, bukan sekadar tugas kerja. Kerangka kerja Scrum untuk pengembangan perangkat lunak menerapkan prinsip-prinsip yang diuraikan dalam makalah tersebut untuk mengembangkan dan mempertahankan produk perangkat lunak yang kompleks.

Dalam proses mengembangkan dan menggunakan versi awal dari Scrum, Ken meminta Profesor Babatunde A. Ogunnaike Tunde, seorang insinyur peneliti terhadap pengendalian proses, untuk melihat proses pengembangan perangkat lunak. Tunde menyelidiki beberapa metodologi pengembangan software komersial untuk menyimpulkan bahwa proses air terjun dan prediktif tidak cocok untuk pekerjaan pengembangan perangkat lunak. Dia menegaskan, pendekatan empiris Scrum menjadi proses disukai. Empirisme digunakan untuk pekerjaan yang kompleks yang tadinya tidak diketahui menjadi diketahui dan membuat prediksi yang memberikan sedikit nilai yang tingkat tinggi terhadap perubahan dan ketidakpastian.Scrum2

Scrum pertama kali mencoba dan disempurnakan di Individual, Inc., Fidelity Investments, dan IDX (sekarang berganti GE Medical). Pada bulan Februari 2001, Jeff dan Ken berada di antara 17 pemimpin pengembangan perangkat lunak menciptakan Manifesto untuk Agile Software Development. Setelah Agile Manifesto, Ken Schwaber mendirikan Agile Alliance dengan Ken Schwaber menjadi Direktur. Pada tahun 2001, Ken terinspirasi oleh Kent Beck dan ia bersama Mike Beedle menulis buku pertama tentang Scrum berjudul “Agile Software Development with Scrum”.

Pada tahun 2002, Ken Schwaber mendirikan Scrum Alliance dengan Mike Cohn dan Esther Derby, dan Ken pun menjadi pimpinan dalam organisasi tersebut. Tahun-tahun berikutnya diciptakan dan diluncurkan program sertifikasi ScrumMaster Bersertifikat dan sukses di pasaran. Tahun 2006, Jeff Sutherland menciptakan perusahaan sendiri berlabel Scrum.inc sambil terus menawarkan dan mengajarkan kursus bersertifikat Scrum.

Ken meninggalkan Scrum Alliance pada musim gugur 2009, dan mendirikan Scrum.org untuk lebih meningkatkan kualitas dan efektivitas dari Scrum, terutama melalui seri pengajaran professional Scrum. Dengan publikasi pertama dari Scrum Guide tahun 2010, dan update inkremental pada 2011 dan 2013, Jeff dan Ken mendirikan badan pengetahuan Scrum yang diakui secara global. Sejak publikasi pertama pada tahun 1995 sampai sekarang, Scrum telah diadopsi oleh sejumlah besar perusahaan pengembangan perangkat lunak di seluruh dunia. Hal ini saat ini diakui sebagai kerangka yang paling tangkas yang diterapkan dalam pengembangan perangkat lunak. Lebih dari 1000 buku telah diterbitkan pada Scrum.

Metode Scrum
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 diintegrasikan 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, 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.

Scrum akan berjalan pada tim dengan jumlah orang yang tidak terlalu banyak, kira-kira 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.

Scrum Team

Aktivitas-aktivitas meeting yang dilakukan pada Scrum setidaknya ada 5 jenis, yaitu Backlog Grooming, Sprint Planning, Daily Scrum, Sprint Review dan Sprint Retrospective. Masing-masing aktivitas memiliki definisi dan tujuan masing-masing.

  • Backlog Grooming

Backlog Grooming merupakan tahap pertama yang harus dilakukan sebelum melakukan tahap-tahap sprint pada Scrum. Meeting ini dilakukan dengan tujuan memilih tahapan prioritas mana saja yang harus dilakukan selama pengerjaan sprint. Backlog Grooming wajib dihadiri oleh seluruh Scrum Team, yang meliputi Product Owner, Scrum Master dan Development Team. Keputusan tertinggi terletak pada Product Owner. Untuk itu Development Team harus mengetahui apa yang sebenarnya diinginkan oleh Product Owner.

  • Sprint Planning

Sprint Planning merupakan meeting yang harus dilakukan setiap kali akan memulai sprint baru. Pada meeting ini Scrum Team merumuskan task-task apa saja yang akan dikerjakan pada 1 sprint. Perlu diperhatikan bahwa dalam 1 kali sprint yang penting bukan banyaknya task yang bisa dikerjakan, tetapi kemampuan task yang dapat dikerjakan dari requirement sampai dengan testing dalam 1 kali waktu sprint berjalan. Waktu sprint ideal berkisar 1-2 minggu, tetapi masih memungkinkan apabila sprint berjalan dalam waktu 1 bulan apabila scope tasknya cukup besar dan tidak dapat dipisah.

  • Daily Scrum

Daily Scrum merupakan meeting yang dilakukan setiap hari pada pengerjaan sprint. Pada meeting ini anggota tim saling berbagai apa yang telah dikerjakan kemarin, apa yang akan dikerjakan hari ini, dan apa saja hambatan yang ditemui selama pengerjaan. Scrum Master harus memastikan seluruh anggota Development Team mengutarakan pendapatnya masing-masing.

  • Sprint Review

Sprint Review merupakan meeting yang dilakukan setelah 1 kali pengerjaan sprint selesai. Meeting ini dilakukan dengan cara mendemonstrasikan apa yang telah dicapai 1 sprint. Dalam hal ini Scrum Team mendemonstrasikan hasil pekerjaannya kepada stakeholder terkait. Apabila stakeholder memiliki masukan terkait hasil produk pada sprint terakhir, stakeholder dapat meminta meeting dengan Scrum Team.

  • Sprint Retrospective

Sprint Retrospective merupakan meeting yang dilakukan pada terakhir 1 masa sprint. Pada meeting ini masing-masing anggota Development Team mengutarakan pendapat mereka terkait kinerja tim pada 1 sprint terakhir. Pendapat yang diutarakan lebih mengarah ke kemampuan komunikasi, pembagian tugas, tanpa membahas sisi teknis project. (Dari berbagai sumber)


Related Articles

Short Cycle Management, Tool Sederhana yang Handal

Short Cycle Management (SCM) merupakan sebuah tool sederhana yang dapat digunakan untuk mempercepat hasil penjualan di cabang ritel. Industri bisnis,

Karyawan Swasta dan Buruh Bakal Dapat Pensiun

Karyawan swasta setidak punya harapan untuk mendapatkan pensiun seperti pegawai negeri sipil (PNS). Presiden Joko Widodo (Jokowi) rencananya akan meluncurkan

Langkah-langkah Melakukan Value Chain Analysis

Analisis rantai pasok (Value Chain Analysis atau VCA) adalah alat bantu yang bagus untuk menciptakan nilai keunggulan terbesar bagi para

No comments

Write a comment
No Comments Yet! You can be first to comment this post!

Write a Comment

Your e-mail address will not be published.
Required fields are marked*