The Next GenerationMarketing Department
Marketing & IT as True Partners:Managing Technical Debt
Healthcare Internet ConferenceNovember 9, 2015
Scott MoweryDirector, Digital Marketing
@scottmowery
Everyone Incurs Debt
Mortgage
CreditCardsStudent
Loans
HealthProblems
TaxesJobLoss
Unexpected Bills
Car Payments
Food
Owning a Business
Internet
CableTV
Rent
WirelessPlan Electricity
Debt Isn’t Always Bad
• Sometimes it’s inevitable• Lets you buy what you need/want• Accelerates progress• Bails you out of emergencies
How much debt can you tolerate?
How fast can you pay it off?
Answer These 2 Questions
Danger occurs when the debt(and interest) is not repaid
TechnicalFinancial
Debt
What’s Technical Debt?
• Problems caused by doing work the “quick and dirty” way
• Technical debt generates interest• Pay the interest, or pay down the principal?• Consequences come later• The difficulty of making changes to overcome
the compromises and reach the desired end result = level of technical debt
Causes
• Overly optimistic estimates• Prioritizing releases over best practices• Poor/limited QA testing• Not knowing how to say no to bad ideas• Shortcuts, workarounds and hacks• Unneeded complexity• Lack of understanding & expertise• Having a culture of despair
Symptoms
• Poorly written and/or commented out code• Little to no documentation• Lack of QA testing• Frequent, unexpected bugs• Change one section of code, something
breaks elsewhere
Technical Debt Quadrant
Reckless
Deliberate
Reckless
Inadvertent
Prudent
Deliberate
Prudent
Inadvertent
Results of Technical Debt
• Costs more time, money & effort• Development and productivity slows down• Reduced ability to add new functionality• Annoyed web visitors• Frustrated management• Poor team morale & engagement• Employee turnover
Cycle of Technical Debt
(More)RelentlessPressureDev Team
VelocityDrops
Take onTD
Fail toPay Off
TD
TDAccrues
Cost of Technical Debt
• Impossible to measure completely• Must consider interest, not just principal• # of items X hours/item X $/hour• Don’t forget additional costs
- Employee turnover- Missed opportunities- Lower productivity
Managing Technical Debt
Visibility Grid
InvisibleVisible
PositiveValue
NegativeValue
Feature
Bug
Architecture
TechnicalDebt
Explaining Technical Debt
• More than just a web developer’s problem• Challenging for leadership to grasp & accept• Time must be budgeted to pay it off
“If you don’t schedule time to pay off technical debt, you may not get the new features you want.”
Managing Technical Debt
• Pay the debt back ASAP• Group deferred tasks into workable units• Prioritize the highest interest first
- Determine which debt can be kept• Make the impact of technical debt highly
visible to your team- Publish the backlog as a “shame file”- Chart the declining rate of productivity
Managing Technical Debt
• Identify automation opportunities• Monitor scope creep• Document, document, document- Set code standards and reviews- Use a project management/ticketing system
Best Tool To Fix Technical Debt
REFACTORING
Refactoring
• Restructuring existing code without changing its external behavior
• Improved code design and readability• Incremental• Should be budgeted in regularly
Slow Down to Move Fast
“Always leave the campgroundsource code cleaner than you found it.”
Boy Scout Rule
Cycle of Paying off Technical Debt
AutomateSomeStuffImprove
QualityReduce
Incidents
Free upDev Time
Pay OffSome
TD
Managing Technical Debt
Top Related