A Taxonomy of Tech Debt | Riot Games Engineering


115 bookmarks. First posted by evanwalsh april 2018.


Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL . I’ve worked on several different teams on League over the…
from instapaper
9 weeks ago by artlung
A taxonomy of technical debt:
from twitter
10 weeks ago by mkb
"Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL. I’ve worked on several different teams on League over the past years, but one focus has been consistent: I’m obsessed with tech debt. I want to find it, I want to understand it, and where possible, I want to fix it.

When engineers talk about any existing piece of technology - for example League of Legends patch 8.4 - we often talk about tech debt. I define tech debt as code or data that future developers will pay a cost for. Countless blog posts, articles, and definitions have been written about this scourge of software development. This post will focus on types of tech debt I’ve seen during my time working at Riot, and a model for discussing it that we’re starting to use internally. If you only take away one lesson from this article, I hope you remember the “contagion” metric discussed below."
development  quality  software  *****  from twitter
10 weeks ago by bookmarks
RT : Excellent in-depth article on what software technical debt is
from twitter_favs
10 weeks ago by andydavies
When measuring a piece of tech debt, you can use impact (to customers and to developers), fix cost (time and risk), and contagion. I believe most developers regularly consider impact and fix cost, while I’ve rarely encountered discussions of contagion. Contagion can be a developer’s worst enemy as a problem burrows in and becomes harder and harder to dislodge. It is possible, however, to turn contagion into a weapon by making your fix more contagious than the problem.
techdebt  programming  engineering  culture  debt  software 
august 2018 by spaceninja
a highly recommended article
article  programming  best 
july 2018 by hibernationtheory
A Taxonomy of Tech Debt | Riot Games Engineering
techdebt  classification  examples 
may 2018 by kristofa
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL. I’ve worked on several different teams on League over the past years, but one focus has been consistent: I’m obsessed with tech debt. via Pocket
Pocket 
april 2018 by LaptopHeaven
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL. I’ve worked on several different teams on League over the past years, but one focus has been consistent: I’m obsessed with tech debt. I want to find it, I want to understand it, and where possible, I want to fix it.

When engineers talk about any existing piece of technology - for example League of Legends patch 8.4 - we often talk about tech debt. I define tech debt as code or data that future developers will pay a cost for. Countless blog posts, articles, and definitions have been written about this scourge of software development. This post will focus on types of tech debt I’ve seen during my time working at Riot, and a model for discussing it that we’re starting to use internally. If you only take away one lesson from this article, I hope you remember the “contagion” metric discussed below.
development  engineering  programming  software  via:jm 
april 2018 by micktwomey
impact/fix cost/contagion
software  development  programming 
april 2018 by aparrish
A Taxonomy of Tech Debt
from twitter
april 2018 by bytebot
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL . I’ve worked on several different teams on League over the…
april 2018 by sshappell
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL . I’ve worked on several different teams on League over the…
from instapaper
april 2018 by iany
This post will focus on types of tech debt I’ve seen during my time working at Riot, and a model for discussing it that we’re starting to use internally. If you only take away one lesson from this article, I hope you remember the “contagion” metric discussed below.
debt  engineering  software  development  programming 
april 2018 by my-flow
RT : "A Taxonomy of Tech Debt" via
from twitter_favs
april 2018 by gnat
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL. I’ve worked on several different teams on League over the past years, but one focus has been consistent: I’m obsessed with tech debt.
Pocket 
april 2018 by nildram
Technical debt as fungus rotting wood. How a system can be irretrievable.
s 
april 2018 by jgordon
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL . I’ve worked on several different teams on League over the…
from instapaper
april 2018 by jrheard
When measuring a piece of tech debt, you can use impact (to customers and to developers), fix cost (time and risk), and contagion. I believe most developers regularly consider impact and fix cost, while I’ve rarely encountered discussions of contagion. Contagion can be a developer’s worst enemy as a problem burrows in and becomes harder and harder to dislodge. It is possible, however, to turn contagion into a weapon by making your fix more contagious than the problem.

