Scrum adalah kerangka kerja yang dirancang khusus untuk mengerjakan proyek pengembangan perangkat lunak. Framework ini memiliki proses dan tools yang dapat meningkatkan visibilitas progres serta keluwesan untuk beradaptasi terhadap perubahan yang banyak dibutuhkan pada suatu proyek pengembangan perangkat lunak.

Dapat ditebak bahwa suatu metode yang meningkatkan adaptasi terhadap perubahan kemungkinan sangat berkaitan erat dengan prinsip agile. Ya, Scrum adalah salah satu metode yang biasa digunakan untuk mengimplementasikan Agile. Di luar narasi bahwa metode ini menolak untuk disebut sebagai metode atau metodologi.

Hingga kini, Scrum adalah metode Agile yang paling banyak digunakan dalam pengembangan aplikasi. Dari survei yang telah dilakukan oleh (Matharu et al., 2015) di dapatkan kesimpulan bahwa pengembangan aplikasi berbasis Scrum lebih tinggi penggunanya jika dibandingkan extreme programming dan kanban methodologies.

Hal itu juga rasanya tidak mengherankan karena industri pengembangan perangkat lunak telah belajar banyak dari berbagai kelemahan dari metode yang biasa digunakan sebelumnya, yakni waterfall. Agile juga terbukti meningkatkan tingkat keberhasilan proyek hingga empat kali lipat jika dibandingkan dengan waterfall (The Standish Group International, 2015).

Sebelum mengenal Agile, pengembangan perangkat lunak harus selalu dikerjakan berurutan mulai dari rencana paten terlebih dahulu, baru implementasi kemudian. Tidak ada ruang untuk perubahan kebutuhan sistem di tengah pengerjaan proyek. Padahal kebutuhan sistem sangatlah mudah untuk berubah sejalan dengan berubahnya keinginan pengguna. Baik dari sisi User (klien) yang telah mendapatkan input lain di tengah pengerjaan proyek, maupun dari sisi teknologi bahasa pemrograman yang terus berkembang pesat.

Hal itulah yang memicu terciptanya prinsip bekerja, metode, serta kerangka kerja pengembangan perangkat lunak yang berbasis adaptasi pada perubahan. Visibilitas progres pekerjaan juga menjadi salah masalah utama yang diselesaikan oleh Scrum. Hal itu wajar saja, karena tidak semua orang paham pada progres dari pengembangan aplikasi yang membutuhkan kemampuan coding.

Lalu sebetulnya apa itu scrum? Bagaimana cara kerjanya? Seperti apa implementasinya? Apa saja kelebihan dan kekurangannya? Berikut adalah berbagai uraian yang akan menjawab berbagai pertanyaan tersebut.

Definisi Scrum

Scrum pertama kali dikembangkan oleh Jeff Sutherland pada tahun 1993 dan memiliki tujuan untuk menjadi metodologi pengembangan yang mengikuti prinsip-prinsip Agile (Adi & Permana, 2015). Kerangka kerja ini juga diciptakan untuk menjadi rival dari waterfall yang dianggap kurang dinamis dan fleksibel untuk diaplikasikan.

Scrum adalah kerangka kerja responsif tambahan dari pengembangan perangkat lunak untuk proyek perangkat lunak dan mengelola produk atau pengembangan aplikasi yang berfokus pada strategi serta pengembangan produk holistik yang fleksibel, di mana tim pengembang bekerja sebagai unit untuk mencapai tujuan bersama seluruh pihak yang terlibat.

Scrum merupakan kerangka kerja yang membantu memecahkan masalah dalam pembuatan produk dengan sangat fleksibel melalui cara yang mengatasi masalah secara adaptif dengan hasil yang maksimal tanpa banyaknya proses produktivitas yang dijalankan.

Bagaimana caranya? Scrum memiliki tahapan yang mampu meningkatkan kemampuan adaptasi serta kolaborasi tim untuk mencapai tujuan bersama dengan lebih efektif dan efisien. Tahapan-tahapan tersebut terdiri dari project initiation, sprint planning, daily scrum, sprint review, dan sprint retrospective. Selain itu metode scrum juga memiliki building block berupa scrum team, scrum event, dan scrum artefact.

