Technical Debt in Agile environment
Ward Cunningham coined the term, and Martin Fowler has some good takes on the subject, and Ron Jeffries as well.
- Technical Debt includes those internal things that you choose not to do now, but which will impede future development if left undone. This includes deferred refactoring.
- Technical Debt doesn't include deferred functionality, except possibly in edge cases where delivered functionality is "good enough" for the customer, but doesn't satisfy some standard (e.g., a UI element that isn't fully compliant with some UI standard).
During the planning or execution of a software project, decisions are made to defer necessary work. For example:
- It's too late in the LifeCycle? to upgrade to the new release of the compiler. We'll do it next time around.
- We're not completely conforming to the UserInterface guidelines. We'll get to it next time.
- We don't have time to uncruft (refactor, see RefactorMercilessly) the hyper-widget code. Punt until next time.
Sources - http://c2.com/cgi/wiki?TechnicalDebt
Comments
Post a Comment