Avoiding the problem of Technical Debt
Technical Debt comes from adding new features without fixing old bugs. Later, when you fix the old bugs, your new features break.
Overview
If you own a website, you’re eager to add new features. You want to constantly WOW your visitors. And your customers.
But if your site has bugs, and if you don’t fix those bugs before you add new features …
You will build your new features atop a buggy foundation. You have set yourself up for failure.
That is because later, when you finally fix those old bugs, your new features might break.
Now you have an extra set of bugs to fix.
If you had fixed the old bugs first, then you would have avoided all this.
Doing it all at once
In most bigger projects, there is a lot of competition for developer time:
- Site owners want new features
- Developers want to not change their code
- Project Managers want bug fixes
In practice, developer teams end up trying to do all three simultaneously:
- adding new features
- and trying to maintain stability
- and fixing bugs
With all that happening at once, it can be very difficult to avoid Technical Debt.
An annual cycle
It is more efficient to do things on an annual cycle.
In one year:
- Add major features in one batch
- Follow-up with bug fixes
Then in the next year:
- Add major features in one batch
- Follow-up with bug fixes
Then in the next next year:
- Add major features in one batch
- Follow-up with bug fixes
Semantic Versioning
This sort of strategy is inferred in the way software versions are numbered.
Nowadays almost all software uses Tom Preston-Werner’s Semantic Versioning strategy.
Let’s say the software version is 7.2.1.
- 7 is the major version. It changes when the entire software system has been changed.
- 2 is the minor version. It changes when new functionality has been added.
- 1 is the patch version. It changes when bug-fixes have been added.
Example
Let’s say in early 2019 you add ten new features all at once. You increment the minor version:
- From 7.2.1
- To 7.3.1 — new features early 2019
Then for the rest of 2019 you fix bugs. Each batch of bug fixes increments the patch version:
- 7.3.2 — bug fixes 2019 batch 1
- 7.3.3 — bug fixes 2019 batch 2
- 7.3.4 — bug fixes 2019 batch 3
- 7.3.5 — bug fixes 2019 batch 4
RESOURCES
Overcoming CMS Migration Technical Debt at CMS Critic
Originally published on April 23, 2019
Last updated on March 14, 2024
TOPICS: CMS, Website,