Berikut adalah penjelasan dari tahapan event, susunan tim, dan artifak yang dibutuhkan dalam kerangka kerja Scrum.

Scrum Team

Scrum memiliki komposisi tim yang berbeda dari metode pengembangan proyek perangkat lunak yang lain. Scrum team terdiri dari role yang disederhanakan dan tidak memiliki struktur matriks (tidak ada atasan dan bawahan). Semua anggota tim memiliki kedudukan setara, hanya tugasnya saja yang berbeda.

Di dalam Scrum, pembentukan tim dapat diatur sendiri (selforganizing). Terdapat tiga role dalam scrum team, yaitu product owner, scrum master, dan development team. Scrum team dirancang untuk memastikan setiap role dapat bekerja sesuai dengan tugas yang dibutuhkan sehingga membuat scrum berfungsi secara efisien untuk mencegah terjadinya masalah (Cole & Scotcher, 2015).

1. Product Owner

Product owner adalah seseorang yang bertanggung jawab dalam mengelola ruang lingkup, skala, dan arah proyek yang sedang dibangun. Product owner akan mempresentasikan kebutuhan organisasi dalam user story/product backlog yang diberikan kepada development team.

2. Scrum Master

Scrum master adalah kepala penyelenggara sebuah proyek yang bertugas untuk membagi pekerjaan kepada development team sesuai dengan user story/product backlog yang diinginkan oleh product owner. Selain itu, scrum master juga mengorganisir development team dalam memastikan scrum event berjalan sesuai dengan kebutuhan dan tepat waktu dengan tujuan untuk menghasilkan produk yang diharapkan oleh product owner.

3. Development Team

Development team terdiri dari satu atau lebih professional yang bekerja untuk menyelesaikan user story/product backlog yang diinginkan oleh product owner. Setiap anggota tim memiliki keterampilan invidu yang dibutuhkan juga untuk membantu anggota tim lainnya sehingga pekerjaan selesai dengan tepat waktu. Development team dapat terdiri dari Programmer, System analyst, Quality Control, dsb.

Scrum Event

Scrum event dilakukan untuk memeriksa dan menyesuaikan pekerjaan agar sesuai dengan struktur, rancangan, dan batasan waktu yang telah ditetapkan. Terdapat lima kegiatan dalam scrum event, yaitu project initiation, sprint planning, daily scrum, sprint review, dan sprint retrospective (Cole & Scotcher, 2015).

Project initiation dilaksanakan untuk memastikan kebutuhan user atau product owner benar-benar diketahui, difasilitasi, serta disesuaikan dengan kebutuhan teknis pengerjaan. Terkadang tahapan event ini juga disebut dengan grooming. Analoginya, kita berdandan sebaik mungkin sebelum akhirnya terjun ke lokasi syuting sebenarnya. Selanjutnya, beberapa terminologi dan scrum event lain yang terdapat pada Scrum akan dijelaskan pada pemaparan di bawah ini.

1. Sprint

Sprint adalah pekerjaan yang harus diselesaikan antara satu hingga empat minggu. Pelaksanaan sprint pertama akan dilakukan sesuai dengan rencana yang telah disepakati. Selama sprint berlangsung, tidak diperbolehkan adanya perubahan yang dapat mempengaruhi hasil dari sprint. Setelah sprint selesai, maka akan dilanjutkan ke sprint selanjutnya sesuai dengan perencanaan yang akan kembali dibuat pada event sprint planning.

Jika dibutuhkan perubahan atau terdapat pengerjaan yang kurang tepat, maka perubahan tersebut dapat diserap pada sprint selanjutnya. Inilah salah satu metrik yang menjadi kunci dalam adaptasi perubahan pada Scrum. Perubahan tidak hanya bisa diserap setelah setiap urutan pekerjaan selesai seperti pada waterfall, namun selalu dapat diserap pada setiap sprint yang akan selalu disusun kembali rencananya dalam sprint planning.

2. Sprint Planning

