Technical debt is the accumulation of errors and often additional costs. These errors come from short-term decisions that generate higher costs and require additional resources to correct or maintain these design errors.
Unlike a bug, technical debt is a latent problem. The risks generated by technical debt can increase over time. The number of bugs can grow and make maintenance more difficult in the long run.
It is, therefore, necessary to plan the quality criteria of software using specifications documents. The documentation allows the development of a project to be consistent over the long term and helps to plan the corrective and maintenance to limit the technical debt.
How does technical debt appear?
- Lack of time is the main source of technical debt. An accelerated conception phase results in trade-offs that create errors and approximations.
- The second constraint is the reduction of costs which leads to the reduction of structural investments (code quality) or security (updating, tests)
- For example,Windows XP has been the prime example of a lack of evolution in many companies when it comes to software updates.
- Another problem is a lack of research into user needs.
- Many websites use WordPress while this CMS is too complex for a simple showcase site. Its maintenance and performance lead to additional costs and security risks.
Technical debt has an impact on quality and costs.
When we carry out a project with time or resources constraints, we contract a debt that we will have to repay over the long term to maintain the quality of an application1.
The analogy with financial debt makes sense when you think of the interest on a debt. Technical debt may cost more to repay in the long term.
It is important to have guides to maintain quality to reach the needs of users. Too much technical debt is responsible for stagnant applications that do not evolve or deteriorate2. Quality control limits the appearance of bugs during updates and deployment of features.
Technical debt is associated with security concerns
The lack of investment in quality is often primarily at the level of safety. Many projects do not include a plan for the software update which creates potential security holes.
WordPress represents 34% of websites (60% of CMS)3. The update of this CMS is often delayed for compatibility reasons4. Plugins can become potential security holes too5.
Technical debt creates ecological debt.
Fighting against technical debt is connected to sustainable web design. The goal is to create resilient services. Ecological debt is also based on a similar definition: the accumulation of an over-exploitation of resources to the detriment of the future.
The lack of optimization and time reduces the performance of applications and increases their weight, thus energy consumption in the long term6. Unsuitable technical choices have the same consequences.
Marketing can have the same effect. Use a tracking tool only if you have the time to analyze the data. The data collection also leads to the consumption of unnecessary resourcesnad legal problems (GDPR adaptation).
Simplification and minimalism for zero technical debt
A complex project with zero technical debt would require a large budget. Because quality is directly linked to time and resources.
The problem comes in many cases from the formalization of needs and the understanding of uses. Research into needs and a resilient vision of the Internet would make it possible to create quality projects that respect important criteria: accessibility, ethics, security, privacy and ecology.
Our research seeks to create resilient websites that answer to the needs of uses. Simplicity and resilience allow us to avoid technical debt.
Publications and Notes