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
Definition of the metaphor
Ward Cunningham in 1992
- initial code is like debt, need to pay it back, fixing counts as interest
Negative artifacts
patterns, documentation and testing
“stuff that is wrong, even though it passes functional requirements.”
invisible
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
perspective matters
finding common ground, analogies help
devs ->black and white, vs businesses gray (good for now)
Identify Debt
the only one who can change this code is Bob
// TODO
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
Finding it
happens naturally over time
Martin Fowler’s quadrants
deliberate
inadvertent - what is SRP?
reckless
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
strategic design
trackable, prudent, deliberate, visible, valuable
code clean, tested, plan, business truly informed?
Payment Options
manage it
small tasks
cleanup release
code reviews
- best spot and worst spot
peer programming
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.
http://www.dotnetrocks.com/default.aspx?showNum=1045 Battling Technical Debt while Keeping the Lights On with Jim Holmes from DotNetRocks.
Please consider using Brave and adding me to your BAT payment ledger. Then you won't have to see ads! (when I get to $100 in Google Ads for a payout, I pledge to turn off ads)
Also check out my Resources Page for referrals that would help me.