Creating Software that Preserves Choice.
A concept I’ve been trying to put a name to is software application architectures that inherently lend themselves to a lower rate of technical debt accumulation than others. This post is my first attempt to do that.
Technical debt is a term that is used frequently in our industry and while its meaning is commonly understood among experienced technologists, it’s not clearly defined.
In the abstract:
- Technical debt is cost incurred from software design and implementation choices made in the past;
- Interest on that technical debt accrues and compounds as a result of subsequent decisions that are layered onto the original set of choices; and
- The full cost of technical debt is not known until, at some point in the future, there is a need to modify the software system which forces the development team to modify the original choices built into the existing system and calculate the level of effort needed to change them safely.