SlideShare a Scribd company logo
1 of 52
The Technical Debt Trap
Michael J Norton
@DocOnDev
LeanDog LLC*

*The views expressed are not necessarily the views of LeanDog LLC
 (but they could be)
Rant.begin
What is Technical Debt?
What is Technical Debt?
Ward Cunningham




           oopsla’92
What is Technical Debt?
Ward Cunningham
Shipping first time code is
like going into debt.




                   oopsla’92
What is Technical Debt?
Ward Cunningham
Shipping first time code is
like going into debt.
 A little debt speeds
development so long
as it is paid back
promptly with a
rewrite.
                   oopsla’92
What is Technical Debt?
Ward Cunningham
The danger occurs
when the debt is not
repaid.

Every minute spent on not-
quite-right code counts as
interest on that debt.

                   oopsla’92
What is Technical Debt?
Ward Cunningham
The danger occurs
when the debt is not
repaid.

Every minute spent on not-
quite-right code counts as
interest on that debt.

                   oopsla’92
Technical Debt is a Good Idea
Technical Debt is a Good Idea



 WTF?
Technical Debt is a Good Idea
Strategic Design Decision
Technical Debt is a Good Idea
Strategic Design Decision
Allow for Rapid Delivery
To Ellicit Quick Feedback
And Correct Design
Technical Debt is a Metaphor
Here Be Danger
Metaphors Rock
 We reason by analogy

Can’t keep running
   at this pace

       Building on a weak foundation
                         Puts pressure on
 It’s raining men          our design
Metaphors Rock
 We reason by analogy

Can’t keep running
   at this pace

       Building on a weak foundation
                         Puts pressure on
 It’s raining men          our design
      (hallelujah)
Metaphorphosis
When Metaphors go wrong




    Prudent
Metaphorphosis
 When Metaphors go wrong

     Return on Investment
Short-Term Fraudulent       Credit Card
          Inadvertent RecklessScheme
                         Pyramid    Debt
   Auto Loan
High Interest in the Third Quadrant
                      Home Loan Voluntary
  Intentional Loan Shark Long-Term
        Prudent Student Loan
Pragmatic Leverage             Operational
Metaphorphosis
Metaphorphosis
 When Metaphors go wrong
“cut a lot of corners”
      James Shore
    http://jamesshore.com/Blog/CardMeeting/Voluntary-Technical-Debt.html




       “quick and dirty”
                                                                     Martin Fowler
      “sloppy”
                                                                      http://www.martinfowler.com/bliki/TechnicalDebt.html




      David Laribee                                                                                                           “just hack it in”
   http://msdn.microsoft.com/en-us/magazine/ee819135.aspx
                                                                                                                             Steve McConnell
                                                                                                                        http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
That’s not what I said
Ward Cunningham

[Many] have explained the debt metaphor
and confused it with the idea that
you could write code poorly with
the intention of doing a good job later.
http://www.youtube.com/watch?v=pqeJFYwnkjE&feature=player_embedded   youtube.com 2009
That’s not what I said
Ward Cunningham

[Many] have explained the debt metaphor
and confused it with the idea that
you could write code poorly with
the intention of doing a good job later.
http://www.youtube.com/watch?v=pqeJFYwnkjE&feature=player_embedded   youtube.com 2009
That’s not what I said
Ward Cunningham

... confused it with
the idea that you
could write code
poorly ...            youtube.com 2009
Clean Code is Required
Ward Cunningham

The ability to pay back debt [...]
depends upon you writing code that
is clean enough to be able to refactor
as you come to understand your
problem.                     youtube.com 2009
Clean Code is Required
Ward Cunningham

The ability to pay back debt [...]
depends upon you writing code that
is clean enough to be able to
refactor as you come to
understand your problem.  youtube.com 2009
Dirty Code is a Bad Idea
Ward Cunningham
Dirty code is to technical debt as the
pawn broker is to financial debt.

