Mechanical Scrum dan Technical Debt

Menuju Professional Scrum dan Quality first

Seorang Scrum Master baru-baru ini mengirim pesan ke saya lewat WhatsApp mengenai mengenai dua insiden keamanan web yang menimpa dua startup yang cukup terkenal dalam minggu yang sama:

  1. Celah Keamanan Pada API Terungkap, GO-JEK Nyatakan Semua Isu Telah Beres
  2. Kasus Pembobolan Situs Tiket Online, Ini Penjelasan Citilink

Pembicaraan lalu berkembang dan pertanyaan pun muncul, kedua perusahaan yang diberitakan ini adalah perusahaan yang cukup dikenal menggunakan Scrum dan cukup sering membicarakan mengenai Scrum di sosial media maupun di acara-acara komunitas, lalu kenapa mereka masih memiliki masalah seputar kualitas? Bukankah dengan Scrum seharusnya kualitas produk menjadi lebih baik? Terus terang saya tidak bisa menjawab pertanyaan tersebut karena saya juga tidak tahu jenis Scrum yang digunakan di kedua perusahaan tersebut.

Menggunakan Scrum saja belum tentu menghasilkan software berkualitas tinggi. Kerangka kerja Scrum seharusnya menyediakan kesempatan bagi perusahaan untuk selalu meningkatkan kualitas dari softwarenya. Namun outcome dari Scrum sangat bergantung bagaimana Scrum digunakan di perusahaan tersebut. Secara umum ada dua macam penggunaan Scrum di industri software saat ini:

  1. Mechanical Scrum.
  2. Professional Scrum.

Setiap perusahaan belakangan ini bisa dengan mudah mengatakan kalau mereka telah menggunakan Scrum atau sudah Agile hanya supaya mereka tidak ketinggalan tren. Pertanyaannya adalah, apakah Scrum yang dilakukan di perusahaan adalah Mechanical Scrum atau Professional Scrum?

Mechanical Scrum / Flaccid Scrum

Di tahun 2009, Martin Fowler, salah satu dari Agile Manifesto signatory mendeskripsikan mengenai Flaccid Scrum. Saya pribadi lebih suka menyebutnya Mechanical Scrum. Flaccid Scrum atau Mechanical Scrum adalah Scrum, namun Scrum yang hanya fokus di level permukaan saja. Mechanical Scrum sangat mudah untuk dilakukan karena Mechanical Scrum hanya fokus pada ritual-ritual yang kelihatan saja. Mechanical Scrum hanya fokus pada aturan main dan mekanik Scrum saja. Hanya karena saya tahu aturan main sepakbola, belum tentu saya bisa memenangkan pertandingan sepakbola. Hanya karena saya tahu menyetir mobil, bukan berarti saya bisa menjadi juara di Grand Prix F1. Secara umum Mechanical Scrum hanya fokus pada:

  • Menjalani event Scrum hanya sebagai ritual dan compliance. Tidak jarang hanya menjalani Daily Scrum saja. Kalau sudah menjalani Daily Scrum berarti sudah menggunakan Scrum. Anggapannya Scrum adalah hanya sebatas Daily Scrum. Itupun Daily Scrum digunakan hanya sebagai status update untuk manajer proyek. Fokusnya adalah: yang penting ritual dalam Scrum semuanya sudah dijalankan.
  • Penggunaan tools seperti JIRA. Persepsinya kalau sudah menggunakan JIRA berarti sudah menggunakan Scrum. Scrum tidak lebih dari penggunaan JIRA.
  • Pemahaman kalau Scrum hanya metodologi manajemen proyek. Sprint hanya digunakan sebagai mini-deadline / mini-waterfall untuk mengkontrol timeline dan untuk micromanagement. Ruang lingkup pekerjaan setiap Sprint sudah dikunci mati. Dalam Mechanical Scrum fokusnya adalah agar sekedar deliver lebih ‘cepet’. Itu saja.
  • Hanya memetakan cara kerja lama ke Scrum:
    Scrum Master → Manajer Proyek atau Technical Leader
    Product Owner → Business Analyst 
    Daily Scrum → Daily status update meeting
    Product Backlog → User requirement
    Sprint Review → User Acceptance Test

