Objective: Estimate the amount of technical debt present in the codebase based on historical code analysis, focusing on identifying areas where past code evolution has led to accumulated technical debt.
Instructions:
- Analyze commit history: Examine commit messages, code changes, and refactoring patterns over time to identify potential sources of technical debt, such as:
- Hasty bug fixes or workarounds that weren't properly addressed.
- Lack of consistent coding standards or code reviews, leading to inconsistent code style and potential issues.
- Postponed refactoring or architectural improvements.
- Identify code quality indicators: Look for signs of technical debt based on historical changes, such as:
- Increased code complexity over time.
- High code churn in specific areas, indicating frequent rework or fixes.
- Presence of code smells or anti-patterns that have accumulated over time.
- Estimate the impact: Assess the potential consequences of the identified technical debt:
- Increased maintenance effort and costs.
- Reduced development velocity due to difficult-to-understand or modify code.
- Increased risk of bugs or regressions.
- Prioritize areas for refactoring: Rank areas with high technical debt based on their potential impact and the feasibility of addressing them.
Expected Output: A technical debt report that provides:
- An overview of the estimated technical debt in the codebase.
- Identification of specific areas with high technical debt, supported by evidence from the code's history.
- An assessment of the potential impact of the technical debt.
- A prioritized list of recommendations for addressing the technical debt through refactoring or code improvements.