Don't think you are ever going to get
your code back.
http://twitter.com/WardCunningham/status/3742903303   twitter 2009
Is it Technical Debt?
Ask yourself...
Is the code clean?
Is the code tested?
Is there a learning objective?
Is there a plan for payback?
Is the business truly informed?
Is it Technical Debt?
If you said no to even one
Is the code clean?
Is the code tested?
Is there a learning objective?
Is there a plan for payback?
Is the business truly informed?
       Then you don’t have Technical Debt
You have cruft
Cruft (noun)
1. An unpleasant substance
2. The result of shoddy construction
3. Redundant, old or improperly written code
You have a mess
Mess (noun)
1. Disorderly accumulation, heap, or jumble
2. A state of embarrassing confusion
3. An unpleasant or difficult situation
Chill. It’s just semantics, man.
Chill. It’s just semantics, man.
JUST Semantics?

Technical Debt is Good
Chill. It’s just semantics, man.
JUST Semantics?

            Technical Debt is Good
Chill. It’s just semantics, man.
JUST Semantics?

Quick and Dirty is Technical Debt is Good
Chill. It’s just semantics, man.
JUST Semantics?

Quick and Dirty is Good
Chill. It’s just semantics, man.
JUST Semantics?

Quick and Dirty is Good
Messy Code is a Bad Decision
Every Time
Messy Code is a Bad Decision
Every Time
 You are a professional developer
             (Professionals behave ethically)
Messy Code is a Bad Decision
Every Time
 You are a professional developer
               (Professionals behave ethically)

 You are going to create unintentional cruft
             (You can’t help it. It’s unintentional.)
Messy Code is a Bad Decision
Every Time
 You are a professional developer
               (Professionals behave ethically)

 You are going to create unintentional cruft
             (You can’t help it. It’s unintentional.)

 You have to clean up the existing cruft
             (Intent doesn’t alter Responsibility)
Grammy Doesn’t Love Me!
Setting Expectations
The Trap
Mess begets mess
The Trap
Mess begets mess
 Precedent for Speed over Quality
 Expectation of increased velocity
 Mess slows you down
 Must generate more mess to keep up
The Trap
Mess begets mess
 Precedent for Speed over Quality
 Expectation of increased velocity
 Mess slows you down
 Must generate more mess to keep up
 Ask permission to do your job correctly
Avoid The Trap
Incremental Fixes Fail




      http://www.jacoozi.com/blog/wp-content/uploads/2007/01/refactoring_coc_big.jpg
Avoid The Trap
Clean Constantly
Avoid The Trap
Clean Constantly
 Never make an intentional mess
 Follow the Boy Scout Rule
 Monitor your “Technical Debt”
 Quality is your responsibility
Avoid The Trap
Clean Constantly
 Never make an intentional mess
 Follow the Boy Scout Rule
 Monitor your “Technical Debt”
 Quality is your responsibility
 NEVER ask permission to do your job correctly
Lean Start-Ups
No exceptions
Lean Start-Ups
No exceptions
 Quick Does NOT Mean Crappy
 You must have a plan for payback
 Be careful of the precedent you set
 Quality is STILL your responsibility
Lean Start-Ups
No exceptions
 Quick Does NOT Mean Crappy
 You must have a plan for payback
 Be careful of the precedent you set
 Quality is STILL your responsibility
 NEVER ask permission to do your job correctly
Rant.end
Thank You!
The Technical Debt Trap
Michael J Norton
@DocOnDev
LeanDog LLC*
doc@leandog.com

*The views expressed are not necessarily the views of LeanDog LLC
 (but they could be)

More Related Content

What's hot

Managing technical debt
Managing technical debtManaging technical debt
Managing technical debtFadi Stephan
 
Managing technical debt notes
Managing technical debt notesManaging technical debt notes
Managing technical debt notesFadi Stephan
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical DebtKaizenko
 
Delivering Technical Debt
Delivering Technical DebtDelivering Technical Debt
Delivering Technical Debtbrendonpage
 
The Technical Debt Trap - AgileIndy 2013
The Technical Debt Trap - AgileIndy 2013The Technical Debt Trap - AgileIndy 2013
The Technical Debt Trap - AgileIndy 2013Doc Norton
 