Mechanical Scrum yang membuat software developer menganggap Scrum hanya membuang waktu mereka. Mechanical Scrum yang membuat banyak software developer di Indonesia saati ini benci dengan Scrum karena Scrum hanya membuat hidup mereka menjadi lebih susah daripada di era Waterfall. Mechanical Scrum yang membuat software developer masih harus di-manage oleh manajer proyek. Mechanical Scrum yang membuat software developer menganggap Scrum hanyalah perubahan label-label tetapi tidak ada perubahan perilaku dari pimpinan perusahaan maupun manajemen.

Mechanical Scrum yang membuat kostumer dan manajemen mengira Scrum tidak lebih dari cowboy coding atau gaya urakan dalam mengembangkan software. Mechanical Scrum adalah yang membuat kostumer dan manajemen tidak percaya dengan Scrum dan menyalahkan Scrum ketika kualitas software begitu buruk. Mechanical Scrum yang membuat banyak perusahaan yang kembali ke Waterfall lagi. Mechanical Scrum yang menyebabkan manajer proyek mengambil alih software development lagi dan tidak percaya dengan software developer.

Namun di sisi lain Mechanical Scrum juga lebih disukai oleh manajemen karena lebih murah untuk diimplementasikan dan dari permukaan tidak berbeda dengan mini-waterfall. Mechanical Scrum tidak memerlukan perubahan fundamental berpikir. Bahkan manajemen bisa menggunakan Mechanical Scrum sebagai alat untuk micromanagement.

technical debt (n): During the planning or execution of a software project, decisions are made to defer necessary work.

Mechanical Scrum membuat organisasi memiliki banyak technical debt di softwarenya. Mechanical Scrum akan kelihatan cepat di beberapa Sprint awal. Namun Mechanical Scrum tidak akan membuat organisasi semakin Agile dan sustainable dalam jangka panjang karena banyaknya dan semakin menumpuknya technical debt.

Berdasarkan observasi, 95% pengguna Scrum di Indonesia saat ini masih menggunakan Mechanical Scrum dan diskusi di komunitas Agile dan Scrum pun masih seputar mekanik Scrum. Hal ini sangat lumrah karena penggunaan Mechanical Scrum jauh lebih mudah, semudah dengan mengganti label-label dari metodologi Waterfall dengan label-label dari Scrum. Namun perusahaan yang menggunakan Mechanical Scrum tidak jarang harus kembali lagi ke metodologi Waterfall. Mechanical Scrum is hurting the software industry right now.

Professional Scrum

Professional Scrum berbeda dengan Mechanical Scrum. Professional Scrum mengambil sudut pandang yang jauh lebih dalam dibandingkan Mechanical Scrum. Professional Scrum tidak memandang Scrum sebagai metodologi manajemen proyek. Secara umum Professional Scrum fokus pada professionalisme dalam mengembangkan software daripada mekanik Scrum itu sendiri. Professional Scrum fokus pada:

  1. People development. Kata ‘people’ muncul sebanyak 10x di dalam Scrum Guide. People adalah aspek paling penting dalam Professional Scrum. Professional Scrum tidak fokus pada menghabiskan waktu untuk memasukkan data dan mengkostumisasi JIRA. Scrum starts and ends with people. Coaching people and servant leadership is the heartbeat of Professional Scrum.
  2. Collaboration. Kata ‘collaborate’ muncul sebanyak 8x di dalam Scrum Guide. Artinya Professional Scrum tidak mengenal silo, semua pihak dalam organisasi bergerak menuju satu tujuan. Tidak ada lagi pembuatan keputusan berdasarkan kekuatan politik tertinggi. Tidak ada lagi dua departemen terpisah untuk development dan Quality Assurance (QA). Software developer dan QA tidak lagi di-manage dan di-appraise oleh dua manajer yang berbeda. Tidak ada lagi yang namanya proses hand-over antar departemen dan dengan business user.
  3. Definition of Done dan technical excellence. Definition of Done (DoD) merefleksikan kualitas. Setiap Sprint Retrospectives Tim Scrum memiliki kesempatan untuk kembali melihat DoD dan meningkatkan kualitas dari software yang dikembangkan. Definition of Done memuat technical excellence sehingga software bisa selalu releasable setiap Sprint dengan kualitas tinggi. Sampel DoD Professional Scrum ada di buku yang saya tulis.
  4. Scrum core values: commitment, courage, focus, openness and respect. Karena Scrum sebenarnya hanyalah merupakan manifestasi dari kelima nilai-nilai berikut. Scrum tidak dipandang sebagai metodologi tetapi sebuah perilaku organisasi.
  5. Scrum 3 pillars: transparency, inspection and adaptation. Dimana setiap artefact dalam Scrum adalah bertujuan untuk meningkatkan transparansi dalam pengembangan software. Setiap event Scrum adalah sebuah kesempatan untuk inspection and adaptation dan continuous learning (kaizen) bukan untuk micromanagement.
