29 poin oleh GN⁺ 2025-12-06 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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.

Belum ada komentar.