Technical Debt - The number one reason why technical projects get derailed
Technical Debt - The number one reason why technical projects get derailedTechnical Debt - The number one reason why technical projects get derailed
Technical Debt - The number one reason why technical projects get derailedAccesto
 
Technical Debt and Requirements
Technical Debt and RequirementsTechnical Debt and Requirements
Technical Debt and RequirementsNeil Ernst
 
Technical Debt - osbridge
Technical Debt - osbridgeTechnical Debt - osbridge
Technical Debt - osbridgeenaramore
 
Towards a Technical Debt Management Framework based on Cost-Benefit Analysis
Towards a Technical Debt Management Framework based on Cost-Benefit AnalysisTowards a Technical Debt Management Framework based on Cost-Benefit Analysis
Towards a Technical Debt Management Framework based on Cost-Benefit AnalysisM Firdaus Harun
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtGary Short
 
Technical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsTechnical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsAgile Velocity
 
Technical Debt - Why should you care? (Agiles Buenos Aires 2011)
Technical Debt - Why should you care?  (Agiles Buenos Aires 2011)Technical Debt - Why should you care?  (Agiles Buenos Aires 2011)
Technical Debt - Why should you care? (Agiles Buenos Aires 2011)CI&T
 
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt Neil Ernst
 
Technical Debt Management
Technical Debt ManagementTechnical Debt Management
Technical Debt ManagementMark Niebergall
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Jorge López-Lago
 
Get Smart About Technical Debt
Get Smart About Technical DebtGet Smart About Technical Debt
Get Smart About Technical DebtCAST
 
We need to talk about tech debt
We need to talk about tech debtWe need to talk about tech debt
We need to talk about tech debtMatthew Whetton
 
Confitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedConfitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedWojciech Seliga
 

What's hot (20)

Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
 
Managing technical debt notes
Managing technical debt notesManaging technical debt notes
Managing technical debt notes
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Delivering Technical Debt
Delivering Technical DebtDelivering Technical Debt
Delivering Technical Debt
 
The Technical Debt Trap - AgileIndy 2013
The Technical Debt Trap - AgileIndy 2013The Technical Debt Trap - AgileIndy 2013
The Technical Debt Trap - AgileIndy 2013
 
Technical Debt - The number one reason why technical projects get derailed
Technical Debt - The number one reason why technical projects get derailedTechnical Debt - The number one reason why technical projects get derailed
Technical Debt - The number one reason why technical projects get derailed
 
Technical Debt and Requirements
Technical Debt and RequirementsTechnical Debt and Requirements
Technical Debt and Requirements
 
Technical Debt - osbridge
Technical Debt - osbridgeTechnical Debt - osbridge
Technical Debt - osbridge
 
Towards a Technical Debt Management Framework based on Cost-Benefit Analysis
Towards a Technical Debt Management Framework based on Cost-Benefit AnalysisTowards a Technical Debt Management Framework based on Cost-Benefit Analysis
Towards a Technical Debt Management Framework based on Cost-Benefit Analysis
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Technical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsTechnical Debt: Sources and Impacts
Technical Debt: Sources and Impacts
 
Technical Debt - Why should you care? (Agiles Buenos Aires 2011)
Technical Debt - Why should you care?  (Agiles Buenos Aires 2011)Technical Debt - Why should you care?  (Agiles Buenos Aires 2011)
Technical Debt - Why should you care? (Agiles Buenos Aires 2011)
 
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
Measure It, Manage It, Ignore It - Software Practitioners and Technical Debt
 
Technical debt
Technical debtTechnical debt
Technical debt
 
Technical Debt Management
Technical Debt ManagementTechnical Debt Management
Technical Debt Management
 
Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Get Smart About Technical Debt
Get Smart About Technical DebtGet Smart About Technical Debt
Get Smart About Technical Debt
 
We need to talk about tech debt
We need to talk about tech debtWe need to talk about tech debt
We need to talk about tech debt
 
Confitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedConfitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career Unplugged
 

Similar to The Technical Debt Trap

DevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin Graham
DevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin GrahamDevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin Graham
DevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin GrahamPROIDEA
 
Getting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim BrayGetting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim BrayCarsonified Team
 
Beyond Fast Good and Cheap
Beyond Fast Good and CheapBeyond Fast Good and Cheap
Beyond Fast Good and CheapAlan Stevens
 
The Technical Debt Trap
The Technical Debt TrapThe Technical Debt Trap
The Technical Debt TrapDoc Norton
 
How to deal with tech debt: Lessons learned from the best engineering teams
How to deal with tech debt: Lessons learned from the best engineering teamsHow to deal with tech debt: Lessons learned from the best engineering teams
How to deal with tech debt: Lessons learned from the best engineering teamsAlexandre Omeyer
 
Taming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchTaming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchMike Clement
 
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...Marco Cedaro
 
Technical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PMTechnical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PMProduct School
 
Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...
Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...
Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...NoNameCon
 
Everything you Wanted to Know About Refactoring
Everything you Wanted to Know About RefactoringEverything you Wanted to Know About Refactoring
Everything you Wanted to Know About RefactoringGary Short
 
Oli Gardner SMD Warsaw 2014 - Advanced Landing Page Optimization With Conve...
Oli Gardner  SMD Warsaw 2014  - Advanced Landing Page Optimization With Conve...Oli Gardner  SMD Warsaw 2014  - Advanced Landing Page Optimization With Conve...
Oli Gardner SMD Warsaw 2014 - Advanced Landing Page Optimization With Conve...Joanna Gęsicka
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...Marco Cedaro
 
Agile Resiliency: How CMMI can make Agile thrive and survive
Agile Resiliency: How CMMI can make Agile thrive and surviveAgile Resiliency: How CMMI can make Agile thrive and survive
Agile Resiliency: How CMMI can make Agile thrive and surviveJeff Dalton
 
Ipad mockups
Ipad mockupsIpad mockups
Ipad mockupsMianlside
 
How to Find High-Impact Work and Make People Pay Attention
How to Find High-Impact Work and Make People Pay AttentionHow to Find High-Impact Work and Make People Pay Attention
How to Find High-Impact Work and Make People Pay AttentionSamanthaCarow
 
Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...
Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...
Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...Bonnie Aumann
 
ITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are notITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are notOrtus Solutions, Corp
 

Similar to The Technical Debt Trap (20)

DevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin Graham
DevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin GrahamDevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin Graham
DevOpsDays Warsaw 2015: Placebo of Progress – Caoimhin Graham
 
Getting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim BrayGetting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim Bray
 
Beyond Fast Good and Cheap
Beyond Fast Good and CheapBeyond Fast Good and Cheap
Beyond Fast Good and Cheap
 
The Technical Debt Trap
The Technical Debt TrapThe Technical Debt Trap
The Technical Debt Trap
 
How to deal with tech debt: Lessons learned from the best engineering teams
How to deal with tech debt: Lessons learned from the best engineering teamsHow to deal with tech debt: Lessons learned from the best engineering teams
How to deal with tech debt: Lessons learned from the best engineering teams
 
