Ketika sebuah perusahaan mengakuisisi sebuah perusahaan, secara alami utang teknis melihat ke neraca untuk memahami nilainya. Utang keuangan, muncul sebagai pinjaman atau kewajiban yang pada akhirnya harus dilayani, adalah komponen yang relatif mudah untuk dianalisis dalam akuisisi.
Namun ada jenis utang lain yang semakin penting dalam rekayasa perangkat lunak yang tidak diperhitungkan secara formal. Utang teknis bermanifestasi sebagai kode rapuh, arsitektur usang dan sistem yang tidak mampu beradaptasi dengan teknologi dan tren yang muncul.
Dalam kedua kasus tersebut, pengakuisisi memiliki pilihan untuk dibuat, seringkali melibatkan pertukaran yang signifikan. Mereka dapat membayar “pokok” dengan membayar kembali pinjaman, atau dalam contoh utang teknis, sistem pemfaktoran ulang. Mereka dapat merestrukturisasi melalui negosiasi ulang persyaratan keuangan atau modernisasi tumpukan teknologi tambahan. Atau mereka hanya dapat menerima beban utang dan menangani konsekuensi dari berkurangnya ketangkasan keuangan atau teknis.
Seperti halnya utang finansial, utang teknikal juga memiliki cara untuk berkembang biak. Setiap jalan pintas yang diambil hari ini membuat pekerjaan di masa depan menjadi lebih lambat, lebih berisiko, dan lebih mahal, sehingga memicu tekanan untuk mengambil lebih banyak jalan pintas yang berujung pada semakin banyak kekacauan dan keterlambatan—membentuk lingkaran setan.
Karena basis kode menjadi lebih sulit untuk dikerjakan, dibutuhkan waktu lebih lama untuk menambahkan fitur baru, dan insinyur menghindari membuat pembaruan karena takut merusak sesuatu. Kode baru dilapisi di atas kode lama, dengan efek samping yang tidak dapat diprediksi. Senyawa kompleksitas. Bug berkembang biak, yang mengarah ke potensi kerentanan keamanan. Pengembang mulai merasa seperti mereka menghabiskan seluruh waktu mereka untuk memadamkan api dan membangun solusi, ketika mereka lebih suka membangun sesuatu yang baru dan menarik daripada mengasuh sistem lama.
Tingkat pergantian developer tinggi. Karyawan yang lebih akrab dengan sistem yang lebih tua pergi, mengakibatkan hilangnya pengetahuan kelembagaan. Waktu orientasi karyawan baru semakin panjang. Kualitas dokumentasi menurun, sehingga memicu pekerjaan berulang serta solusi instan yang sekadar menambal persoalan yang lebih mendasar.
Riset IBM® Institute for Business Value menunjukkan bahwa perusahaan yang sepenuhnya memperhitungkan biaya penanganan utang teknis dalam kasus bisnis AI mereka memproyeksikan ROI 29% lebih tinggi daripada yang tidak. Dan logika mengalir ke arah lain: mengabaikan utang teknis menghasilkan penurunan ROI 18% hingga 29%. Ini adalah waktu yang menarik bagi TI, karena alat pengodean AI telah mengambil alih lapangan, menjadi lebih baik dan lebih buruk. Teknologi yang sama yang dapat memperburuk utang teknis adalah alat yang ampuh untuk menyelesaikannya.
Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.
AI dapat memperkuat seberapa cepat dampak utang teknis terakumulasi karena AI berada di atas tumpukan teknologi. Misalnya, sementara model bahasa besar (LLM) memudahkan untuk menghasilkan volume besar kode dengan cepat dan fitur tanpa pemahaman yang mendalam, standar pengkodean dan ulasan kode dapat tertinggal.
Templat prompt, kerangka kerja orkestrasi AI, saluran pengambilan, dan loop agen dilapisi di atas sistem yang ada tetapi dapat mengaburkan apa yang sebenarnya dilakukan sistem, membuat debugging lebih sulit. Jadi ketika sesuatu rusak, tidak selalu jelas apa yang rusak dan mengapa. Kegagalan bisa halus dan menyebabkan perilaku tak terduga di hilir.
AI memperkenalkan kategori utang baru juga, seperti prompt rapuh yang hanya berfungsi dalam konteks tertentu, data pengambilan berkualitas rendah, dan penyimpangan model model drift. Dan karena model berubah sepanjang waktu, churn ini dapat mengakibatkan kerusakan di seluruh siklus hidup AI karena “utang kompatibilitas.” Bahkan startup yang gesit dapat mulai mengumpulkan utang teknis baru sejak hari pertama, karena seberapa cepat teknologi bergerak.
Pergerakan pembuatan kode AI dan gerakan “pengodean vibe” sering dikaitkan dengan mentalitas “model akan menanganinya”, menunda kompleksitas pada LLM. Kurangnya logika eksplisit, dibandingkan dengan pengodean tradisional, dapat menyebabkan sistem yang tidak dirancang dengan baik dan perilaku yang tidak dapat diprediksi.
Pengurangan utang teknis didasarkan pada kemampuan untuk mengukur utang. Tetapi mengukur utang teknis bisa rumit, meskipun seseorang dapat mengukur efeknya, seperti siklus pengembangan yang lebih lambat, tim pengembangan yang frustrasi, dan pengiriman yang tertunda.
Metrik pengiriman menangkap seberapa efisien tim dapat mengirimkan dan memelihara perangkat lunak. Waktu tunggu dan tingkat kegagalan perubahan menunjukkan adanya masalah dengan utang teknologi.
Ada juga indikator tingkat kode yang menawarkan pandangan lebih dekat tentang utang yang mendasarinya, seperti metrik kualitas kode. Kompleksitas siklomatik, duplikasi kode, dan keberadaan "code smells" (kode yang tidak sedap dipandang) membantu mengukur seberapa sulitnya melakukan perubahan pada basis kode, yang secara langsung berdampak pada pemeliharaannya.
Tetapi meneliti kode tidak cukup, karena sering gagal menangkap bagaimana utang teknis menghasilkan hasil yang tidak diinginkan dan pengerjaan ulang yang ekstensif. Mengukur volume bug, cacat produk, waktu orientasi, dan masalah pengembang lainnya dapat membantu menunjukkan akar masalah yang lebih dalam di TI. Berapa banyak waktu yang dihabiskan pengembang perangkat lunak untuk pemadam kebakaran dibandingkan pengiriman?
Secara historis, mengelola utang teknis telah dianggap sebagai tugas TI, sesuatu yang dilakukan di latar belakang karena kebutuhan, sering diabaikan oleh pemangku kepentingan utama. Namun di era AI, manajemen utang teknologi menjadi perhatian eksistensial, cukup signifikan untuk menarik perhatian seluruh C-suite. Menurut riset IBV, 81% eksekutif mengatakan utang teknis sudah membatasi kesuksesan AI. 69% percaya bahwa hal ini akan membuat beberapa inisiatif tidak dapat dipertahankan secara finansial.
Meskipun otomatisasi AI dapat memperburuk utang teknologi, bantuan kode yang didukung AI menjanjikan solusi yang kuat. Utang teknologi bersenyawa di bidang TI, dan memfokuskan investasi di tempat yang paling banyak terjadi penggabungan adalah pendekatan yang cerdas.
Pemfaktoran ulang kode mengubah struktur internal kode perangkat lunak tanpa mengubah perilaku eksternalnya atau memengaruhi fungsinya. Alih-alih melakukan pembersihan manual kode lama untuk menegakkan pola yang konsisten dan menyederhanakan fungsi yang terlalu kompleks, praktisi dapat menjalankan refactor yang ditargetkan di seluruh repo dan memodernisasi pola secara bertahap, mengubah proyek besar menjadi proses manajemen utang berkelanjutan, membuat pemeliharaan rutin lebih dapat diskalakan.
Salah satu sumber utang terbesar adalah kurangnya konteks. Alat dokumentasi kode AI dapat menghasilkan dokumentasi untuk sistem lama dan menjelaskan fungsi apa yang sebenarnya dilakukan. Mereka dapat menghapus duplikat kode redundan dan menyarankan peluang konsolidasi. Hal ini mengurangi waktu orientasi dan menyederhanakan proses pengembangan, serta mengatasi kekhawatiran akan merusak sesuatu saat menyentuh kode lama.
Pengujian otomatis dapat membantu pengembang dengan cepat menemukan dan menghilangkan bug tersembunyi dan memodifikasi kode lama dengan aman. Ini dapat mempercepat kemajuan dalam setiap sprint dan mengurangi backlog bug melalui perbaikan bug yang efisien, mencegah regresi yang mahal. Seringkali pemblokir sebenarnya bukanlah kode yang buruk, tetapi kurangnya lingkungan yang aman untuk mengubahnya. AI dapat membaca dan memahami semantik kode, menyimpulkan perilaku yang dimaksudkan dari kode atau modul tertentu, dan menghasilkan kasus uji yang bermakna berdasarkan pemahaman itu. Anggota tim dapat meminta AI untuk menghasilkan tes yang mencakup kasus tepi dan mencerminkan perilaku saat ini, menjalankan pengujian ini untuk menetapkan garis dasar, lalu memfaktorkan ulang kode dan menguji ulang.
AI dapat menganalisis sistem pada tingkat tinggi, mengidentifikasi komponen dan dependensi yang digabungkan, dan menyarankan jalur peningkatan yang menginformasikan peta jalan strategis yang memperhitungkan bagaimana komponen yang terhubung beroperasi. Ini sangat berguna dalam migrasi skala besar, yang bisa berisiko. AI membantu dengan menerjemahkan kode antara kerangka kerja dan bahasa, memperbarui API di banyak file dan menjaga konsistensi selama transisi.
Menurut studi IBV, pangsa AI dari pengeluaran TI diproyeksikan meningkat dari sekitar 11% menjadi lebih dari 18%. Pertumbuhan itu akan membutuhkan prioritas pengurangan utang, jika tidak investasi AI berisiko dirusak oleh biaya yang tidak muncul di neraca.
Manajemen utang teknis sering dibingkai sebagai masalah teknik, tetapi juga masalah budaya. Ini sama seperti tentang penataan tim dan menyelaraskan insentif seperti halnya membersihkan kode lama.
Di banyak organisasi, tim teknik secara implisit dihargai karena mengirimkan fitur baru dengan cepat, dan pemeliharaan jangka panjang tidak diprioritaskan. Peta jalan menekankan hasil yang terlihat bagi pengguna akhir, dan upaya untuk mengurangi utang di masa depan sering gagal bersaing dengan insentif ini. Seiring waktu, ini menciptakan ketidakseimbangan yang memberi penghargaan kepada pengembang karena memperluas utang teknis daripada membayarnya.
Tim yang terisolasi dan alur kerja yang terfragmentasi dapat memperburuk masalah. Ketika kepemilikan suatu sistem didistribusikan ke banyak pemangku kepentingan, tidak ada satu tim pun yang merasa bertanggung jawab atas kesehatannya secara keseluruhan, dan keputusan yang dibuat untuk memberikan manfaat pada satu tim sebenarnya dapat membahayakan tim lain. Keputusan jangka pendek yang dibuat oleh satu tim dapat memiliki efek yang tidak terduga dan bertahan lama. Tanpa pemilik yang jelas, tidak ada tim individu yang bertanggung jawab untuk memelihara dan mengoptimalkan sistem dari waktu ke waktu. Kode baru dengan cepat menjadi “kode lama“.
Di luar perubahan organisasi untuk mengatasi kepemilikan dan kerja sama antar tim, mengubah proyek pengurangan utang teknis menjadi proses berkelanjutan adalah pendekatan yang diperlukan. Manajemen proyek yang ketat adalah kunci untuk mengidentifikasi utang teknis dan mengatasinya dengan ulasan kode secara teratur.
AI dapat membantu melakukan sistematisasi analisis kode dengan menurunkan biaya tugas pemeliharaan rutin, memungkinkan tim untuk mengatasi utang teknis secara bertahap daripada menunda perbaikan ke masa depan yang tampaknya tidak pernah tiba, yang pada akhirnya mengarah pada kode berkualitas tinggi. Seiring waktu, keuntungan ini semakin meningkat, menghasilkan kualitas perangkat lunak yang lebih tinggi dan hasil bisnis yang lebih baik.
Percepat pengiriman perangkat lunak dengan Bob, mitra AI Anda untuk pengembangan yang aman dan memahami maksud.
Optimalkan upaya pengembangan perangkat lunak dengan alat berbasis AI tepercaya yang meminimalkan waktu yang dihabiskan untuk menulis kode, debugging, pemfaktoran ulang kode, atau penyelesaian kode dan membuat lebih banyak ruang untuk inovasi.
Ciptakan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara waktu nyata, dan nilai bisnis.