Generative AI: get ready to multiply your Technical Debt
๐ Abstract
The article discusses the importance of software maintenance costs and the potential impact of using Generative AI (GenAI) in software development. It highlights the fact that maintenance costs are typically much higher than development costs, and that unchecked and uncontrolled use of GenAI could lead to a significant increase in maintenance costs, potentially undermining the cost savings that GenAI might provide in the development phase.
๐ Q&A
[01] The Importance of Maintenance Costs
1. What is the key point made about maintenance costs in software development?
- The article states that maintenance costs are typically larger than development costs, often 1.5 to 9 times the development cost. This means that building maintainable code is incredibly important, as the total cost of ownership (TCO) for a system is heavily influenced by its maintenance costs.
2. How does the use of GenAI impact maintenance costs?
- The article argues that it is easy to use GenAI to create complex code that even the original developer may not fully understand. This can lead to code that is effectively unmaintainable, resulting in much higher maintenance costs than if the code had been developed manually.
3. What is the potential impact of this issue on software budgets and development practices?
- The article suggests that the unchecked and uncontrolled use of GenAI to create code could lead to a "hideous mountain of tech debt" that would be extremely costly to maintain. This could cause software budgets to be blown, with new applications being created to patch issues rather than being able to fix the underlying problems.
[02] Strategies for Controlling GenAI Use
1. What are the three classes of GenAI development the article recommends?
- The article suggests three approaches:
- Fully generative areas: Where the entire code file is generated by GenAI, and the maintenance focus is on the prompt used, not the code itself.
- Assisted coding: Where developers use GenAI to assist in coding, but clearly mark the generated sections and any manual edits.
- 100% human-created code: For areas where IP protection or other concerns require the code to be developed manually without GenAI.
2. What practices does the article recommend for each of these approaches?
- For fully generative areas, the article suggests having a ".prompt" file that details the prompt used and any issues with the generated results.
- For assisted coding, the article recommends using version control to track changes between the generated code and the final version, and clearly marking the generated sections.
- For 100% human-created code, the article advises auditing to ensure it remains uncontaminated by GenAI-generated content.
3. Why does the article emphasize the need for a clear plan and categorization of GenAI use?
- The article argues that without a clear plan and categorization of GenAI use, the resulting technical debt and maintenance costs could be overwhelming and undermine any potential cost savings from using GenAI in development.