3 poin oleh GN⁺ 2024-10-01 | 1 komentar | Bagikan ke WhatsApp

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::string di C++ dan kelas AString milik 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 lua di 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

 
GN⁺ 2024-10-01
Opini Hacker News
  • Antarmuka adalah salah satu elemen terpenting dalam desain dan harus dipertimbangkan dengan saksama

    • Antarmuka yang indah mudah diperbaiki seiring waktu jika diberi kesempatan, tetapi kebalikannya jarang terjadi
  • Utang pendiri adalah utang yang dibuat para pendiri untuk menghadirkan teknologi yang cepat dan baik

    • Dokumen pendirian di banyak negara juga termasuk dalam kategori ini
  • Mengejutkan bahwa tulisan ini dibuat oleh seorang engineering manager

    • Tidak ada manajer yang dipromosikan dari internal, dan ada kecenderungan untuk merekrut dari luar
  • Klasifikasi utang teknis dibahas

  • Ini artikel yang sangat baik dari sudut pandang teknis

    • "Nomenklatur" mungkin ungkapan yang lebih tepat
    • Setiap contohnya sangat memancing pemikiran
  • "Contagion" digunakan untuk menjelaskan utang teknis

    • Penjelasannya sangat bagus
  • Utang teknis didefinisikan sebagai kode atau data yang biayanya harus dibayar oleh pengembang di masa depan

    • Saat menimbulkan utang, kebutuhan langsung dan biaya masa depan harus dipertimbangkan secara seimbang
    • Ada rasa benci yang hampir patologis terhadap utang
  • Saya tidak akan menyebut "utang lokal" sebagai utang teknis dalam situasi umum

    • Akan selalu ada kekacauan di suatu tempat, dan mengenkapsulasikannya adalah hal yang umum
  • Ada pengalaman bekerja di beberapa startup

    • Pendiri sering kali mencampuradukkan ide, apa yang benar-benar diimplementasikan, dan bagian yang benar-benar berfungsi
  • Ada kalanya utang teknis sengaja diambil demi keuntungan jangka pendek

    • Keuntungan ini juga perlu dipertimbangkan sebagai sumbu lain