I am re-posting this from an article I posted on September 9th, 2014 on Geekswithblogs.net
I was able to go to the Heartland Developers Conference again this year. As always there was a lot of great speakers and it was a lot of fun. I’m going to do a few posts with notes I took from the presentations.
Steve P. Green gave a great talk “Technical Debt is Good*“. I’ve written about Technical Debt before, but Steve explained it in a new light. He explained Technical Debt very well and then talked about how it can be used as a communication and development tool, as long as you identify and estimate it.
Explaining technical debt in terms of money and how much it will cost you (like interest) is a great way to explain it to an owner or business manager.
You can view his slides for yourself.
We talked about reviewing our Technical Debt at each sprint (every 2 weeks for us) retrospective to identify our plan for paying down new debt, start to estimate and expose existing debt. I’m looking forward to seeing how this works.
“Software is an art and something worthy of mastering”
Technical debt as a tool
Debt is: bad stuff in our code
It is also: a way to communicate
- a metaphor for non-technical people
Definition of the metaphor
Ward Cunningham in 1992
- initial code is like debt, need to pay it back, fixing counts as interest
- good but have to pay it back
patterns, documentation and testing
“stuff that is wrong, even though it passes functional requirements.”
we need to communicate that it’s a band-aid
builds quietly over time, like a messy kitchen or room
value: when actively managed, used as a tool
finding common ground, analogies help
devs ->black and white, vs businesses gray (good for now)
the only one who can change this code is Bob
everything else breaks
use QA tie to finish
Most likely to occur
when actual starts to take longer then estimate
debt is probably in the gap
happens naturally over time
Martin Fowler’s quadrants
inadvertent - what is SRP?
prudent - next time we’ll use RWD
we’re just going to have to launch and make a plan
Benefits of Debt
“avoid being a perfectionist in a world of finite resources” - Forrest Shull
“Stop perfecting, start innovating”
Perfection is the Enemy of Innovation
What is innovation?
red black tree solver code, versus lego robot that solved the rubiks cubed
not like building house, but writing a book
we expect to refactor, but not everything - based on business value
clean enough to be refactored
broken window metaphor
Clean Code on Pluralsight by Corey House
“query of despair”
talk about it in terms or money
have to estimate the debt
trackable, prudent, deliberate, visible, valuable
code clean, tested, plan, business truly informed?
- best spot and worst spot
definition of done
“Always leave the code you’re editing a little better than you found it” Bob Martin
no one is perfect
debt is a tool
the solution is everyone’s responsibility
Thanks to Steve Green for the talk and permission to blog these notes.
Please consider using Brave and adding me to your payment ledger. Then you won't have to see ads!