Utang Teknis
Utang teknis adalah metafora untuk biaya masa depan yang timbul ketika pilihan desain atau implementasi jangka pendek yang cepat lebih diutamakan daripada pilihan yang lebih baik tetapi lebih lambat, mirip dengan utang finansial yang menimbulkan bunga.
Definition
Utang teknis adalah biaya tersirat di masa depan dari pengerjaan ulang tambahan yang disebabkan oleh pemilihan solusi yang mudah atau terbatas sekarang, alih-alih pendekatan yang lebih baik yang akan memakan waktu lebih lama, di mana upaya ekstra yang berkelanjutan untuk mengatasi jalan pintas tersebut adalah bunga dari utang tersebut.
Scope
Topik ini mencakup asal-usul dan definisi metafora utang teknis; perbedaan antara utang yang disengaja dan tidak disengaja, serta utang yang bijaksana dan sembrono; konsep pokok dan bunga yang diterapkan pada perangkat lunak; metode untuk mengidentifikasi, mengukur, dan memprioritaskan utang; serta strategi untuk mengelola dan melunasinya dalam proses pengembangan.
Core questions
- Apa yang termasuk utang teknis dan bagaimana perbedaannya dengan cacat biasa?
- Kapan mengambil utang merupakan pertukaran yang bijaksana daripada kecerobohan?
- Bagaimana utang teknis dapat diidentifikasi, diukur, dan diprioritaskan?
- Strategi apa yang dapat melunasi utang tanpa menghentikan pengiriman fitur?
Key theories
- Metafora utang
- Cunningham membingkai pilihan desain yang cepat sebagai pinjaman terhadap masa depan: pilihan tersebut mempercepat pengiriman sekarang tetapi menimbulkan bunga sebagai upaya tambahan pada setiap perubahan berikutnya sampai utang dilunasi melalui refactoring.
- Utang yang disengaja versus tidak disengaja
- Utang teknis dikategorikan berdasarkan niat dan kehati-hatian; utang yang disengaja dan bijaksana adalah pertukaran strategis yang disadari, sedangkan utang yang tidak disengaja atau sembrono muncul dari kurangnya keterampilan atau disiplin dan lebih berbahaya.
Clinical relevance
Utang teknis yang tidak terkelola memperlambat pengembangan, meningkatkan tingkat cacat, dan pada akhirnya dapat melumpuhkan basis kode; membuat utang terlihat dan mengelolanya secara sengaja memungkinkan tim menukar kecepatan jangka pendek dengan pemeliharaan jangka panjang secara sadar.
Evidence & guidelines
Inisiatif dan alat penelitian, termasuk pengukuran utang berbasis SQALE dan platform analisis statis, menyediakan metode untuk mengukur dan melacak utang teknis, meskipun belum ada standar tunggal yang berlaku.
History
Cunningham menciptakan metafora utang pada tahun 1992 untuk menjelaskan pertukaran desain inkremental kepada para pemangku kepentingan; konsep ini semakin dikenal pada tahun 2000-an dan 2010-an dengan pengembangan tangkas, seminar penelitian khusus, dan perangkat yang bertujuan untuk mengukur dan mengelola utang.
Debates
- Apakah utang teknis merupakan metafora yang berguna atau terlalu luas
- Beberapa berpendapat metafora utang terlalu longgar diterapkan pada setiap kekurangan kode, sehingga mengurangi maknanya, sementara yang lain menganggapnya sebagai alat komunikasi yang berharga untuk pertukaran; definisi yang tepat berusaha menjadikannya dapat ditindaklanjuti.
Key figures
- Ward Cunningham
- Philippe Kruchten
- Ipek Ozkaya
- Robert Nord
Related topics
Seminal works
- cunningham1992
- kruchten2019
- avgeriou2016
Frequently asked questions
- Apakah semua utang teknis itu buruk?
- Tidak. Seperti utang finansial, mengambil utang teknis dapat menjadi pilihan strategis yang tepat — misalnya untuk memenuhi tenggat waktu yang kritis — asalkan disengaja, terlihat, dan dilunasi; bahayanya terletak pada utang yang tidak disengaja atau tidak terkelola yang secara diam-diam mengumpulkan bunga.
- Bagaimana utang teknis berbeda dari bug?
- Bug adalah perilaku yang salah yang terlihat oleh pengguna, sedangkan utang teknis adalah kelemahan struktur internal yang tidak selalu menghasilkan keluaran yang salah tetapi meningkatkan biaya dan risiko perubahan di masa depan; keduanya dapat saling terkait tetapi merupakan perhatian yang berbeda.