Taming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touchTaming scary production code that nobody wants to touch
Taming scary production code that nobody wants to touch
 
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
JsDay - It's not you, It's me (or how to avoid being coupled with a Javascrip...
 
Technical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PMTechnical Debt for Product Managers by Square Sr PM
Technical Debt for Product Managers by Square Sr PM
 
Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...
Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...
Eugene Pilyankevich - Getting Secure Against Challenges Or Getting Security C...
 
Arrows
ArrowsArrows
Arrows
 
Everything you Wanted to Know About Refactoring
Everything you Wanted to Know About RefactoringEverything you Wanted to Know About Refactoring
Everything you Wanted to Know About Refactoring
 
Pyramid
PyramidPyramid
Pyramid
 
Oli Gardner SMD Warsaw 2014 - Advanced Landing Page Optimization With Conve...
Oli Gardner  SMD Warsaw 2014  - Advanced Landing Page Optimization With Conve...Oli Gardner  SMD Warsaw 2014  - Advanced Landing Page Optimization With Conve...
Oli Gardner SMD Warsaw 2014 - Advanced Landing Page Optimization With Conve...
 
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
FFWD.PRO - It's not you, It's me (or how to avoid being coupled with a Javasc...
 
Agile Resiliency: How CMMI can make Agile thrive and survive
Agile Resiliency: How CMMI can make Agile thrive and surviveAgile Resiliency: How CMMI can make Agile thrive and survive
Agile Resiliency: How CMMI can make Agile thrive and survive
 
Pc mockups
Pc mockupsPc mockups
Pc mockups
 
Ipad mockups
Ipad mockupsIpad mockups
Ipad mockups
 
How to Find High-Impact Work and Make People Pay Attention
How to Find High-Impact Work and Make People Pay AttentionHow to Find High-Impact Work and Make People Pay Attention
How to Find High-Impact Work and Make People Pay Attention
 
Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...
Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...
Philly ETE - Are Your Developers Bull$h!tt!ng You? And why that's the wrong q...
 
ITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are notITB2016 best practices are best except when they are not
ITB2016 best practices are best except when they are not
 

More from Doc Norton

Tuckman Was Wrong
Tuckman Was WrongTuckman Was Wrong
Tuckman Was WrongDoc Norton
 
A Practical Guide to Cynefin
A Practical Guide to CynefinA Practical Guide to Cynefin
A Practical Guide to CynefinDoc Norton
 
Building Blocks of a Knowledge Work Culture - NDC London 2016
Building Blocks of a Knowledge Work Culture - NDC London 2016Building Blocks of a Knowledge Work Culture - NDC London 2016
Building Blocks of a Knowledge Work Culture - NDC London 2016Doc Norton
 
Codemash pre-compiler - Collaborative Decision Making
Codemash pre-compiler - Collaborative Decision MakingCodemash pre-compiler - Collaborative Decision Making
Codemash pre-compiler - Collaborative Decision MakingDoc Norton
 
Experimentation Mindset
Experimentation MindsetExperimentation Mindset
Experimentation MindsetDoc Norton
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileDoc Norton
 
Autonomy, Connection, and Excellence; The Building Blocks of a DevOps Culture
Autonomy, Connection, and Excellence; The Building Blocks of a DevOps CultureAutonomy, Connection, and Excellence; The Building Blocks of a DevOps Culture
Autonomy, Connection, and Excellence; The Building Blocks of a DevOps CultureDoc Norton
 
Creative Collaboration: Tools for Teams
Creative Collaboration: Tools for TeamsCreative Collaboration: Tools for Teams
Creative Collaboration: Tools for TeamsDoc Norton
 
Experimentation mindset
Experimentation mindsetExperimentation mindset
Experimentation mindsetDoc Norton
 
Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014
Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014
Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014Doc Norton
 
Let's Start An Epidemic
Let's Start An EpidemicLet's Start An Epidemic
Let's Start An EpidemicDoc Norton
 
Teamwork Ain't Easy - RailsConf 2014
Teamwork Ain't Easy - RailsConf 2014Teamwork Ain't Easy - RailsConf 2014
Teamwork Ain't Easy - RailsConf 2014Doc Norton
 
Creating a Global Engineering Culture - Agile india 2014
Creating a Global Engineering Culture - Agile india 2014Creating a Global Engineering Culture - Agile india 2014
Creating a Global Engineering Culture - Agile india 2014Doc Norton
 
Doc That Conference Keynote
Doc That Conference KeynoteDoc That Conference Keynote
Doc That Conference KeynoteDoc Norton
 
Agile Metrics: Velocity is NOT the Goal - Agile 2013 version
Agile Metrics: Velocity is NOT the Goal - Agile 2013 versionAgile Metrics: Velocity is NOT the Goal - Agile 2013 version
Agile Metrics: Velocity is NOT the Goal - Agile 2013 versionDoc Norton
 
Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013
Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013
Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013Doc Norton
 
Velocity is not the goal code palo-usa
Velocity is not the goal   code palo-usaVelocity is not the goal   code palo-usa
Velocity is not the goal code palo-usaDoc Norton
 
Teamwork Ain't Easy
Teamwork Ain't EasyTeamwork Ain't Easy
Teamwork Ain't EasyDoc Norton
 
Velocity is NOT the Goal - PNSQC
Velocity is NOT the Goal - PNSQCVelocity is NOT the Goal - PNSQC
Velocity is NOT the Goal - PNSQCDoc Norton
 
Growing into Excellence - PNSQC
Growing into Excellence - PNSQCGrowing into Excellence - PNSQC
Growing into Excellence - PNSQCDoc Norton
 

More from Doc Norton (20)

Tuckman Was Wrong
Tuckman Was WrongTuckman Was Wrong
Tuckman Was Wrong
 
A Practical Guide to Cynefin
A Practical Guide to CynefinA Practical Guide to Cynefin
A Practical Guide to Cynefin
 
Building Blocks of a Knowledge Work Culture - NDC London 2016
Building Blocks of a Knowledge Work Culture - NDC London 2016Building Blocks of a Knowledge Work Culture - NDC London 2016
Building Blocks of a Knowledge Work Culture - NDC London 2016
 
Codemash pre-compiler - Collaborative Decision Making
Codemash pre-compiler - Collaborative Decision MakingCodemash pre-compiler - Collaborative Decision Making
Codemash pre-compiler - Collaborative Decision Making
 
Experimentation Mindset
Experimentation MindsetExperimentation Mindset
Experimentation Mindset
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to Agile
 
Autonomy, Connection, and Excellence; The Building Blocks of a DevOps Culture
Autonomy, Connection, and Excellence; The Building Blocks of a DevOps CultureAutonomy, Connection, and Excellence; The Building Blocks of a DevOps Culture
Autonomy, Connection, and Excellence; The Building Blocks of a DevOps Culture
 
Creative Collaboration: Tools for Teams
Creative Collaboration: Tools for TeamsCreative Collaboration: Tools for Teams
Creative Collaboration: Tools for Teams
 
Experimentation mindset
Experimentation mindsetExperimentation mindset
Experimentation mindset
 
Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014
Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014
Agile Metrics : Velocity is NOT the Goal - NDC Oslo 2014
 
Let's Start An Epidemic
Let's Start An EpidemicLet's Start An Epidemic
Let's Start An Epidemic
 
Teamwork Ain't Easy - RailsConf 2014
Teamwork Ain't Easy - RailsConf 2014Teamwork Ain't Easy - RailsConf 2014
Teamwork Ain't Easy - RailsConf 2014
 
Creating a Global Engineering Culture - Agile india 2014
Creating a Global Engineering Culture - Agile india 2014Creating a Global Engineering Culture - Agile india 2014
Creating a Global Engineering Culture - Agile india 2014
 
Doc That Conference Keynote
Doc That Conference KeynoteDoc That Conference Keynote
Doc That Conference Keynote
 
Agile Metrics: Velocity is NOT the Goal - Agile 2013 version
Agile Metrics: Velocity is NOT the Goal - Agile 2013 versionAgile Metrics: Velocity is NOT the Goal - Agile 2013 version
Agile Metrics: Velocity is NOT the Goal - Agile 2013 version
 
Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013
Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013
Agile Metrics; Velocity is NOT the Goal - ScrumGathering 2013
 
Velocity is not the goal code palo-usa
Velocity is not the goal   code palo-usaVelocity is not the goal   code palo-usa
Velocity is not the goal code palo-usa
 
Teamwork Ain't Easy
Teamwork Ain't EasyTeamwork Ain't Easy
Teamwork Ain't Easy
 
Velocity is NOT the Goal - PNSQC
Velocity is NOT the Goal - PNSQCVelocity is NOT the Goal - PNSQC
Velocity is NOT the Goal - PNSQC
 
Growing into Excellence - PNSQC
Growing into Excellence - PNSQCGrowing into Excellence - PNSQC
Growing into Excellence - PNSQC
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

The Technical Debt Trap

  • 1. The Technical Debt Trap Michael J Norton @DocOnDev LeanDog LLC* *The views expressed are not necessarily the views of LeanDog LLC (but they could be)
  • 4. What is Technical Debt? Ward Cunningham oopsla’92
  • 5. What is Technical Debt? Ward Cunningham Shipping first time code is like going into debt. oopsla’92
  • 6. What is Technical Debt? Ward Cunningham Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite. oopsla’92
  • 7. What is Technical Debt? Ward Cunningham The danger occurs when the debt is not repaid. Every minute spent on not- quite-right code counts as interest on that debt. oopsla’92
  • 8. What is Technical Debt? Ward Cunningham The danger occurs when the debt is not repaid. Every minute spent on not- quite-right code counts as interest on that debt. oopsla’92
  • 9. Technical Debt is a Good Idea
  • 10. Technical Debt is a Good Idea WTF?
  • 11. Technical Debt is a Good Idea Strategic Design Decision
  • 12. Technical Debt is a Good Idea Strategic Design Decision Allow for Rapid Delivery To Ellicit Quick Feedback And Correct Design
  • 13. Technical Debt is a Metaphor Here Be Danger
  • 14. Metaphors Rock We reason by analogy Can’t keep running at this pace Building on a weak foundation Puts pressure on It’s raining men our design
  • 15. Metaphors Rock We reason by analogy Can’t keep running at this pace Building on a weak foundation Puts pressure on It’s raining men our design (hallelujah)
  • 17. Metaphorphosis When Metaphors go wrong Return on Investment Short-Term Fraudulent Credit Card Inadvertent RecklessScheme Pyramid Debt Auto Loan High Interest in the Third Quadrant Home Loan Voluntary Intentional Loan Shark Long-Term Prudent Student Loan Pragmatic Leverage Operational
  • 19. Metaphorphosis When Metaphors go wrong “cut a lot of corners” James Shore http://jamesshore.com/Blog/CardMeeting/Voluntary-Technical-Debt.html “quick and dirty” Martin Fowler “sloppy” http://www.martinfowler.com/bliki/TechnicalDebt.html David Laribee “just hack it in” http://msdn.microsoft.com/en-us/magazine/ee819135.aspx Steve McConnell http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
  • 20. That’s not what I said Ward Cunningham [Many] have explained the debt metaphor and confused it with the idea that you could write code poorly with the intention of doing a good job later. http://www.youtube.com/watch?v=pqeJFYwnkjE&feature=player_embedded youtube.com 2009
  • 21. That’s not what I said Ward Cunningham [Many] have explained the debt metaphor and confused it with the idea that you could write code poorly with the intention of doing a good job later. http://www.youtube.com/watch?v=pqeJFYwnkjE&feature=player_embedded youtube.com 2009
  • 22. That’s not what I said Ward Cunningham ... confused it with the idea that you could write code poorly ... youtube.com 2009
  • 23. Clean Code is Required Ward Cunningham The ability to pay back debt [...] depends upon you writing code that is clean enough to be able to refactor as you come to understand your problem. youtube.com 2009
  • 24. Clean Code is Required Ward Cunningham The ability to pay back debt [...] depends upon you writing code that is clean enough to be able to refactor as you come to understand your problem. youtube.com 2009
  • 25. Dirty Code is a Bad Idea Ward Cunningham Dirty code is to technical debt as the pawn broker is to financial debt. Don't think you are ever going to get your code back. http://twitter.com/WardCunningham/status/3742903303 twitter 2009
  • 26. Is it Technical Debt? Ask yourself... Is the code clean? Is the code tested? Is there a learning objective? Is there a plan for payback? Is the business truly informed?
  • 27. Is it Technical Debt? If you said no to even one Is the code clean? Is the code tested? Is there a learning objective? Is there a plan for payback? Is the business truly informed? Then you don’t have Technical Debt
  • 28. You have cruft Cruft (noun) 1. An unpleasant substance 2. The result of shoddy construction 3. Redundant, old or improperly written code
  • 29. You have a mess Mess (noun) 1. Disorderly accumulation, heap, or jumble 2. A state of embarrassing confusion 3. An unpleasant or difficult situation
  • 30. Chill. It’s just semantics, man.
  • 31. Chill. It’s just semantics, man. JUST Semantics? Technical Debt is Good
  • 32. Chill. It’s just semantics, man. JUST Semantics? Technical Debt is Good
  • 33. Chill. It’s just semantics, man. JUST Semantics? Quick and Dirty is Technical Debt is Good
  • 34. Chill. It’s just semantics, man. JUST Semantics? Quick and Dirty is Good
  • 35. Chill. It’s just semantics, man. JUST Semantics? Quick and Dirty is Good
  • 36. Messy Code is a Bad Decision Every Time
  • 37. Messy Code is a Bad Decision Every Time You are a professional developer (Professionals behave ethically)
  • 38. Messy Code is a Bad Decision Every Time You are a professional developer (Professionals behave ethically) You are going to create unintentional cruft (You can’t help it. It’s unintentional.)
  • 39. Messy Code is a Bad Decision Every Time You are a professional developer (Professionals behave ethically) You are going to create unintentional cruft (You can’t help it. It’s unintentional.) You have to clean up the existing cruft (Intent doesn’t alter Responsibility)
  • 40. Grammy Doesn’t Love Me! Setting Expectations
  • 42. The Trap Mess begets mess Precedent for Speed over Quality Expectation of increased velocity Mess slows you down Must generate more mess to keep up
  • 43. The Trap Mess begets mess Precedent for Speed over Quality Expectation of increased velocity Mess slows you down Must generate more mess to keep up Ask permission to do your job correctly
  • 44. Avoid The Trap Incremental Fixes Fail http://www.jacoozi.com/blog/wp-content/uploads/2007/01/refactoring_coc_big.jpg
  • 45. Avoid The Trap Clean Constantly
  • 46. Avoid The Trap Clean Constantly Never make an intentional mess Follow the Boy Scout Rule Monitor your “Technical Debt” Quality is your responsibility
  • 47. Avoid The Trap Clean Constantly Never make an intentional mess Follow the Boy Scout Rule Monitor your “Technical Debt” Quality is your responsibility NEVER ask permission to do your job correctly
  • 49. Lean Start-Ups No exceptions Quick Does NOT Mean Crappy You must have a plan for payback Be careful of the precedent you set Quality is STILL your responsibility
  • 50. Lean Start-Ups No exceptions Quick Does NOT Mean Crappy You must have a plan for payback Be careful of the precedent you set Quality is STILL your responsibility NEVER ask permission to do your job correctly
  • 52. Thank You! The Technical Debt Trap Michael J Norton @DocOnDev LeanDog LLC* doc@leandog.com *The views expressed are not necessarily the views of LeanDog LLC (but they could be)

Editor's Notes

  1. Design decisions that allow for more rapid delivery / illicit quick feedback / gather data necessary to correct design
  2. - Sales site for complex product. Create product configuration views. - Plan to sell several different products. Starting with just one. Don’t extract interface yet.
  3. - Sales site for complex product. Create product configuration views. - Plan to sell several different products. Starting with just one. Don’t extract interface yet.
  4. - Sales site for complex product. Create product configuration views. - Plan to sell several different products. Starting with just one. Don’t extract interface yet.
  5. Not acceptable to violate accounting practices, violate safety laws, or risk patient’s health
  6. Not acceptable to violate accounting practices, violate safety laws, or risk patient’s health
  7. Not acceptable to violate accounting practices, violate safety laws, or risk patient’s health
  8. Not acceptable to violate accounting practices, violate safety laws, or risk patient’s health
  9. Not acceptable to violate accounting practices, violate safety laws, or risk patient’s health
  10. Not acceptable to violate accounting practices, violate safety laws, or risk patient’s health