SlideShare a Scribd company logo
SCRUM & TECHNICAL DEBT




              CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                               1
Joe Little

• Agile Coach & Trainer
• 20+ years in senior level consulting to well-known firms in New York, London and
  Charlotte
• Focus on delivery of Business Value; interest in Lean
• CST, CSP, CSM; MBA
• Was Senior Manager in Big 6 consulting
• Head of Kitty Hawk Consulting, Inc. since 1991
• Head of LeanAgileTraining.com
• Started trying to do [Agile] before reading The Mythical Man-Month

    –   http://agileconsortium.blogspot.com
    –   jhlittle@kittyhawkconsulting.com




                                                           © Joe Little 2010
                                                                               2
Customers want a quality
product quickly.




                      © Joe Little 2010
                                          3
What is technical debt
How would you notice it?

A velocity that is based on a weak definition of
done is just a lie!!!

"Scrum made me go too fast!" NO!!!

The bad news does not get better with age

How do we explain technical debt to the
product owner?
How do we explain technical debt to the
managers?
                                     © Joe Little 2010
                                                         4
The importance of a definition of done in
Scrum
The importance of professionalism in Scrum
The importance of strong engineering
practices in Scrum
Scrum assumes your engineering practices are
not "perfect"

Why is Scrum only a framework?

Some key engineering practices (mostly from
XP)

Incentives
                                  © Joe Little 2010
                                                      5
Scrum Dynamic Model

              Daily
             Meeting



                       Sprint
                        I
         R              M        D
                        P
         E              E        O
         A              D        N
         D              I        E
                        M
 Value   Y              E                     Velocity
                        N
                        T
                        S

                                CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                 6
Technical Debt is bad. Period.
Very bad!




                       © Joe Little 2010
                                           7
What is Technical Debt?

And why is it bad? (Very bad.)




                          © Joe Little 2010
                                              8
A velocity that allows technical
debt to be built is a lie!

A velocity that is built on a
weak definition of done is a lie!



                         © Joe Little 2010
                                             9
“Scrum made us go too fast!”

No!




                       © Joe Little 2010
                                           10
Definition of Done
    needed to split stories                    Default Definition of Done
                                               • Automated tests, built & run
Default Definition of Done                     • No bugs
                                               • Acceptance tested
• Releasable                                   • Release notes written
                                               • Releasable
                                               • No increased technical debt
   Default Definition of Done
   • Unit/Integration tested
   • Accepted by PO
   • Ready for acceptance test
   • Deployed on demo server                                 = I haven’t made
                                                           the codebase hard to
                                                                  change
  What’s NOT included in DoD?
  - Example: ”customer acceptance test + user documentation”?
  Why not? Who does it? When? What happens if a problem turns up?



  Source: Henrik Kniberg                              CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                                          11
Topic: Velocity & technical debt
                                                                   Queue
                                                                         theory
                                                Chaos theory                                      Principles
                             e   arch
                         Res            Agile            Lean      Game theory

                          History           Philosophy   More theory...




                                                   m
                                            Scru       XP
                                                                   Practices



                                                                                            Implementation

                                                         Company
               Company                                         B                      Company
                         A                                                           Company
                                                                                                C
Source: Henrik Kniberg                                                                         C
                                                                      CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                                                      12
Clean & simple
                                                                                         Dog.java v1.1
Dog.java v0                     Dog.java v1.0                                            Big & hairy
                                Quick & dirty                    import java.sql.Connection;
                                                                 import java.util.concurrent.ExecutorService;
                                                                 import java.util.concurrent.Executors;

                                                                 public class Dog {
                    public class Dog {                           private Executor executor = Executors.newFixedThreadPool(18);
                                                                 private int CACHE_SIZE = 50;
                      public static void main(String[] args) {
                         System.out.println("WOOF 1!");          public Dog()
                                                                 {
                         System.out.println("WOOF 2!");          try
                                                                 {
                      }                                               Class.forName("oracle.jdbc.ThinDriver");
                                                                      connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin",
                    }                                            "beefhead");
                                                                      statement = connection.prepareStatement("insert into Dog values (?, ?, ?)");
                                                                      } catch (ClassNotFoundException e) {}

                                                                 new Thread().start();
                                                                 }

                                                                 public void woof(Person woofCaller) {
                                                                 Connection connection = null;
                                                                 PreparedStatement statement = null;
                                                                 try {
                                                                      connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin",

       Dog.java v1.2                                             "beefhead");
                                                                      statement = connection.prepareStatement("insert into Dog values (?, ?, ?)");
                                                                      statement.setLong(1, System.currentTimeMillis());

       Clean & simple                                                 statement.setString(2, person.getName());
                                                                      statement.setString(3, person.getPhoneNumber().getNumber());
                                                                      statement.executeUpdate();
                                                                      }
                                                                      }
                                                                 }
