Ibrahim Haddad and Cedric Bail at the Linux Foundation have published a new whitepaper on solving technical debt with open source:
Technical debt, a term used in software development, refers to the cost of maintaining source code that was caused by a deviation from the main branch where joint development happens.
A broader interpretation of what constitutes technical debt is proprietary code by itself:
- A single organization has developed it.
- It is source code that the organization alone needs to carry and maintain.
- In some cases, the organization depends on a partner’s ability to maintain the code and carry that said debt.
The following symptoms can identify technical debt:
- Slower release cadence Time increases between the delivery of new features
- Increased onboarding time for new developers Onboarding new developers become highly involved due to code complexity where only insider developers are familiar with the codebase. The second manifestation of this symptom is the difficulty in retaining developers or hiring new developers.
- Increased security issues At least, experiencing more security issues than the main upstream branch.
- Increased efforts to maintain the code base Maintenance tasks become more time consuming as the body of code to maintain becomes larger and more complex.
- Misalignment with the upstream development cycle illustrated in the inability to keep pace, be aligned with the upstream development and release cycles.