18F/18f.gsa.gov

View on GitHub
_posts/2015-08-07-technical-debt-1.md

Summary

Maintainability
Test Coverage
---
title: "Don’t underestimate the danger of technical debt"
date: 2015-08-07
layout: post
authors:
- chrisc
- sarah

tags:
- best practices
- technical debt

excerpt: "Technical debt is a financial metaphor that software developers use to talk to managers about the “hidden” costs associated with a system’s architecture and codebase. Over a series of upcoming posts, we’re going to explain what technical
debt is, how to manage it, and some ways to prevent accumulating it."
description: "Technical debt is a financial metaphor that software developers use to talk to managers about the “hidden” costs associated with a system’s architecture and codebase. Over a series of upcoming posts, we’re going to explain what technical
debt is, how to manage it, and some ways to prevent accumulating it."
image: /assets/blog/technical-debt/iceberg-noaa.jpg
---

*Image source:* [**National Oceanic and Atmospheric
Administration**](https://www.flickr.com/photos/usoceangov/8290528771/)

Technical debt is a financial metaphor that software developers use to
talk to managers about the “hidden” costs associated with a system’s
architecture and codebase (for example, changing requirements addressed
with a “quick fix,” bugs deferred in favor of new development, design
weaknesses, or aging third-party libraries). Technical debt costs
organizations time as well as money. [Recent
studies](http://www.castsoftware.com/research-labs/technical-debt-estimation),
seeking to estimate the financial impact, suggest that an average
technical debt of $3.61 exists per line of software code, or an average
of $1.08 million per system. In 2010, [Gartner
estimated](http://www.gartner.com/newsroom/id/1439513) that the total
amount of technical debt worldwide could reach $1 trillion this year.
Given that the federal government builds and maintains a lot of
software, it’s safe to assume that it carries a fair share of that debt.

## Why care about the government’s technical debt?

Technical debt can make software resistant and costly to change, and
prone to outages, intermittent failures, and even [security
breaches](http://www.techrepublic.com/blog/it-security/be-careful-not-to-incur-security-debt/).

For users, this means fixes or features they need take more time to
implement. For taxpayers, this means inefficient use of their
hard-earned dollars. For program managers, this means greater risk that
their debt-ridden systems become so untenable that they have to be
ditched and rebuilt from scratch. For chief information officers, this
means less budget and resource capacity to work on innovative projects
that add value to their business partners. And for agency executives,
this means systems that can’t be easily adapted to deliver new business
capabilities, nor relied upon to support critical mission operations.

As stewards of taxpayer dollars and servants to the needs of the public,
it's our responsibility to avoid such issues by understanding what
technical debt is and how to manage it.

Over a series of upcoming posts, we’re going to explain [what technical
debt is](https://18f.gsa.gov/2015/09/04/what-is-technical-debt/) (and why it’s not all bad), [how to manage it](https://18f.gsa.gov/2015/10/05/managing-technical-debt/), and [some ways to
prevent accumulating it](https://18f.gsa.gov/2015/10/22/preventing-technical-debt/). At the end of the series, you’ll have a clear
understanding of technical debt and how to handle it.