Uncle Bob menyebut dirinya adalah seorang Programmer dengan pengalaman sekitar 50 tahun. Sudah merilis banyak buku yang menjadi panutan banyak Programmer, Software Developer dan Software Engineer. Namun beliau masih menyebut dirinya sendiri seorang programmer, padahal menurut saya sudah bisa disebut Distinguished Engineer.
Saat ini Uncle Bob sedang menulis buku tentang Test-Driven Development, kemungkinan judulnya Clean Craftmanship tapi juga bisa lain, yang pasti kata awalnya akan menggunakan kata “Clean” :-), mengikuti seri-seri buku sebelumnya yang semuanya berawalan kata “Clean”.
Di video kali ini Uncle Bob menjawab pertanyaan tentang bagaimana IT dan bisnis bisa sejalan serta memiliki nilai. Ada gap besar antara bisnis dan IT, bisnis tidak mengerti programmer, dan programmer biasanya tidak mengerti bisnis. Bisnis akan mencoba mempekerjakan seorang programmer dan mereka beranggapan mereka telah mempekerjakan programmer professional. Tapi banyak programmer tidak mengerti maksud dari profesional tersebut.
Uncle Bob bilang, seorang profesional, mengakui sesuatu, seperti etika atau disiplin atau sumpah. Layaknya seorang dokter yang disumpah. Tapi pada kenyataanya tidak ada seorang programmer yang mengambil sumpah atau janji untuk profesinya. Dan sebetulnya belum ada hal tersebut untuk profesi programmer. Tidak ada suatu standar yang mengarah kesana. Alhasil programmer hanya menulis kode. Dan kebanyakan programmer, menulis kode dengan kualitas minimum, agar cepat selesai dan bisa segera pulang.
Menurut Uncle Bob, programmer seperti itu adalah bukan programmer profesional yang membangun sistem. Dan orang bisnis tidak paham akan hal-hal tersebut. Jika bisnis dapat melihat hal tersebut, apa yang dilakukan oleh programmer, maka bisa jadi banyak para eksekutif akan ketakutan. Karena mereka melihat kualitas IT yang menjalankan bisnis mereka. Dan hal itu bisa bisa menjadi masalah besar.
Contoh kasus besar yang pernah terjadi adalah kecelakaan mobil Toyota yang disebabkan oleh bug dalam kode sehingga mobil melakukan akselerasi tanpa kontrol dan rem menjadi tidak berfungsi. Ada puluhan korban jiwa dalam insiden tersebut. Baca lebih lanjut beritanya disini
Dan melalui insiden tersebut, Uncle Bob bilang bahwa programmer saat ini dalam posisi yang bisa merenggut nyawa orang dan hal ini tidak ada pada 30 tahun yang lalu.
Melihat contoh kasus tersebut, itu adalah critical system. Yang memang tidak semua programmer terlibat langsung dengan proyek semacam itu. Namun ada baiknya kita mengetahui bagaimana bidang Software Engineering mengantisipasi hal tersebut. Baca lebih lanjut disini Software Engineering for Critical System.
Selain itu penyebab sulitnya IT align dengan bisnis adalah dalam hal mengejar rilis fitur yang diperlukan oleh bisnis. Sedangkan produktifitas dari programmer sering kali menurun secara eksponensial seiring waktu dikarenakan banyak hal dan salah satunya adalah disiplin atau profesionalism. Uncle Bob bilang solusinya adalah “hiring better“.
Saat ini ada sekitar lebih dari seratus juta programmer di seluruh dunia, dan setiap 5 tahun jumlah programmer itu meningkat dua kali lipat. Jika diperhatikan peningkatan tersebut, maka pengalaman programmer rata-rata adalah 5 tahun. Belum sampai ke tahap selanjutnya dalam bidang IT, banyak karir mereka sudah berubah masuk ke tahap manajerial.
Jadi ada berapa sebenarnya jumlah programmer yang memiliki pengalaman lebih dari 10 tahun? bisa jadi jauh lebih sedikit dari total programmer yang ada. Sedangkan dalam dunia bisnis yang ritme nya dinamis dan cepat, tidak mengenal kondisi tersebut. Alhasil ekspektasi bisnis dan IT sering kali miss align, sehingga bisnis melihat dan merasa hal tersebut tidak sesuai scope, tidak sesuai budget, dan tidak sesuai jadwal.
Yang saya tangkap dari Uncle Bob adalah akan lebih bijak jika dalam suatu organisasi, bukan sekedar ada banyak programmer yang harus dimiliki tapi perhatikan komposisinya. Komposisinya adalah, 10 senior programmer yang memiliki pengalaman lebih dari 10 tahun dengan 50 programmer yang memiliki pengalaman dibawah 5 tahun.
Artinya jika ada 50 programmer junior atau pengalaman dibawah 5 tahun, maka sebaiknya ada 10 orang senior yang memiliki pengalaman lebih dari 10 tahun atau bahkan lebih untuk mengimbanginya. Sehingga meningkatkan prosentase penyelesaian tugas yang lebih cepat dan tepat. Secara rasio artinya satu banding lima (1:5). Jika ada 5 programmer maka harus ada 1 senior programmer.
Berikut ini adalah video dengan keterangan yang lebih lengkap dari Uncle Bob.
Photo by JESHOOTS.COM on Unsplash