Here is the story I tell in Agile Bootcamp, accessible to those technical and non-technical alike. True story follows…
One Saturday morning, I asked my husband to hang a picture in the living room. Just a 8X10 picture. How long do you think it took?
- 15 minutes? No
- 30 minutes? No
- 4 hours? You betcha!
Wait how could somethig as simple as hanging a picture take almost 20 times longer than it should? In my house, we’ve cut corners on maintenance and organization. Over time, that creates issues. First, my husband went to go get hammer and nails out of the junk drawer where they were “easily accessible” and “handy”. Except that the small junk drawer had a large accumulation of junk. It wouldn’t even open because it was so full. So everything was extracted, no hammer was found, drawer was reorganized. We sought the hammer in the garage first, then the toolbench downstairs, with similar results. Finally, we gave up, and went to Home Depot and bought a new hammer and hung the picture after lunch.
Now this story had a happy ending. It was a Saturday, so we weren’t under the same time pressures we normally were, so we took the time to “fix” all of the obstacles we encountered. We left the junk drawer much better than we found it, and straightened the garage and basement workbench a little bit while looking there. In other words, we left things better than when we found it, if not restored to full functionality.
What does this have to do with agility and software development? Over time, the pressures of situation, or just outdated infrastructure accumulates debt. I had organizational debt. We call this technical debt. Over time, things require maintenance, upgrades, refactoring to bring it keep it in tip top shape.