L8 Flashcards
What is Technical Debt?
The accumulated cost of incomplete or suboptimal architectural and design decisions, coding practices, and implementation choices.
Technical debt can lead to increased costs and reduced maintainability in the future.
What are the roots of Technical Debt?
- Wrong prioritization
- Poor design
- Lack of expertise
- No testing
These roots indicate the underlying issues that lead to the accumulation of technical debt.
List the four quadrants of Technical Debt.
- We don’t have time
- We don’t know how
- We’ll deal with it later
- We shouldn’t have done that
Each quadrant represents a different mindset or situation contributing to technical debt.
What is Design Debt?
Occurs when the system’s architecture is not scalable or adaptable to future requirements, leading to inefficiencies.
Design debt often results from poor architectural decisions.
What are the components of Code Debt?
- Quick fixes
- Ownership
- Lack of patterns
Code debt refers to messy, poorly written code that sacrifices quality for faster delivery.
What is Test Debt?
Occurs when tests are insufficient, outdated, or missing altogether.
Test debt can significantly impact software quality and reliability.
Identify the components of Infrastructure Debt.
- Outdated infrastructure
- Missed upgrades
- Unpreparedness
Infrastructure debt arises when underlying systems fail to meet current demands.
What are the costs associated with Technical Debt?
- Increased testing costs
- Reduced productivity
- Delayed releases
- Innovation challenges
- Decreased team morale
These costs highlight the potential negative impact of technical debt on a project.
What is the approach to addressing Technical Debt?
Managing technical debt effectively requires a balanced approach.
It is often impractical to eliminate technical debt entirely, but it can be managed and its impact reduced.
Define Pair Programming.
Two programmers work together at one workstation, one writes the code while the other reviews what is written.
This technique can help manage technical debt by ensuring code quality during development.
What is an Informal Review?
Developers review each other’s code in a spontaneous, ad hoc process, not following specific guidelines.
Informal reviews can be a quick way to catch issues but may lack structure.
What is a Code Walkthrough?
Developers, architects, testers, or other stakeholders examine the code line by line or module by module and discuss.
This process helps in understanding the code and identifying potential improvements.
Define Technical Inspection.
Systematic examination of software artifacts, such as code, design documents, requirements specification, or architecture.
Technical inspections are more formal than code reviews and aim to ensure quality.
True or False: Teams should weigh the trade-offs between short term and long term goals when managing Technical Debt.
True
Balancing immediate needs with future maintainability is crucial in managing technical debt.