Sprint planning merupakan perencanaan yang dilakukan di setiap sprint baru dan dihadiri oleh seluruh scrum team. Perencanaan ini akan mendiskusikan terkait pembagian pekerjaan selama satu periode sprint sesuai dengan product backlog (fitur yang dibutuhkan) yang telah disepakati oleh scrum team. Sprint planning akan menghasilkan rencana pembagian kerja product backlog item sesuai dengan prioritas pada setiap periode sprint.

3. Daily Scrum

Daily scrum adalah pertemuan kecil yang dilakukan oleh development team dengan waktu tidak lebih dari 15 menit yang dilakukan selama sprint berlangsung. Tujuan dilakukannya meeting ini adalah untuk memastikan anggota tim selaras dengan sprint backlog yang telah ditentukan dalam perencanaan.

Daily scrum, daily meeting, atau disebut juga dengan daily standup ini mengharuskan setiap tim untuk menjelaskan poin-poin  sebagai berikut:

  1. Apa yang telah dikerjakan?
  2. Apa yang akan dikerjakan selanjutnya?
  3. Terdapat masalah apa dalam pengerjaan proyek?

Tidak boleh ada pembahasan lain di luar tiga pertanyaan tersebut. Jika dibutuhkan pembahasan panjang dari beberapa poin tersebut, maka harus dibahas di luar Daily Scrum.

4. Sprint Review

Setelah sprint selesai, maka akan dilakukan sprint review. Sprint review bertujuan untuk memberikan kesempatan bagi development team dalam menunjukkan hasil kerja kepada product owner. Biasanya, dilakukan demonstrasi secara langsung yang dilengkapi laporan tertulis, maupun hanya berupa demo fitur yang telah diselesaikan.

Dari hasil demonstrasi, product owner menentukan pekerjaan dari product backlog sudah benar atau tidak. Selanjutnya product owner dapat memberikan feedback terhadap bagian yang kurang sesuai dengan kebutuhan. Setelah itu, bagian yang kurang dapat dimasukkan dalam sprint planning berikutnya.

5. Sprint Retrospective

Sprint retrospective atau sering disingkat menjadi retro dilakukan setelah sprint review selesai dan sebelum sprint planning. Sprint retrospective adalah tahap evaluasi yang dilakukan development team dalam kurangnya fitur yang belum selesai sehingga dapat meningkatkan performa tim pada sprint selanjutnya.

Scrum Artefact

Scrum artefact adalah barang atau item yang dibutuhkan oleh scrum team untuk melakukan pengerjaan proyek. Terdapat tiga artifak dalam scrum yakni product backlog, sprint backlog, dan increment (Cole & Scotcher, 2015).

1. Product Backlog

Artefact berupa Product Backlog adalah daftar fitur yang dibutuhkan untuk menghasilkan produk akhir. Product backlog tidak hanya berisi fitur saja, namun kebutuhan non-fungsional juga dapat dimasukkan ke dalam product backlog. Selain itu, product backlog juga dapat berubah dan berkembang selama sprint berlangsung.

2. Sprint Backlog

Sprint backlog merupakan daftar yang diprioritaskan dari fitur-fitur berdasarkan kesepakatan oleh scrum team. Sprint backlog biasanya akan menjadi pembahasan utama saat daily scrum berdasarkan tiga pertanyaan utamanya (what has been done, what to do next, problems).

3. Increment

Increment merupakan hasil sementara berupa bagian dari produk yang telah dikerjakan dari product backlog item pada setiap sprint. Increment akan selalu berkembang dari setiap hasil sprint yang telah dikerjakan sehingga produk akan lebih matang atau progres semakin meningkat dari sebelumnya.

User Story

Setelah kebutuhan sistem dikumpulkan dan dianalisis, maka kebutuhan sistem harus dideskripsikan. Salah satu cara mendeskripsikannya yaitu menggunakan user story yaitu dokumentasi dari kebutuhan sistem dalam agile development.

Adapun struktur penulisan user story yaitu:

“As a [aktor]”, “I want to [Saya ingin ..]”, “So that I can [Sehingga dapat …]”.

Contohnya:

“Sebagai Administrator, “Saya ingin dapat mengklik tombol edit di sebelah kanan tabel informasi”, “Sehingga saya dapat mengubah informasi tersebut melalui pop-up form yang muncul ketika tombol edit diklik”