Working on League, most of...
computers  programming  games  debt 
april 2018 by pozorvlak
When measuring a piece of tech debt, you can use impact (to customers and to developers), fix cost (time and risk), and contagion. I believe most developers regularly consider impact and fix cost, while I’ve rarely encountered discussions of contagion. Contagion can be a developer’s worst enemy as a problem burrows in and becomes harder and harder to dislodge. It is possible, however, to turn contagion into a weapon by making your fix more contagious than the problem.
technicaldebt  programming  development 
april 2018 by sordyl
When measuring a piece of tech debt, you can use impact (to customers and to developers), fix cost (time and risk), and contagion. I believe most developers regularly consider impact and fix cost, while I’ve rarely encountered discussions of contagion. Contagion can be a developer’s worst enemy as a problem burrows in and becomes harder and harder to dislodge. It is possible, however, to turn contagion into a weapon by making your fix more contagious than the problem.

Working on League, most of the tech debt I’ve seen falls into one of the 4 categories I’ve presented here. Local debt, like a black box of gross. MacGyver debt, where 2 or more systems are duct-taped together with conversion functions. Foundational debt, when the entire structure is built on some unfortunate assumptions. Data debt, when enormous quantities of data are piled on some other type of debt, making it risky and time-consuming to fix.
technicaldebt  programming 
april 2018 by cdzombak
A Taxonomy of Tech Debt | Riot Games Engineering
from twitter
april 2018 by jackysee
METRICS
In order to make good decisions about what problems to fix now and what to fix eventually (or, realistically, never), we need a way to measure a particular piece of tech debt. I’ve identified 3 major axes to evaluate on: impact, fix cost, and contagion.

IMPACT


The first axis is the most obvious: the impact of the debt. This takes the form of player-facing issues (bugs, missing features, unexpected behavior), and developer-facing issues (slower implementation, workflow issues, random useless shit to remember). It’s worth noting that “developer” in this case can be anyone of any discipline. Some tech debt gets in the way of engineers writing new code, some blocks designers creating new scripts, some interferes with VFX artists making new particles, etc.

FIX COST


The second axis has to do with the cost to fix the tech debt. If we decide to fix an issue in our code or data, it will require someone’s measurable time to fix. If it’s a deeply rooted assumption that affects every line of code in the game, it may take weeks or months of engineering time. If it’s a dumb error in a single function, it may be fixable in a matter of minutes. Regardless of the time to implement a fix, though, we also must consider the risk of actually deploying that fix. Even a system I consider “wrong” can still be used as a tool to make a great game. If I change the way our scripting engine handles errors, or how particles compute their spawn time, that could break any of the 500+ spells on 140+ champions in the game.

CONTAGION


The third axis is something I’ve become obsessed with: contagion. If this tech debt is allowed to continue to exist, how much will it spread? That spreading can result from other systems interfacing with the afflicted system, from copy-pasting data built on top of the system, or from influencing the way other engineers will choose to implement new features.

If a piece of tech debt is well-contained, the cost to fix it later compared to now is basically identical. You can weigh how much impact it has today when determining when a fix makes sense. If, on the other hand, a piece of tech debt is highly contagious, it will steadily become harder and harder to fix. What’s particularly gross about contagious tech debt is that its impact tends to increase as more and more systems become infected by the technical compromise at its core.
quality  Architecture  Patterns 
april 2018 by janpeuker
Very sensible way to group/classify tech debt work -- we did something similar in Swrve internally at one point, but this is much more evolved
engineering  software  coding 
april 2018 by jm
Hi there. I’m Bill “LtRandolph” Clark, and I’m the engineering manager for the Champions team on LoL . I’ve worked on several different teams on League over the…
from instapaper
april 2018 by hiroprot