Chapter 8 / Essential Scrum Practical Guide
Haeseung Lee @ Product Management
Technical Debt by
Shipping first time code is like going into debt. A little debt speeds development so long as it is pad back promptly with a rewrites...The danger occurs when the debt is not repaid. Every minute spend on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation.
Cunningham 1992
You have a piece of functionality that you need to add to your system. You see two ways to do it, one is quick to do but is messy - your are sure that it will make further changes harder in the future. The other results in a cleaner design, but will take longer to put in place.
Fowler 2009
A mess is not a technical debt. A mess is just a mess. Technical debt decisions are made based on real project constraints. They are risky, but they can be beneficial. The decision to make a mess is never rational, is always based on laziness and unprofessionalism, and has no chance of paying off in the future. A mess is always a loss.
Technical Debt refers both to the shortcut we purposely take and also to the many bad things that plague software systems. These includes
unnecessary complexity, dirty hacks, and unreadable code are not technical debt. There is no good reason for introducing such a mess in the first place. If developers feel that they don't have the time to write simple, maintainable code there clearly lacking experience and professionalism.
"Single brain know-how" is another phenomenon often described as technical debt. But being dependent on a single person to maintain or run a critical part of your application isn't technical debt - it's a lethal threat to your business.
Text
Not only "Speedy", But also "Cultural"
SCRUM | KANBAN | |
---|---|---|
Cadence | Regular fixed length sprints(ie. 2 weeks) | Continuous flow |
Release Methodology | At the end of each sprint if approved by the product owner | Continuous delivery to at the team's discretion |
Roles | Product Owner, Scrum Master, Development Team | No existing roles. Some teams enlist the help of an agile coach |
Key Metrics | Velocity | Cycle time |
Change Philosophy | Teams should strive to not make changes to the sprint forecast during the sprint. Doing so compromises learnings around estimation | Change can happen at any time |