Generative AI: get ready to multiply your Technical Debt
๐ Abstract
The article discusses the potential risks and challenges of using Generative AI (GenAI) in software development, particularly the impact on software maintenance costs. It emphasizes the importance of maintenance costs being higher than development costs, and how uncontrolled use of GenAI can lead to a significant increase in technical debt and maintenance expenses.
๐ Q&A
[01] Maintenance Costs are Bigger than Development Costs
1. What is the key point made about maintenance costs compared to development costs?
- The article states that maintenance costs are typically larger than development costs, often 3 times, 1.5 times, or even 9 times the development cost. This means that building code for maintainability is incredibly important, as the total cost of ownership (TCO) for a system is heavily influenced by the maintenance costs.
2. How does the article illustrate the impact of maintenance costs on TCO?
- The article provides an example where a system developed for $1 million has a maintenance cost of $1.5 million over 5 years, resulting in a TCO of $2.5 million. In contrast, a system developed for $300,000 but with a 9x maintenance cost can result in a TCO of $3 million, significantly higher than the first example.
[02] Risks of Uncontrolled Use of Generative AI
1. What are the key risks of uncontrolled use of Generative AI in software development?
- The article highlights the risk of developers using Generative AI to create complex code that they themselves do not fully understand. This can lead to code that is effectively unmaintainable, as the developers who created it cannot easily fix or modify it. This can balloon the maintenance costs, as new applications may need to be created to patch issues rather than being able to fix the original code.
2. How does the article explain the impact on maintenance costs, even if the developers can maintain the Generative AI-created code?
- The article argues that even if developers can maintain the Generative AI-created code, the fact that it is more complex and voluminous than code developed manually means that a larger team is required to support it. This skews the costs towards maintenance, as the maintenance cost is related to the hypothetical development cost, not the actual low cost of using Generative AI.
[03] Strategies for Controlling Costs with Generative Development
1. What are the three categories of Generative AI development the article recommends?
- The article suggests three categories of Generative AI development:
- Fully Generative AI: Parts of the application where 100% Generative AI is used.
- Generative Assisted: Parts of the application where Generative AI is used to augment developers.
- Pure Code: Parts of the application where no Generative AI is used.
2. What are the recommended approaches for each category?
- For Fully Generative AI, the article suggests treating it like a compiler, with a prompt file that details the prompt used and any problematic results.
- For Generative Assisted, the article recommends clearly marking the sections where Generative AI was used and tracking any edits made by developers.
- For Pure Code, the article advises keeping it 100% human-written to maintain clear IP ownership.
3. Why does the article emphasize the need for a clear plan and investment in testing industrialization?
- The article warns that failing to plan and invest in proper testing and maintenance processes when using Generative AI will lead to a significant increase in technical debt and maintenance costs, which no human could create alone.