Scrum Core Values

Dan kelima aspek ini semuanya tercantum di Scrum Guide. Sayangnya kebanyakan pengguna Scrum hampir tidak pernah atau tidak serius membaca Scrum Guide, mereka menginterpretasikan Scrum dengan pemahaman mereka sendiri oleh karena itu mereka terjebak dalam Mechanical Scrum atau sebatas penggunaan JIRA dan pertemuan berdiri setiap pagi. Dua orang bisa berbicara mengenai Scrum namun masing-masing bisa memiliki persepsi yang berbeda mengenai Scrum. Scrum yang sama bisa diinterpretasikan berbeda, sama halnya seperti iklan dibawah ini.

Professional Scrum is very rare in the software development ecosystem. Banyak perusahaan yang sama sekali belum melakukan lima elemen dalam Professional Scrum. Professional Scrum berada di tingkatan yang lebih tinggi dibandingkan Mechanical Scrum. Bagi beberapa orang Professional Scrum dirasakan terlalu abstrak karena lebih fokus pada values & principles. Professional Scrum tidaklah mudah untuk dilakukan di setiap perusahaan karena akan melibatkan perubahan fundamental berpikir di level perusahaan sampai ke senior management bukan hanya di level tim saja. Namun professional Scrum lebih bernilai tinggi untuk perusahaan dan untuk kostumer dalam jangka panjang. Professional Scrum adalah sebuah perjalanan panjang menuju Agility. Professional Scrum berisi orang-orang yang professional yang melihat Scrum dari sudut pandang yang berbeda. Professional Scrum membutuhkan orang-orang berkualifikasi yang memiliki pemahaman yang mendalam mengenai Scrum bukan hanya di level permukaan saja. Professional Scrum yang membuat kostumer dan manajemen mau berkolaborasi dan semakin percaya lagi dengan software developer.


Penggunaan Scrum seharusnya fokus pada aspek profesionalisme daripada aspek mekanik saja. Profesionalisme adalah aspek yang hilang dalam ekosistem software development saat ini sehingga menyebabkan software developer dipandang tidak lebih dari kuli koding, profesi kasta rendah atau tidak jarang hanya dipandang sebagai bonekanya para manajer. Kalau memang Indonesia ingin mengembangkan industri software sebagai tulang punggung ekonomi nasional dan bercita-cita untuk memiliki 1000 startup, profesionalisme dalam software development harus lebih ditekankan. Mahasiswa juga sudah harus mulai diajarkan sejak dini bagaimana menjadi professional software developer dan didoktrin kalau profesi software developer dalam 10–20 tahun ke depan akan lebih bernilai dibandingkan profesi manajer proyek ataupun business analyst.

Referensi:

Baca juga:

Suka membaca artikel ini? Jangan lupa untuk menekan tombol 💚 di bawah. Bersama kita dapat merubah ekosistem software development di Indonesia. Pekerjaan rumah untuk meningkatkan pamor software developer masih panjang. Kita hanya perlu sedikit lebih kompak dan lebih berisik dalam menyuarakan isi hati dan pikiran kita. Sekedar informasi, artikel ini adalah sekelumit pemikiran saya untuk buku saya yang kedua.


Belum membaca buku Scrum saya yang pertama? Dapatkan Buku Manajemen Modern dengan Scrum di toko buku terdekat untuk mendapatkan gambaran lebih menyeluruh mengenai Scrum.