Taksonomi Utang Teknis (2018)
(technology.riotgames.com)Taksonomi Utang Teknis
Pengantar
- Bill "LtRandolph" Clark adalah manajer engineering untuk tim Champions di LoL dan memiliki ketertarikan yang mendalam pada utang teknis.
- Utang teknis didefinisikan sebagai kode atau data yang menimbulkan biaya bagi pengembang di masa depan.
- Tulisan ini memperkenalkan berbagai jenis utang teknis yang dialami di Riot serta model yang digunakan secara internal.
Metrik
Untuk mengevaluasi utang teknis, digunakan tiga sumbu utama: dampak, biaya perbaikan, dan penularan.
Dampak
- Dampak utang teknis terhadap pemain dan pengembang.
- Bug, fitur yang hilang, perilaku yang tidak terduga, dan sebagainya.
Biaya perbaikan
- Waktu dan risiko yang diperlukan untuk memperbaiki utang teknis.
- Kesalahan sederhana dapat diperbaiki dalam beberapa menit, tetapi masalah yang sudah mengakar dalam bisa memakan waktu berminggu-minggu atau berbulan-bulan.
Penularan
- Seberapa jauh utang teknis dapat menyebar.
- Mempengaruhi interaksi dengan sistem lain, penyalinan data, dan implementasi fitur baru.
Jenis utang
Utang lokal
- Masalah hanya terjadi di dalam sistem dan tidak berdampak ke luar.
- Contoh: Cataclysm milik Jarvan.
Metrik Cataclysm
- Dampak: 1 / 5
- Biaya perbaikan: 2 / 5
- Penularan: 1 / 5
Utang MacGyver
- Ketika dua sistem yang saling bertentangan digabungkan dengan solusi sementara.
- Contoh:
std::stringdi C++ dan kelasAStringmilik Riot.
Metrik std::string vs AString
- Dampak: 2 / 5
- Biaya perbaikan: 3 / 5
- Penularan: -2 / 5
Utang fondasi
- Ketika asumsi yang tertanam jauh di dalam sistem memengaruhi keseluruhan sistem.
- Contoh: penggunaan bahasa scripting
luadi LoL.
Metrik BlockBuilder Lua
- Dampak: 4 / 5
- Biaya perbaikan: 4 / 5
- Penularan: 4 / 5
Utang data
- Ketika banyak konten menumpuk di atas jenis utang teknis lain sehingga perbaikannya menjadi sulit dan berisiko.
- Contoh: bug nama parameter pada bahasa scripting BlockBuilder.
Metrik bug nama parameter
- Dampak: 2 / 5
- Biaya perbaikan: 2 / 5
- Penularan: 4 / 5
Ringkasan
- Saat mengevaluasi utang teknis, perlu mempertimbangkan dampak, biaya perbaikan, dan penularan.
- Penularan menunjukkan kemungkinan utang teknis menyebar, dan mengabaikannya dapat menjadi masalah besar.
- Utang teknis dapat diklasifikasikan menjadi empat jenis: utang lokal, utang MacGyver, utang fondasi, dan utang data.
Ringkasan GN⁺
- Tulisan ini membantu pengembang membuat keputusan yang lebih baik dengan menjelaskan jenis-jenis utang teknis dan cara mengevaluasinya.
- Dengan menekankan penularan utang teknis, tulisan ini menyoroti pentingnya menyelesaikan masalah sejak dini.
- Proyek lain dengan fungsi serupa mencakup Dota 2 dan Overwatch.
1 komentar
Opini Hacker News
Antarmuka adalah salah satu elemen terpenting dalam desain dan harus dipertimbangkan dengan saksama
Utang pendiri adalah utang yang dibuat para pendiri untuk menghadirkan teknologi yang cepat dan baik
Mengejutkan bahwa tulisan ini dibuat oleh seorang engineering manager
Klasifikasi utang teknis dibahas
Ini artikel yang sangat baik dari sudut pandang teknis
"Contagion" digunakan untuk menjelaskan utang teknis
Utang teknis didefinisikan sebagai kode atau data yang biayanya harus dibayar oleh pengembang di masa depan
Saya tidak akan menyebut "utang lokal" sebagai utang teknis dalam situasi umum
Ada pengalaman bekerja di beberapa startup
Ada kalanya utang teknis sengaja diambil demi keuntungan jangka pendek