Struktur ini dapat diartikan sebagai deskripsi dari satu fitur atau lebih dalam pengembangan sistem (Mantik, 2019).

Selain itu juga untuk dapat melakukan pembagian dalam pengerjaan fitur-fitur yang telah dijabarkan pada user story maka perlu menambahkan story points. Salah satu cara untuk menentukan story points adalah menggunakan bilangan Fibonacci.

Penentuan story point dilakukan dari angka 1 hingga 100, dimulai dari deskripsi task/fitur tersebut kecil hingga besar (Visual Paradigm, 2021). Misalnya, kita dapat menggunakan story point dimulai dari angka 1 hingga 3. Angka 1 dideskripsikan sebagai pengerjaan task kecil, angka 2 dideskripsikan sebagai pengerjaan task sedang, dan angka 3 dideskripsikan sebagai pengerjaan task besar.

Penentuan story poin melalui T-shirt sizing juga dapat digunakan. Misalnya S untuk task mudah, M untuk task sedang, XL untuk task sulit.

Kelebihan Scrum

Rasanya sudah tidak usah dibahas lagi mengenai berbagai kelebihan dari Scrum. Kelebihan scrum meliputi:

  1. pengerjaan proyek yang lebih efisien dan efektif karena meningkatnya visibilitas progres dari pengerjaan proyek,
  2. alat evaluasi yang kuat untuk membantu membuat keputusan selanjutnya dalam pengerjaan proyek,
  3. tahapan yang cukup sederhana dan mendukung seluruh kebutuhan stakeholder proyek (product owner & development team),
  4. hingga meninggalkan jejak (artifak) yang membantu pengerjaan proyek yang sistematis namun tetap dinamis sehingga mampu meresap perubahan dengan cepat.

Apa yang harus lebih banyak dibahas pada metode scrum justru adalah kelemahannya. Hal ini karena kini,  scrum seakan menjadi satu-satunya kerangka kerja yang viabel tanpa kekurangan apa pun. Oleh karena itu, berikut beberapa uraian mengenai kelemahan atau kekurangan scrum.

Kekurangan Scrum

Dari pemaparan mengenai Scrum di atas, rasanya dapat kita sadari bahwa kerangka kerja ini menggunakan banyak sekali proses dan alat evaluasi yang terlibat. Padahal, metode ini mengibarkan prinsip Agile. Hal itu sangat kontradiktif dari salah satu nilai utama dari Agile, yakni Interaksi dan Individu lebih penting daripada proses dan alat.

Agile seharusnya membuat proses pengembangan perangkat lunak menjadi lebih memanusia baik secara individu, maupun secara sosial. Sayangnya, kerangka kerja scrum tampak kurang menyokongnya dengan baik. Mungkin beberapa tools dan proses yang digunakan dirancang untuk menyokong interaksi, misalnya daily scrum meeting. Namun karena dilakukan setiap hari, ada kemungkinan event ini akan membuat tim jenuh. Belum lagi aturan mainnya yang cukup ketat juga mengurangi keindividuan setiap tim.

Kelemahan terbesar dari Scrum adalah burnout pada anggota tim. Sprint memang tidak harus selalu terpenuhi, namun ketika metrik seperti itu ditetapkan, time box sprint akan terus menempel di kepala pelakunya. Saat setiap sprint gagal dipenuhi (sering terjadi dalam Scrum) mental tim akan turun karena timbulnya rasa bersalah. Hal itu akan membuat ia melakukan segala upaya untuk memenuhinya, sehingga menyebabkan kelelahan. Efek jangka panjangnya adalah meningkatnya tingkat stres pekerjaan.

Tentunya hal tersebut dapat menjadi kelebihan dari Scrum. Bahkan, mungkin hal inilah yang selama ini membuat Scrum berhasil. Dalam keadaan tertekan, tingkat produktivitas tim akan menjadi lebih tinggi. Namun alangkah baiknya jika tekanan itu tetap terkendali dan tidak berlebihan. Seperti video game, jika permainan terlalu mudah maka pemain akan mudah bosan, namun ketika permainan terlalu sulit maka pemain juga akan frustrasi dan berhenti memainkannya.