public class Dog {                                               } Connection a = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin",

   private final String name;      Simple code:                  "beefhead");
                                                                 b =    a.prepareStatement("select * from Dog where name = '" + name + "'");
                                                                   c = b.executeQuery();
   private int woofCount = 0;
                                   1.Passes all tests            if (c.next()) {
                                                                 String foundName = c.getString("name");
                                                                      PhoneNumber phoneNumber = new PhoneNumber(c.getString(“woofCount"));

    public Dog(String name) {      2.No duplication                   Person person = new Person(foundName, phoneNumber);
                                                                 return person;
        this.name = name;                                        } else {

    }                              3.Readable                    }
                                                                      return new Person("", null);




    public void woof() {
                                   4.Minimal                     } catch (SQLException e) {
                                                                      return null;
                                                                 } catch (IllegalArgumentException x) {
                                                                      throw x;
        ++woofCount;                                                  }
                                                                 }
    }
}                                  Simple is hard!               public List<Person> getAll() {
                                                                      connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin",
                                                                 "beefhead");
                                                                      statement = connection.prepareStatement("insert into Dog values (?, ?, ?)");
                                                                      statement.setLong(1, System.currentTimeMillis());
                                                                 }
                                                                 if (statement != null) {
                                                                 if (c.next()) {

     Henrik Kniberg                                              String foundName = c.getString("name");

                                                                   CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                      PhoneNumber phoneNumber = new PhoneNumber(c.getString(“woofCount"));
                                                                      Person person = new Person(foundName, phoneNumber);
                                                                 return person;
                                                                 } else {
                                                                                                                      13
Velocity calibration
Estimated       Actual
Velocity        Velocity   Estimated           Actual
    40             30          40                   30
    30             28          40                    30
    30             31          40                   30
    30             30

Estimated       Actual     Estimated            Actual
    40             30        30 40                   35
    50              30       25 35                   30
    60             30        20 30                   25

  Source: Henrik Kniberg            CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                    14
Technical debt & release planning

Remaining
story points

       400
                                    We’ll be
                                    done by
       300                         sprint 10!
                                                       Sorry, we’re late!
                                                     We should definitely
       200                                           by done by sprint 12!   Um... we’re done
                                                                             when we’re done!


       100




               1   2   3   4   5    6   7   8   9 10 11 12 13 14 15
                                            Sprint


      Source: Henrik Kniberg                                                 CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                                                             15
3 roles
                                                                                           • Product owner
                                                                                           • Scrum master
                                    Definition of Done                                     • Team

    Technical debt                  • .... bla bla ....                                    3 artifacts
                                                                                           • Product backlog
                                    • No increased technical debt                          • Sprint backlog
              Code duplication                                                             • Sprint burndown


              Test coverage
                                                                                           4 activities
                                                                                           • Sprint planning
                                                                                           • Daily scrum

              Code readability                                                             • Sprint review
                                                                                           • Retrospective

Vmax                                     Vmax
Vactual
                                        Vactual
                                                                       Sustainable pace!
   velocity




                                           velocity


                             time                                         time

    Source: Henrik Kniberg                            CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                                      16
3 roles
                                                                                                                           • Product owner
                                                                                                                           • Scrum master
                                                                                                                           • Team


          Dealing with technical debt                                                                                      3 artifacts
                                                                                                                           • Product backlog
                                                                                                                           • Sprint backlog
                                                                                                                           • Sprint burndown

                                                                                                                           4 activities
                                                                                                                           • Sprint planning
                                                                                                                           • Daily scrum
                                                   Definition of Done                  Definition of Done                  • Sprint review
                                                                                                                           • Retrospective
Vmax                                               • .... bla bla ....                 • .... bla bla ....
                                                   • No increased technical debt       • Technical debt decreased
Vactua
  l                Ro
                        ad
                             to
      velocity




                                  he
                                       ll

                                                                                                                     pa   ce!
                                                                                                            a   sing
                                                      Sustainable pace                              Incre
                                                                                       Second step
                                                   First step                          (optional)
                                                   Slow down                           Slow down even more
                                                   Stop accumulating debt              Start repaying debt



                                            time
          Source: Henrik Kniberg                                                   CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                                                                                     17
Knowledge decays fast

 Don’t let any bugs escape the Sprint




                              CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010
                                                              18
Time cost of&defects for you?
                  Itera&ve	
   	
  Incremental	
  


                 Relative Cost of defects if fixed later
50

45

40

35

30

25

20

15

10

 5

 0
10 minutes    1 hour   Same Day   Next Day   1 Week   2 weeks   1 month   2 months
The bad news does not get better with age!!!

We have to go slow to go fast.




                                   © Joe Little 2010
                                                       20
How do we explain Technical
Debt to the Product Owner?

How do we explain Technical
Debt to the manager?



                      © Joe Little 2010
                                          21
The importance of a definition
of done.

We recommend a detailed
Definition of Done, that is clear
about how we will not build
technical debt.
Technical debt & Scrum.
  Engineering practices
  Improvements
  Framework
Key Engineering Practices




                 Which ones??
Key Engineering Practices

  ...pair programming
  ...TDD
  ...continuous integration
  ...refactoring, refactoring, refactoring
  ...10 minute build
  ...automatic unit tests
  ...automated functional tests (other names)
  ...automated other testing (regression
  especially)
How do we give the team the
proper incentives?

(Or avoid the wrong
incentives??)
What do we measure to assure
proper incentives?
* We focus on speed and low
work-in-process.
* We see the impediments
better.
* We fix the root causes.
* Over time, this enables
everything: cheaper, higher
quality, faster, more what they
want.
The End



   Please send me your comments and
suggestions. This is an important topic. If
it were easy, we as an industry would not
 have this problem. So, I appreciate your
                 feedback.

        jhlittle@kittyhawkconsulting.com
            http://leanagiletraining.com

More Related Content

What's hot

Introduction to OSLC and Linked Data
Introduction to OSLC and Linked DataIntroduction to OSLC and Linked Data
Introduction to OSLC and Linked Dataopenservices
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_FinalYoungSu Son
 
Mary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contractMary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contractAgile Lietuva
 
The CIO Agenda: How to be Relevant in 2010
The CIO Agenda:  How to be Relevant in 2010The CIO Agenda:  How to be Relevant in 2010
The CIO Agenda: How to be Relevant in 2010Jim Vaselopulos
 
How to Re-architect Teamcenter Footprint
How to Re-architect Teamcenter FootprintHow to Re-architect Teamcenter Footprint
How to Re-architect Teamcenter FootprintMatt Tremmel
 
Effective Questioning for ITSM
Effective Questioning for ITSMEffective Questioning for ITSM
Effective Questioning for ITSMITSM Academy, Inc.
 
ATI Technical CONOPS and Concepts Technical Training Course Sampler
ATI Technical CONOPS and Concepts Technical Training Course SamplerATI Technical CONOPS and Concepts Technical Training Course Sampler
ATI Technical CONOPS and Concepts Technical Training Course SamplerJim Jenkins
 
Its mf tunisia-dynamiques-agiles-v1.1b
Its mf tunisia-dynamiques-agiles-v1.1bIts mf tunisia-dynamiques-agiles-v1.1b
Its mf tunisia-dynamiques-agiles-v1.1bLaurent Sarrazin
 
Mobilizing Citizen Engineers to Impact Complex Systems - RallyforImpact
Mobilizing Citizen Engineers to Impact Complex Systems - RallyforImpactMobilizing Citizen Engineers to Impact Complex Systems - RallyforImpact
Mobilizing Citizen Engineers to Impact Complex Systems - RallyforImpactRyan Martens
 
Agile Project Management - coClarity
Agile Project Management - coClarityAgile Project Management - coClarity
Agile Project Management - coClarityGerard Hartnett
 
Enterprise IPv6 Deployment
Enterprise IPv6 Deployment Enterprise IPv6 Deployment
Enterprise IPv6 Deployment Cisco Canada
 
Представляем новую методологию управления сложными проектами - Project Manage...
Представляем новую методологию управления сложными проектами - Project Manage...Представляем новую методологию управления сложными проектами - Project Manage...
Представляем новую методологию управления сложными проектами - Project Manage...Vadim Bogdanov PMP, PfMP, MVP, MCT, MCTS
 
Its mf presentation-dynamiques-agiles-v1.1a
Its mf presentation-dynamiques-agiles-v1.1aIts mf presentation-dynamiques-agiles-v1.1a
Its mf presentation-dynamiques-agiles-v1.1aLaurent Sarrazin
 
Hike (hpkb integrated knowledge environment)
Hike (hpkb integrated knowledge environment)Hike (hpkb integrated knowledge environment)
Hike (hpkb integrated knowledge environment)Barbara Starr
 
Bbx Biz Plan Presentation
Bbx Biz Plan PresentationBbx Biz Plan Presentation
Bbx Biz Plan PresentationPaul Brisson
 
Eon nus hci_master_class
Eon nus hci_master_classEon nus hci_master_class
Eon nus hci_master_classTianwei_liu
 

What's hot (20)

Introduction to OSLC and Linked Data
Introduction to OSLC and Linked DataIntroduction to OSLC and Linked Data
Introduction to OSLC and Linked Data
 
Framework Engineering_Final
Framework Engineering_FinalFramework Engineering_Final
Framework Engineering_Final
 
Mary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contractMary Poppendieck: Agile under contract
Mary Poppendieck: Agile under contract
 
The CIO Agenda: How to be Relevant in 2010
The CIO Agenda:  How to be Relevant in 2010The CIO Agenda:  How to be Relevant in 2010
The CIO Agenda: How to be Relevant in 2010
 
Introduzione a Scrum
Introduzione a ScrumIntroduzione a Scrum
Introduzione a Scrum
 
How to Re-architect Teamcenter Footprint
How to Re-architect Teamcenter FootprintHow to Re-architect Teamcenter Footprint
How to Re-architect Teamcenter Footprint
 
Effective Questioning for ITSM
Effective Questioning for ITSMEffective Questioning for ITSM
Effective Questioning for ITSM
 
Advanced Scrum
Advanced ScrumAdvanced Scrum
Advanced Scrum
 
ATI Technical CONOPS and Concepts Technical Training Course Sampler
ATI Technical CONOPS and Concepts Technical Training Course SamplerATI Technical CONOPS and Concepts Technical Training Course Sampler
ATI Technical CONOPS and Concepts Technical Training Course Sampler
 
Its mf tunisia-dynamiques-agiles-v1.1b
Its mf tunisia-dynamiques-agiles-v1.1bIts mf tunisia-dynamiques-agiles-v1.1b
Its mf tunisia-dynamiques-agiles-v1.1b
 
Mobilizing Citizen Engineers to Impact Complex Systems - RallyforImpact
Mobilizing Citizen Engineers to Impact Complex Systems - RallyforImpactMobilizing Citizen Engineers to Impact Complex Systems - RallyforImpact
Mobilizing Citizen Engineers to Impact Complex Systems - RallyforImpact
 
Agile Project Management - coClarity
Agile Project Management - coClarityAgile Project Management - coClarity
Agile Project Management - coClarity
 
Enterprise IPv6 Deployment
Enterprise IPv6 Deployment Enterprise IPv6 Deployment
Enterprise IPv6 Deployment
 
Представляем новую методологию управления сложными проектами - Project Manage...
Представляем новую методологию управления сложными проектами - Project Manage...Представляем новую методологию управления сложными проектами - Project Manage...
Представляем новую методологию управления сложными проектами - Project Manage...
 
P L N 07 B O1 C Naya Making Big Lean Stick
P L N 07  B O1 C  Naya  Making Big Lean StickP L N 07  B O1 C  Naya  Making Big Lean Stick
P L N 07 B O1 C Naya Making Big Lean Stick
 
Its mf presentation-dynamiques-agiles-v1.1a
Its mf presentation-dynamiques-agiles-v1.1aIts mf presentation-dynamiques-agiles-v1.1a
Its mf presentation-dynamiques-agiles-v1.1a
 
Hike (hpkb integrated knowledge environment)
Hike (hpkb integrated knowledge environment)Hike (hpkb integrated knowledge environment)
Hike (hpkb integrated knowledge environment)
 
Al Asbab Profile 4
Al Asbab Profile 4Al Asbab Profile 4
Al Asbab Profile 4
 
Bbx Biz Plan Presentation
Bbx Biz Plan PresentationBbx Biz Plan Presentation
Bbx Biz Plan Presentation
 
Eon nus hci_master_class
Eon nus hci_master_classEon nus hci_master_class
Eon nus hci_master_class
 

Similar to Technical debt

Bv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyBv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyLeanAgileTraining
 
Amit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the ugly
Amit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the uglyAmit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the ugly
Amit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the uglyAgileSparks
 
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010Brent Barton
 
Testing in an Agile Context 2011
Testing in an Agile Context 2011Testing in an Agile Context 2011
Testing in an Agile Context 2011Chris Sterling
 
The Lean within Scrum
The Lean within ScrumThe Lean within Scrum
The Lean within ScrumOctav Druta
 
ROI at the bug factory - Goldratt & throughput (2004)
ROI at the bug factory - Goldratt & throughput (2004)ROI at the bug factory - Goldratt & throughput (2004)
ROI at the bug factory - Goldratt & throughput (2004)Neil Thompson
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Chris Sterling
 
Intro to BV Engineering Atlanta
Intro to BV Engineering AtlantaIntro to BV Engineering Atlanta
Intro to BV Engineering AtlantaLeanAgileTraining
 
Joe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumJoe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumSFA
 
Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010LeanAgileTraining
 
Slow and dirty with callouts
Slow and dirty with calloutsSlow and dirty with callouts
Slow and dirty with calloutsAgileOnTheBeach
 
Simple Measurements #2
Simple Measurements #2Simple Measurements #2
Simple Measurements #2Schalk Cronjé
 
Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management Brent Barton
 
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...Brent Barton
 
Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012 Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012 Laszlo Szalvay
 
Making Scrum Stick Inside Heavy Regulated Industries (2012)
Making Scrum Stick Inside Heavy Regulated Industries (2012) Making Scrum Stick Inside Heavy Regulated Industries (2012)
Making Scrum Stick Inside Heavy Regulated Industries (2012) Laszlo Szalvay
 
Overcoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in GovernmentOvercoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in Governmentjcichelli
 
Performance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket SciencePerformance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket ScienceScott Barber
 
Simple2rocketscience 120513214533 Phpapp01
Simple2rocketscience 120513214533 Phpapp01Simple2rocketscience 120513214533 Phpapp01
Simple2rocketscience 120513214533 Phpapp01Archana Survase
 

Similar to Technical debt (20)

Bv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.KeyBv Eng & Agile Specs For Scrum U.Key
Bv Eng & Agile Specs For Scrum U.Key
 
Amit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the ugly
Amit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the uglyAmit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the ugly
Amit Monovitch RSA Case Study - Agile SCRUM - The good, the bad and the ugly
 
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010Boeing Webinar - Integrating Quality in Portfolio Management -  oct 2010
Boeing Webinar - Integrating Quality in Portfolio Management - oct 2010
 
Testing in an Agile Context 2011
Testing in an Agile Context 2011Testing in an Agile Context 2011
Testing in an Agile Context 2011
 
The Lean within Scrum
The Lean within ScrumThe Lean within Scrum
The Lean within Scrum
 
ROI at the bug factory - Goldratt & throughput (2004)
ROI at the bug factory - Goldratt & throughput (2004)ROI at the bug factory - Goldratt & throughput (2004)
ROI at the bug factory - Goldratt & throughput (2004)
 
Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011Managing Software Debt in Practice 2011
Managing Software Debt in Practice 2011
 
Intro to BV Engineering Atlanta
Intro to BV Engineering AtlantaIntro to BV Engineering Atlanta
Intro to BV Engineering Atlanta
 
Joe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within ScrumJoe Little - What's Lean got to do with it - The Lean within Scrum
Joe Little - What's Lean got to do with it - The Lean within Scrum
 
Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010Lean within Scrum @ Charlotte SFA July 2010
Lean within Scrum @ Charlotte SFA July 2010
 
Slow and dirty with callouts
Slow and dirty with calloutsSlow and dirty with callouts
Slow and dirty with callouts
 
Simple Measurements #2
Simple Measurements #2Simple Measurements #2
Simple Measurements #2
 
Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management Integrating Quality into Portfolio Management
Integrating Quality into Portfolio Management
 
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
Integrating Quality into Portfolio Management, PMI Silicon Valley Chapter Din...
 
Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012 Enterprise Cloud Development and Agile Transformation Strategy - China 2012
Enterprise Cloud Development and Agile Transformation Strategy - China 2012
 
Scrum & Waterfall: Friend or Foe?
Scrum & Waterfall: Friend or Foe?Scrum & Waterfall: Friend or Foe?
Scrum & Waterfall: Friend or Foe?
 
Making Scrum Stick Inside Heavy Regulated Industries (2012)
Making Scrum Stick Inside Heavy Regulated Industries (2012) Making Scrum Stick Inside Heavy Regulated Industries (2012)
Making Scrum Stick Inside Heavy Regulated Industries (2012)
 
Overcoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in GovernmentOvercoming Barriers to Adoption of Virtual Worlds in Government
Overcoming Barriers to Adoption of Virtual Worlds in Government
 
Performance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket SciencePerformance Testing in Context; From Simple to Rocket Science
Performance Testing in Context; From Simple to Rocket Science
 
Simple2rocketscience 120513214533 Phpapp01
Simple2rocketscience 120513214533 Phpapp01Simple2rocketscience 120513214533 Phpapp01
Simple2rocketscience 120513214533 Phpapp01
 

More from LeanAgileTraining

Intro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshopIntro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshopLeanAgileTraining
 
Intro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshopIntro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshopLeanAgileTraining
 
Short Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPAShort Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPALeanAgileTraining
 
Webinar: A Real Team + A Better Sprint Planning Meeting
Webinar: A Real Team + A Better Sprint Planning MeetingWebinar: A Real Team + A Better Sprint Planning Meeting
Webinar: A Real Team + A Better Sprint Planning MeetingLeanAgileTraining
 
Agile Transformation - 4 Suggestions & Discussion
Agile Transformation - 4 Suggestions & Discussion Agile Transformation - 4 Suggestions & Discussion
Agile Transformation - 4 Suggestions & Discussion LeanAgileTraining
 
Scaling: Old ideas & some new ones....
Scaling: Old ideas & some new ones....Scaling: Old ideas & some new ones....
Scaling: Old ideas & some new ones....LeanAgileTraining
 
ScrumButt: What it is, how to avoid it
ScrumButt: What it is, how to avoid itScrumButt: What it is, how to avoid it
ScrumButt: What it is, how to avoid itLeanAgileTraining
 
Scrum, Self-Organization, Engagement
Scrum, Self-Organization, EngagementScrum, Self-Organization, Engagement
Scrum, Self-Organization, EngagementLeanAgileTraining
 
Making Your PO Better Now - 9 Ideas
Making Your PO Better Now - 9 IdeasMaking Your PO Better Now - 9 Ideas
Making Your PO Better Now - 9 IdeasLeanAgileTraining
 
Changing Culture v10 (Change, Scrum, Culture)
Changing Culture v10 (Change, Scrum, Culture)Changing Culture v10 (Change, Scrum, Culture)
Changing Culture v10 (Change, Scrum, Culture)LeanAgileTraining
 
Executive Briefing on Agile-Scrum apr2014 v3.key
Executive Briefing on Agile-Scrum apr2014 v3.keyExecutive Briefing on Agile-Scrum apr2014 v3.key
Executive Briefing on Agile-Scrum apr2014 v3.keyLeanAgileTraining
 
Exec Overview to Agile-Scrum
Exec Overview to Agile-ScrumExec Overview to Agile-Scrum
Exec Overview to Agile-ScrumLeanAgileTraining
 

More from LeanAgileTraining (20)

Intro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshopIntro to our Agile Release Planning workshop
Intro to our Agile Release Planning workshop
 
Intro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshopIntro to our CSM Course & Agile Release Planning workshop
Intro to our CSM Course & Agile Release Planning workshop
 
Short Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPAShort Intro to Agile-Scrum for NCA-CPA
Short Intro to Agile-Scrum for NCA-CPA
 
Webinar: A Real Team + A Better Sprint Planning Meeting
Webinar: A Real Team + A Better Sprint Planning MeetingWebinar: A Real Team + A Better Sprint Planning Meeting
Webinar: A Real Team + A Better Sprint Planning Meeting
 
Full-time ScrumMaster - How
Full-time ScrumMaster - HowFull-time ScrumMaster - How
Full-time ScrumMaster - How
 
Agile Transformation - 4 Suggestions & Discussion
Agile Transformation - 4 Suggestions & Discussion Agile Transformation - 4 Suggestions & Discussion
Agile Transformation - 4 Suggestions & Discussion
 
Agile, Culture & Change
Agile, Culture & ChangeAgile, Culture & Change
Agile, Culture & Change
 
Scaling: Old ideas & some new ones....
Scaling: Old ideas & some new ones....Scaling: Old ideas & some new ones....
Scaling: Old ideas & some new ones....
 
The ScrumButt Test
The ScrumButt TestThe ScrumButt Test
The ScrumButt Test
 
ScrumButt: What it is, how to avoid it
ScrumButt: What it is, how to avoid itScrumButt: What it is, how to avoid it
ScrumButt: What it is, how to avoid it
 
The Long March
The Long MarchThe Long March
The Long March
 
Scrum101
Scrum101Scrum101
Scrum101
 
Scrum, Self-Organization, Engagement
Scrum, Self-Organization, EngagementScrum, Self-Organization, Engagement
Scrum, Self-Organization, Engagement
 
Making Your PO Better Now - 9 Ideas
Making Your PO Better Now - 9 IdeasMaking Your PO Better Now - 9 Ideas
Making Your PO Better Now - 9 Ideas
 
Scaling aug 2014 6.key
Scaling aug 2014 6.keyScaling aug 2014 6.key
Scaling aug 2014 6.key
 
Scaling july 2014 4.key
Scaling july 2014 4.keyScaling july 2014 4.key
Scaling july 2014 4.key
 
Changing Culture v10 (Change, Scrum, Culture)
Changing Culture v10 (Change, Scrum, Culture)Changing Culture v10 (Change, Scrum, Culture)
Changing Culture v10 (Change, Scrum, Culture)
 
Changing Culture v9 RDU
Changing Culture v9 RDUChanging Culture v9 RDU
Changing Culture v9 RDU
 
Executive Briefing on Agile-Scrum apr2014 v3.key
Executive Briefing on Agile-Scrum apr2014 v3.keyExecutive Briefing on Agile-Scrum apr2014 v3.key
Executive Briefing on Agile-Scrum apr2014 v3.key
 
Exec Overview to Agile-Scrum
Exec Overview to Agile-ScrumExec Overview to Agile-Scrum
Exec Overview to Agile-Scrum
 

Recently uploaded

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaRTTS
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 

Recently uploaded (20)

De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

Technical debt

  • 1. SCRUM & TECHNICAL DEBT CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 1
  • 2. Joe Little • Agile Coach & Trainer • 20+ years in senior level consulting to well-known firms in New York, London and Charlotte • Focus on delivery of Business Value; interest in Lean • CST, CSP, CSM; MBA • Was Senior Manager in Big 6 consulting • Head of Kitty Hawk Consulting, Inc. since 1991 • Head of LeanAgileTraining.com • Started trying to do [Agile] before reading The Mythical Man-Month – http://agileconsortium.blogspot.com – jhlittle@kittyhawkconsulting.com © Joe Little 2010 2
  • 3. Customers want a quality product quickly. © Joe Little 2010 3
  • 4. What is technical debt How would you notice it? A velocity that is based on a weak definition of done is just a lie!!! "Scrum made me go too fast!" NO!!! The bad news does not get better with age How do we explain technical debt to the product owner? How do we explain technical debt to the managers? © Joe Little 2010 4
  • 5. The importance of a definition of done in Scrum The importance of professionalism in Scrum The importance of strong engineering practices in Scrum Scrum assumes your engineering practices are not "perfect" Why is Scrum only a framework? Some key engineering practices (mostly from XP) Incentives © Joe Little 2010 5
  • 6. Scrum Dynamic Model Daily Meeting Sprint I R M D P E E O A D N D I E M Value Y E Velocity N T S CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 6
  • 7. Technical Debt is bad. Period. Very bad! © Joe Little 2010 7
  • 8. What is Technical Debt? And why is it bad? (Very bad.) © Joe Little 2010 8
  • 9. A velocity that allows technical debt to be built is a lie! A velocity that is built on a weak definition of done is a lie! © Joe Little 2010 9
  • 10. “Scrum made us go too fast!” No! © Joe Little 2010 10
  • 11. Definition of Done needed to split stories Default Definition of Done • Automated tests, built & run Default Definition of Done • No bugs • Acceptance tested • Releasable • Release notes written • Releasable • No increased technical debt Default Definition of Done • Unit/Integration tested • Accepted by PO • Ready for acceptance test • Deployed on demo server = I haven’t made the codebase hard to change What’s NOT included in DoD? - Example: ”customer acceptance test + user documentation”? Why not? Who does it? When? What happens if a problem turns up? Source: Henrik Kniberg CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 11
  • 12. Topic: Velocity & technical debt Queue theory Chaos theory Principles e arch Res Agile Lean Game theory History Philosophy More theory... m Scru XP Practices Implementation Company Company B Company A Company C Source: Henrik Kniberg C CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 12
  • 13. Clean & simple Dog.java v1.1 Dog.java v0 Dog.java v1.0 Big & hairy Quick & dirty import java.sql.Connection; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Dog { public class Dog { private Executor executor = Executors.newFixedThreadPool(18); private int CACHE_SIZE = 50; public static void main(String[] args) { System.out.println("WOOF 1!"); public Dog() { System.out.println("WOOF 2!"); try { } Class.forName("oracle.jdbc.ThinDriver"); connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", } "beefhead"); statement = connection.prepareStatement("insert into Dog values (?, ?, ?)"); } catch (ClassNotFoundException e) {} new Thread().start(); } public void woof(Person woofCaller) { Connection connection = null; PreparedStatement statement = null; try { connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", Dog.java v1.2 "beefhead"); statement = connection.prepareStatement("insert into Dog values (?, ?, ?)"); statement.setLong(1, System.currentTimeMillis()); Clean & simple statement.setString(2, person.getName()); statement.setString(3, person.getPhoneNumber().getNumber()); statement.executeUpdate(); } } } public class Dog { } Connection a = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", private final String name; Simple code: "beefhead"); b = a.prepareStatement("select * from Dog where name = '" + name + "'"); c = b.executeQuery(); private int woofCount = 0; 1.Passes all tests if (c.next()) { String foundName = c.getString("name"); PhoneNumber phoneNumber = new PhoneNumber(c.getString(“woofCount")); public Dog(String name) { 2.No duplication Person person = new Person(foundName, phoneNumber); return person; this.name = name; } else { } 3.Readable } return new Person("", null); public void woof() { 4.Minimal } catch (SQLException e) { return null; } catch (IllegalArgumentException x) { throw x; ++woofCount; } } } } Simple is hard! public List<Person> getAll() { connection = DriverManager.getConnection("jdbc:oracle:thin:@prod", "admin", "beefhead"); statement = connection.prepareStatement("insert into Dog values (?, ?, ?)"); statement.setLong(1, System.currentTimeMillis()); } if (statement != null) { if (c.next()) { Henrik Kniberg String foundName = c.getString("name"); CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 PhoneNumber phoneNumber = new PhoneNumber(c.getString(“woofCount")); Person person = new Person(foundName, phoneNumber); return person; } else { 13
  • 14. Velocity calibration Estimated Actual Velocity Velocity Estimated Actual 40 30 40 30 30 28 40 30 30 31 40 30 30 30 Estimated Actual Estimated Actual 40 30 30 40 35 50 30 25 35 30 60 30 20 30 25 Source: Henrik Kniberg CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 14
  • 15. Technical debt & release planning Remaining story points 400 We’ll be done by 300 sprint 10! Sorry, we’re late! We should definitely 200 by done by sprint 12! Um... we’re done when we’re done! 100 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Sprint Source: Henrik Kniberg CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 15
  • 16. 3 roles • Product owner • Scrum master Definition of Done • Team Technical debt • .... bla bla .... 3 artifacts • Product backlog • No increased technical debt • Sprint backlog Code duplication • Sprint burndown Test coverage 4 activities • Sprint planning • Daily scrum Code readability • Sprint review • Retrospective Vmax Vmax Vactual Vactual Sustainable pace! velocity velocity time time Source: Henrik Kniberg CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 16
  • 17. 3 roles • Product owner • Scrum master • Team Dealing with technical debt 3 artifacts • Product backlog • Sprint backlog • Sprint burndown 4 activities • Sprint planning • Daily scrum Definition of Done Definition of Done • Sprint review • Retrospective Vmax • .... bla bla .... • .... bla bla .... • No increased technical debt • Technical debt decreased Vactua l Ro ad to velocity he ll pa ce! a sing Sustainable pace Incre Second step First step (optional) Slow down Slow down even more Stop accumulating debt Start repaying debt time Source: Henrik Kniberg CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 17
  • 18. Knowledge decays fast Don’t let any bugs escape the Sprint CSM v9.3 © Jeff Sutherland 1993-2008; © Joe Little 2010 18
  • 19. Time cost of&defects for you? Itera&ve    Incremental   Relative Cost of defects if fixed later 50 45 40 35 30 25 20 15 10 5 0 10 minutes 1 hour Same Day Next Day 1 Week 2 weeks 1 month 2 months
  • 20. The bad news does not get better with age!!! We have to go slow to go fast. © Joe Little 2010 20
  • 21. How do we explain Technical Debt to the Product Owner? How do we explain Technical Debt to the manager? © Joe Little 2010 21
  • 22. The importance of a definition of done. We recommend a detailed Definition of Done, that is clear about how we will not build technical debt.
  • 23. Technical debt & Scrum. Engineering practices Improvements Framework
  • 25. Key Engineering Practices ...pair programming ...TDD ...continuous integration ...refactoring, refactoring, refactoring ...10 minute build ...automatic unit tests ...automated functional tests (other names) ...automated other testing (regression especially)
  • 26. How do we give the team the proper incentives? (Or avoid the wrong incentives??)
  • 27. What do we measure to assure proper incentives?
  • 28. * We focus on speed and low work-in-process. * We see the impediments better. * We fix the root causes. * Over time, this enables everything: cheaper, higher quality, faster, more what they want.
  • 29. The End Please send me your comments and suggestions. This is an important topic. If it were easy, we as an industry would not have this problem. So, I appreciate your feedback. jhlittle@kittyhawkconsulting.com http://leanagiletraining.com