Managing Technical Debt

27
The Next Generation Marketing Department Marketing & IT as True Partners: Managing Technical Debt Healthcare Internet Conference November 9, 2015 Scott Mowery Director, Digital Marketing @scottmowery

Transcript of Managing Technical Debt

Page 1: Managing Technical Debt

The Next GenerationMarketing Department

Marketing & IT as True Partners:Managing Technical Debt

Healthcare Internet ConferenceNovember 9, 2015

Scott MoweryDirector, Digital Marketing

@scottmowery

Page 2: Managing Technical Debt

Everyone Incurs Debt

Mortgage

CreditCardsStudent

Loans

HealthProblems

TaxesJobLoss

Unexpected Bills

Car Payments

Food

Owning a Business

Internet

CableTV

Rent

WirelessPlan Electricity

Page 3: Managing Technical Debt

Debt Isn’t Always Bad

• Sometimes it’s inevitable• Lets you buy what you need/want• Accelerates progress• Bails you out of emergencies

Page 4: Managing Technical Debt

How much debt can you tolerate?

How fast can you pay it off?

Answer These 2 Questions

Page 5: Managing Technical Debt

Danger occurs when the debt(and interest) is not repaid

Page 6: Managing Technical Debt

TechnicalFinancial

Debt

Page 7: Managing Technical 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

Page 8: Managing 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

Page 9: Managing Technical Debt

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

Page 10: Managing Technical Debt

Technical Debt Quadrant

Reckless

Deliberate

Reckless

Inadvertent

Prudent

Deliberate

Prudent

Inadvertent

Page 11: Managing Technical Debt

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

Page 12: Managing Technical Debt

Cycle of Technical Debt

(More)RelentlessPressureDev Team

VelocityDrops

Take onTD

Fail toPay Off

TD

TDAccrues

Page 13: Managing Technical Debt
Page 14: Managing Technical Debt

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

Page 15: Managing Technical Debt

Managing Technical Debt

Page 16: Managing Technical Debt

Visibility Grid

InvisibleVisible

PositiveValue

NegativeValue

Feature

Bug

Architecture

TechnicalDebt

Page 17: Managing Technical Debt

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

Page 18: Managing Technical Debt

“If you don’t schedule time to pay off technical debt, you may not get the new features you want.”

Page 19: Managing Technical Debt

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

Page 20: Managing Technical Debt

Managing Technical Debt

• Identify automation opportunities• Monitor scope creep• Document, document, document- Set code standards and reviews- Use a project management/ticketing system

Page 21: Managing Technical Debt

Best Tool To Fix Technical Debt

REFACTORING

Page 22: Managing Technical Debt

Refactoring

• Restructuring existing code without changing its external behavior

• Improved code design and readability• Incremental• Should be budgeted in regularly

Page 23: Managing Technical Debt

Slow Down to Move Fast

Page 24: Managing Technical Debt

“Always leave the campgroundsource code cleaner than you found it.”

Boy Scout Rule

Page 25: Managing Technical Debt

Cycle of Paying off Technical Debt

AutomateSomeStuffImprove

QualityReduce

Incidents

Free upDev Time

Pay OffSome

TD

Page 26: Managing Technical Debt

Managing Technical Debt

Page 27: Managing Technical Debt

Questions

[email protected]@scottmowery

https://www.linkedin.com/in/scottmowery