Banyak yang menganggap bahwa kelemahan ini hanya terjadi ketika Scrum tidak diaplikasikan dengan tepat. Namun, kenyataannya ketidaktepatan pengaplikasian Scrum ini sangatlah sering terjadi. Jika memang Scrum sesempurna itu, seharusnya kerangka kerja ini juga mudah digunakan sehingga tidak sering terjadi kesalahan dalam pengaplikasiannya bukan? Intinya, di dunia ini tidak ada yang sempurna, termasuk Scrum.

Solusi Kekurangan Scrum

Sebetulnya hal ini juga tidak membuat Scrum menjadi kerangka kerja yang buruk. Hanya saja kita harus mewaspadai dampak buruk atau kelemahan dari Scrum. Dalam sebagian kasus, misalnya dalam proyek skala kecil, kemungkinan lebih baik digunakan metode lain yang lebih ringan seperti hanya menggunakan Kanban Board saja (seperti Trello).

Selain itu, modifikasi ringan terhadap Scrum yang disesuaikan dengan keadaan tim akan membuat metode ini lebih efektif serta mengurangi kelemahannya. Misalnya, jika daily meeting tidak bekerja sebagai mana mestinya, maka hapuskan saja, atau kurangi intensitasnya. Cara lainnya adalah dengan membuat suasana meeting lebih kasual. Intinya, cari cara lain untuk memicu interaksi dengan lebih baik dan sesuai dengan keadaan tim.

Perlu dilakukan penelitian lebih lanjut mengenai hal ini. Sayangnya, Scrum saat ini telah menjadi standar industri pengembangan aplikasi. Sehingga banyak pihak yang merasa tidak profesional atau tidak kompeten jika tidak mampu menerapkannya. Padahal keadaan setiap perusahaan dan varian proyek yang dikerjakannya amatlah berbeda.

Belum lagi proses dan tools yang ada di dalamnya dianggap sangat superior dan tidak mungkin salah, sehingga upaya yang selalu dilakukan adalah lagi-lagi memberikan pengarahan dan pelatihan untuk melaksanakannya dengan tepat. Berbagai terminologi Scrum harus dihapalkan, dicermati, dipahami, serta dilakukan dengan tepat. Berbagai hal kompleks tersebut justru hanya akan memberikan beban tambahan dan berpotensi menimbulkan hambatan yang tidak diperlukan.

Dalam bidang pendidikan, sudah sangat lazim dilakukan penelitian yang mencoba untuk melihat tingkat efektivitas suatu metode pembelajaran atau pengajaran. Penelitian mengenai pengembangan atau modifikasi terhadap suatu metode pembelajaran juga menjadi salah satu primadonanya. Hasilnya, pendidik dapat menerapkan metode pembelajaran yang lebih sesuai untuk kebutuhan peserta didik.

Oleh karena itu, tidak ada salahnya jika kita juga mencoba melakukannya pada metode Scrum. Hal tersebut tentunya ditujukan untuk membuat Scrum menjadi lebih aplikatif pada kondisi dan kebutuhan dari masing-masing perusahaan serta tim pengembang perangkat lunak.

Referensi

  1. Adi, P., & Permana, G. (2015). Scrum Method Implementation in a Software Development Project Management. (IJACSA) International Journal of Advanced Computer Science And Applications, 6(9), 198–204.
  2. Cole, R., & Scotcher, E. (2015). Brilliant Agile Project Management. Harlow: Pearson.
  3. Mantik, H. (2019). Mengintip dasar pengembangan sistem informasi dengan metode Agile. Why Agile Rocks? Jurnal Sistem Informasi, 76-82.
  4. Matharu, G. S., Mishra, A., Singh, H., & Upadhyay, P. (2015). Empirical Study of Agile Software Development Methodologies: A Comparative Analysis. ACM SIGSOFT Software Engineering Notes, 40(1), 1–6.
  5. The Standish Group International, I. (2015). CHAOS REPORT 2015. Retrieved from https://www.standishgroup.com/sample_research_files/CHAOSReport2015-Final.pdf
  6. Visual Paradigm. (2021, Juli 17). What is Planning Poker in Agile? Retrieved from Visual Paradgim: https://www.visual-paradigm.com/scrum/what-is-agileplanning-poker/

Leave a comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *