Managing Technical Debt

Post on 14-Apr-2017

199 views 0 download

Transcript of 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

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

Questions

mowerys@ccf.org@scottmowery

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