- Di perusahaan dengan utang teknis yang besar, inefisiensi muncul akibat duplikasi kode dan framework yang usang
- Selama proyek berjalan, hilangnya kepercayaan manajemen dan resistensi terhadap perubahan di dalam organisasi menjadi hambatan utama
- Akar penyebab utang teknis adalah faktor manusia seperti kebutuhan yang tidak jelas, jadwal yang tidak realistis, preferensi pada teknologi usang, respons jangka pendek dari manajemen, dan ego pribadi
- Bukan hanya hasil teknis, tetapi juga pengelolaan persepsi dan komunikasi sangat penting bagi keberhasilan proyek
- Selain kemampuan teknis, engineer juga harus memiliki kemampuan berkolaborasi dalam organisasi dan mengelola hubungan antarmanusia
Masalah utang teknis dan duplikasi kode
- Di sebuah perusahaan tempat penulis pernah bekerja, terdapat utang teknis yang serius: jutaan baris kode, tidak adanya unit test, dan penggunaan framework yang sudah berusia lebih dari 10 tahun
- Untuk menjalankan modul khusus Windows di Linux, mereka menanganinya dengan menyalin-tempel ratusan ribu baris kode
- Akibatnya terbentuk dua codebase, sehingga penambahan fitur dan perbaikan bug harus dilakukan secara terpisah pada masing-masing
- Situasi seperti ini menghasilkan struktur yang tidak mungkin dipelihara, dan dalam jangka panjang jurang perbedaan antar kode makin melebar
Utang teknis yang disebabkan oleh masalah manusia
- Proyek utang teknis sulit meyakinkan manajemen, dan pada akhirnya kurang menunjukkan hasil yang terlihat karena hampir tidak ada perubahan fitur
- Proyek pun tertunda dan kepercayaan manajemen hilang
- Inti persoalannya bukan teknologi, melainkan sikap manusia dan budaya organisasi
- Banyak developer menolak perubahan dan merasa nyaman dengan cara lama
- Struktur kode mencerminkan kepribadian penulisnya dan tingkat penerimaan terhadap perubahan
- Utang teknis muncul dari kebutuhan yang tidak jelas, janji yang tidak realistis, pemilihan teknologi usang, keputusan manajemen untuk menghentikan di tengah jalan, dan harga diri pribadi
- Semakin kuat kecenderungan sebuah tim untuk menghindari perubahan, semakin tercermin pula sifat penolakan perubahan itu dalam kodenya
- Banyak developer selama bertahun-tahun tetap bekerja dengan cara yang sama, bahkan sampai mengatakan, “Saya tidak ingin belajar hal baru”
- Dalam lingkungan seperti ini, kecepatan penumpukan utang lebih tinggi daripada kecepatan merapikannya, sehingga sebelum menguranginya, prioritas utamanya adalah mencegah agar utang baru tidak terus menumpuk
- Seperti analogi triage (prioritas penanganan) di IGD, dibutuhkan tahap untuk terlebih dahulu “menghentikan pendarahan”
Kesenjangan antara dunia ideal dan kenyataan
- Hampir tidak ada lingkungan ideal tempat masalah engineering bisa diselesaikan terpisah dari politik atau konteks organisasi
- Sebagian besar proyek memiliki pemangku kepentingan non-teknis
- Sikap “percaya saja karena kami sedang mengerjakannya” tidak akan berhasil
- Pengelolaan persepsi terhadap hasil sama pentingnya dengan hasil itu sendiri
- Karena pihak non-teknis tidak secara intuitif memahami perlunya merapikan utang teknis, hal itu harus dijelaskan dengan nilai kuantitatif dan nilai bisnis
- Jika kepemimpinan tidak memiliki latar belakang engineering, maka perlu menunjukkan angka dan dampak yang terlihat
- Pada akhirnya, tim terlihat produktif itu sendiri sama pentingnya dengan produktivitas yang sesungguhnya
Kemampuan yang dibutuhkan engineer senior
- Pada level senior ke atas, kemampuan kolaborasi lintas departemen dan mengelola hubungan antarmanusia adalah hal yang wajib
- Pendidikan ilmu komputer tidak mengajarkan cara menangani orang seperti kepribadian, ego, dan pengelolaan relasi
- Bahkan engineer dengan kemampuan teknis luar biasa pun bisa kesulitan menghadapi masalah yang membutuhkan perubahan berskala besar dan terorganisasi
- Produktivitas pribadi bisa tinggi, tetapi pengaruh organisasional tetap terbatas
- Peran
Heads up coder itu penting
- Sosok yang tetap mempertahankan kedalaman teknis sekaligus mampu mengenali risiko proyek lebih awal dan mengoordinasikan tim
- Alih-alih bekerja sendirian dengan cepat seperti single core, ia memimpin seluruh tim agar bekerja efisien
- Berbeda dari engineer yang murni teknis, ia mampu bergerak sambil membaca konteks organisasi dan risikonya
Ringkasan
- Di akar masalah teknis, selalu ada manusia
- Sebagian besar masalah teknis pada akhirnya bermuara pada masalah manusia, budaya, dan komunikasi
- Utang teknis bukan masalah kode, melainkan hasil dari pola perilaku dan budaya organisasi
- Untuk menyelesaikan utang teknis, penerimaan perubahan secara organisasional dan pemahaman dari kepemimpinan harus lebih dulu ada
- Dan ada masalah-masalah yang tidak bisa diselesaikan hanya dengan keunggulan teknis, yang menunggu di panggung lebih besar pada tahap lanjut karier
- Engineer senior yang sejati adalah pemimpin yang seimbang, yang mampu menangani teknologi sekaligus memahami manusia
Belum ada komentar.