While “onboarding” a new developer, we get to see our software product, code, development environment and culture through a fresh pair of eyes. There’s moments of pride – when we show something to the new guy and he likes how well-executed it is – and of embarrassment. We’ve cut corners in some places, and they not only make us feel ashamed, but cost the new employee much more time (and our company, more money) to understand and use them than the good, well-documented parts.
Technical debt in software development is a common topic: When writing code, we cut corners now to deliver something faster, just like we borrow money to buy something earlier than we could normally afford. As with financial debt, technical debt isn’t bad in itself but it does accumulate, and usually needs to be repaid someday.