Achieving Maintenance Stabilisation with Agile, Kanban and Lean
                           Thinking
                        by Zsolt Fabók




@ZsoltFabok                                   March 20, 2012
Myth #1: “There is no place for Agile in
           maintenance!”
Myth #2: “Maintenance is not a team
              work!”
Myth #3: “Maintenance work cannot be
             improved!”
The proof that these myths are wrong:

                             Before*                                                          After*
                        # ID description
        Defects received in
                                9                                                              21
             a week

        Number of days to
           fix a defect                                               11                         6
         (avg. lead time)




* due to confidentiality reasons the numbers have been altered, but the ratio is still valid
Introducing Kanban and visualizing the workflow...
3               2
 Cloud         Queue Reproduction Implementation   Validation   Live

                          #~                #~        #~         #~
     #~         #~
                          ~~                ~~        ~~         ~~
     ~~         ~~
#~
~~        #~
                                     #~
          ~~    #~        #~                                     #~
                                     ~~
   #~           ~~        ~~                                     ~~
# ~~ ~
 #~
~~     #~
 ~~                       #~         #~
       ~~       #~
     #~         ~~        ~~         ~~
     ~~

                #~
                ~~
3               2
 Cloud         Queue Reproduction Implementation   Validation   Live

                          #~                #~        #~         #~
     #~         #~
                          ~~                ~~        ~~         ~~
     ~~         ~~
#~
~~        #~
                                     #~
          ~~    #~        #~                                     #~
                                     ~~
   #~           ~~        ~~                                     ~~
# ~~ ~
 #~
~~     #~
 ~~                       #~         #~
       ~~       #~
     #~         ~~        ~~         ~~
     ~~

                #~
                ~~
3               2
 Cloud         Queue Reproduction Implementation   Validation   Live

                          #~                #~        #~         #~
     #~         #~
                          ~~                ~~        ~~         ~~
     ~~         ~~
#~
~~        #~
                                     #~
          ~~    #~        #~                                     #~
                                     ~~
   #~           ~~        ~~                                     ~~
# ~~ ~
 #~
~~     #~
 ~~                       #~         #~
       ~~       #~
     #~         ~~        ~~         ~~
     ~~

                #~
                ~~




       Collaboration
3               2
 Cloud         Queue Reproduction Implementation   Validation   Live

                          #~                #~        #~         #~
     #~         #~
                          ~~                ~~        ~~         ~~
     ~~         ~~
#~
~~        #~
                                     #~
          ~~    #~        #~                                     #~
                                     ~~
   #~           ~~        ~~                                     ~~
# ~~ ~
 #~
~~     #~
 ~~                       #~         #~
       ~~       #~
     #~         ~~        ~~         ~~
     ~~

                #~
                ~~




       Collaboration                      Optimization
3               2
 Cloud         Queue Reproduction Implementation   Validation   Live

                          #~                #~        #~         #~
     #~         #~
                          ~~                ~~        ~~         ~~
     ~~         ~~
#~
~~        #~
                                     #~
          ~~    #~        #~                                     #~
                                     ~~
   #~           ~~        ~~                                     ~~
# ~~ ~
 #~
~~     #~
 ~~                       #~         #~
       ~~       #~
     #~         ~~        ~~         ~~
     ~~

                #~
                ~~




       Collaboration                      Optimization

                           Leadership
Collaboration Tips and Tricks
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
User story         Defect

Has an owner              Not always         Always

Has a deadline           Fuzzy, flexible   Almost always
Expectations are clear    Not always         Always
Customer contact            Seldom          Too often
Will they be delivered    Not always       Most likely
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
#3: Defect and future oriented daily meeting
3               2
  Cloud       Queue   Reproduction   Implementation   Validation   Live

                         #~                    #~        #~        #~
      #~       #~
                         ~~                    ~~        ~~        ~~
               ~~
 #~ ~~
 ~~      #~
                                      #~
         ~~    #~        #~                                        #~
   #~                                 ~~
               ~~        ~~                                        ~~
## ~ ~
  ~~
~~ ~ # ~
  ~
               #~        #~           #~
     #~ ~
       ~
               ~~        ~~           ~~
    ~~

               #~
               ~~
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
#3: Defect and future oriented daily meeting
#4: Prioritize by cost of delay
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
#3: Defect and future oriented daily meeting
#4: Prioritize by cost of delay
#5: Design discussion every afternoon
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
#3: Defect and future oriented daily meeting
#4: Prioritize by cost of delay
#5: Design discussion every afternoon
#6: Write your own bug report
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
#3: Defect and future oriented daily meeting
#4: Prioritize by cost of delay
#5: Design discussion every afternoon
#6: Write your own bug report
#7: Use collaboration tools for communication
Collaboration Tips and Tricks
#1: Defects aren't different from user stories
#2: Automatic data collection scripts
#3: Defect and future oriented daily meeting
#4: Prioritize by cost of delay
#5: Design discussion every afternoon
#6: Write your own bug report
#7: Use collaboration tools for communication
#8: Throw away old defects
Optimization Tips and Tricks
Optimization Tips and Tricks
#1: Use continuous integration and staging environment
Optimization Tips and Tricks
#1: Use continuous integration and staging environment
#2: Introduce separate swim lanes for different versions
3                    2
 Cloud         Queue Reproduction Implementation        Validation   Live




                     version 1.2
                                         #~                 #~        #~
     #~         #~                            #~
                                         ~~                 ~~        ~~
     ~~         ~~                            ~~
#~
~~        #~
          ~~                                                          #~
   #~           #~
                                                                      ~~
# ~~ ~          ~~
 #~
                     version 2.1
~~     #~                                          #~
 ~~
       ~~                                          ~~
     #~                             #~
     ~~         #~                  ~~
                ~~



                #~                                 #~
                ~~                  #~             ~~
                      version 3.3




                                    ~~
Optimization Tips and Tricks
#1: Use continuous integration and staging environment
#2: Introduce separate swim lanes for different versions
#3: Introduce hot lane for expedite defects
3               2
 Cloud         Queue Reproduction Implementation   Validation   Live




                      hot
                                         #~
     #~         #~                       ~~
     ~~         ~~
#~
~~        #~
          ~~    #~                                  #~
   #~           ~~          #~
                                    #~              ~~
# ~~ ~                      ~~
 #~                                 ~~
~~     #~                                                       #~
 ~~
       ~~       #~                                              ~~
     #~         ~~
     ~~
                                    #~
                                    ~~                           #~
                #~
                ~~                                               ~~

                                    #~
                                    ~~
                #~
                ~~
Optimization Tips and Tricks
#1: Use continuous integration and staging environment
#2: Introduce separate swim lanes for different versions
#3: Introduce hot lane for expedite defects
#4: After reproduction write a test case
Optimization Tips and Tricks
#1: Use continuous integration and staging environment
#2: Introduce separate swim lanes for different versions
#3: Introduce hot lane for expedite defects
#4: After reproduction write a test case
#5: Never test your own code
Optimization Tips and Tricks
#1: Use continuous integration and staging environment
#2: Introduce separate swim lanes for different versions
#3: Introduce hot lane for expedite defects
#4: After reproduction write a test case
#5: Never test your own code
#6: Measure everything, and improve everywhere
Leadership Tips and Tricks
Leadership Tips and Tricks
#1: Keep the Cloud small and the Live large
A retrospective comment:

“Zsolt, can we keep the finished defects on the board? I
feel better when I see how much we finished, while the
new ones keep coming and coming and coming...”
Leadership Tips and Tricks
#1: Keep the Cloud small and the Live large
#2: Discuss problems right on the spot
3                2
 Cloud         Queue Reproduction Implementation    Validation   Live
                                               #~      #~         #~
     #~         #~        #~
                                               ~~      ~~         ~~
     ~~         ~~        ~~
#~
~~        #~
          ~~                                   #~
                #~                                                #~
   #~                                          ~~
                ~~                                                ~~
# ~~ ~
 #~
~~     #~
 ~~                                  #~
       ~~       #~
     #~         ~~                   ~~
     ~~

                #~
                ~~                   #~
                                     ~~   #~
                                          ~~
Leadership Tips and Tricks
#1: Keep the Cloud small and the Live large
#2: Discuss problems right on the spot
#3: Provide feedback to the other teams
Leadership Tips and Tricks
#1: Keep the Cloud small and the Live large
#2: Discuss problems right on the spot
#3: Provide feedback to the other teams
#4: Rotate people between phases
Leadership Tips and Tricks
#1: Keep the Cloud small and the Live large
#2: Discuss problems right on the spot
#3: Provide feedback to the other teams
#4: Rotate people between phases
#5: Weekly face-to-face with everybody
Leadership Tips and Tricks
#1: Keep the Cloud small and the Live large
#2: Discuss problems right on the spot
#3: Provide feedback to the other teams
#4: Rotate people between phases
#5: Weekly face-to-face with everybody
#6: Turn off notifications - email, issue tracker
Thank you very much for your attention!




http://zsoltfabok.com      zsolt.fabok@ericsson.com
Sources of ussd images:
leaders on the field:
   http://carterkellyconsulting.com/lifepoint_leadervisionspirit
 factory floor:
    http://www.copters.com/trips/rhc2006.html
Miners:
  http://www.foreignpolicy.com/articles/2010/05/18/
  the_coal_miners_burden?page=ful
 hipchat:
   http://blogs.atlassian.com/2012/03/meet-hipchat-the-newest-
   member-of-the-atlassian-family/
Continuous delivery:
 http://www.infoq.com/articles/Continous-Delivery-
 Patterns
Cost of delay:
 http://agileconsulting.blogspot.com/2011/03/using-cost-
 of-delay-functions-to.html

Achieving Maintenance Stabilisation with Agile, Kanban and Lean Thinking

  • 1.
    Achieving Maintenance Stabilisationwith Agile, Kanban and Lean Thinking by Zsolt Fabók @ZsoltFabok March 20, 2012
  • 2.
    Myth #1: “Thereis no place for Agile in maintenance!”
  • 3.
    Myth #2: “Maintenanceis not a team work!”
  • 4.
    Myth #3: “Maintenancework cannot be improved!”
  • 5.
    The proof thatthese myths are wrong: Before* After* # ID description Defects received in 9 21 a week Number of days to fix a defect 11 6 (avg. lead time) * due to confidentiality reasons the numbers have been altered, but the ratio is still valid
  • 6.
    Introducing Kanban andvisualizing the workflow...
  • 7.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ #~ ~~ #~ #~ #~ ~~ #~ ~~ ~~ ~~ # ~~ ~ #~ ~~ #~ ~~ #~ #~ ~~ #~ #~ ~~ ~~ ~~ ~~ #~ ~~
  • 8.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ #~ ~~ #~ #~ #~ ~~ #~ ~~ ~~ ~~ # ~~ ~ #~ ~~ #~ ~~ #~ #~ ~~ #~ #~ ~~ ~~ ~~ ~~ #~ ~~
  • 9.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ #~ ~~ #~ #~ #~ ~~ #~ ~~ ~~ ~~ # ~~ ~ #~ ~~ #~ ~~ #~ #~ ~~ #~ #~ ~~ ~~ ~~ ~~ #~ ~~ Collaboration
  • 10.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ #~ ~~ #~ #~ #~ ~~ #~ ~~ ~~ ~~ # ~~ ~ #~ ~~ #~ ~~ #~ #~ ~~ #~ #~ ~~ ~~ ~~ ~~ #~ ~~ Collaboration Optimization
  • 11.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ #~ ~~ #~ #~ #~ ~~ #~ ~~ ~~ ~~ # ~~ ~ #~ ~~ #~ ~~ #~ #~ ~~ #~ #~ ~~ ~~ ~~ ~~ #~ ~~ Collaboration Optimization Leadership
  • 12.
  • 13.
    Collaboration Tips andTricks #1: Defects aren't different from user stories
  • 14.
    User story Defect Has an owner Not always Always Has a deadline Fuzzy, flexible Almost always Expectations are clear Not always Always Customer contact Seldom Too often Will they be delivered Not always Most likely
  • 15.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts
  • 21.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts #3: Defect and future oriented daily meeting
  • 22.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ #~ ~~ ~~ #~ #~ ~~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ## ~ ~ ~~ ~~ ~ # ~ ~ #~ #~ #~ #~ ~ ~ ~~ ~~ ~~ ~~ #~ ~~
  • 23.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts #3: Defect and future oriented daily meeting #4: Prioritize by cost of delay
  • 25.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts #3: Defect and future oriented daily meeting #4: Prioritize by cost of delay #5: Design discussion every afternoon
  • 26.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts #3: Defect and future oriented daily meeting #4: Prioritize by cost of delay #5: Design discussion every afternoon #6: Write your own bug report
  • 27.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts #3: Defect and future oriented daily meeting #4: Prioritize by cost of delay #5: Design discussion every afternoon #6: Write your own bug report #7: Use collaboration tools for communication
  • 28.
    Collaboration Tips andTricks #1: Defects aren't different from user stories #2: Automatic data collection scripts #3: Defect and future oriented daily meeting #4: Prioritize by cost of delay #5: Design discussion every afternoon #6: Write your own bug report #7: Use collaboration tools for communication #8: Throw away old defects
  • 29.
  • 30.
    Optimization Tips andTricks #1: Use continuous integration and staging environment
  • 32.
    Optimization Tips andTricks #1: Use continuous integration and staging environment #2: Introduce separate swim lanes for different versions
  • 33.
    3 2 Cloud Queue Reproduction Implementation Validation Live version 1.2 #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ ~~ #~ #~ #~ ~~ # ~~ ~ ~~ #~ version 2.1 ~~ #~ #~ ~~ ~~ ~~ #~ #~ ~~ #~ ~~ ~~ #~ #~ ~~ #~ ~~ version 3.3 ~~
  • 34.
    Optimization Tips andTricks #1: Use continuous integration and staging environment #2: Introduce separate swim lanes for different versions #3: Introduce hot lane for expedite defects
  • 35.
    3 2 Cloud Queue Reproduction Implementation Validation Live hot #~ #~ #~ ~~ ~~ ~~ #~ ~~ #~ ~~ #~ #~ #~ ~~ #~ #~ ~~ # ~~ ~ ~~ #~ ~~ ~~ #~ #~ ~~ ~~ #~ ~~ #~ ~~ ~~ #~ ~~ #~ #~ ~~ ~~ #~ ~~ #~ ~~
  • 36.
    Optimization Tips andTricks #1: Use continuous integration and staging environment #2: Introduce separate swim lanes for different versions #3: Introduce hot lane for expedite defects #4: After reproduction write a test case
  • 40.
    Optimization Tips andTricks #1: Use continuous integration and staging environment #2: Introduce separate swim lanes for different versions #3: Introduce hot lane for expedite defects #4: After reproduction write a test case #5: Never test your own code
  • 41.
    Optimization Tips andTricks #1: Use continuous integration and staging environment #2: Introduce separate swim lanes for different versions #3: Introduce hot lane for expedite defects #4: After reproduction write a test case #5: Never test your own code #6: Measure everything, and improve everywhere
  • 42.
  • 43.
    Leadership Tips andTricks #1: Keep the Cloud small and the Live large
  • 44.
    A retrospective comment: “Zsolt,can we keep the finished defects on the board? I feel better when I see how much we finished, while the new ones keep coming and coming and coming...”
  • 45.
    Leadership Tips andTricks #1: Keep the Cloud small and the Live large #2: Discuss problems right on the spot
  • 46.
    3 2 Cloud Queue Reproduction Implementation Validation Live #~ #~ #~ #~ #~ #~ ~~ ~~ ~~ ~~ ~~ ~~ #~ ~~ #~ ~~ #~ #~ #~ #~ ~~ ~~ ~~ # ~~ ~ #~ ~~ #~ ~~ #~ ~~ #~ #~ ~~ ~~ ~~ #~ ~~ #~ ~~ #~ ~~
  • 47.
    Leadership Tips andTricks #1: Keep the Cloud small and the Live large #2: Discuss problems right on the spot #3: Provide feedback to the other teams
  • 48.
    Leadership Tips andTricks #1: Keep the Cloud small and the Live large #2: Discuss problems right on the spot #3: Provide feedback to the other teams #4: Rotate people between phases
  • 49.
    Leadership Tips andTricks #1: Keep the Cloud small and the Live large #2: Discuss problems right on the spot #3: Provide feedback to the other teams #4: Rotate people between phases #5: Weekly face-to-face with everybody
  • 50.
    Leadership Tips andTricks #1: Keep the Cloud small and the Live large #2: Discuss problems right on the spot #3: Provide feedback to the other teams #4: Rotate people between phases #5: Weekly face-to-face with everybody #6: Turn off notifications - email, issue tracker
  • 51.
    Thank you verymuch for your attention! http://zsoltfabok.com zsolt.fabok@ericsson.com
  • 52.
    Sources of ussdimages: leaders on the field: http://carterkellyconsulting.com/lifepoint_leadervisionspirit factory floor: http://www.copters.com/trips/rhc2006.html Miners: http://www.foreignpolicy.com/articles/2010/05/18/ the_coal_miners_burden?page=ful hipchat: http://blogs.atlassian.com/2012/03/meet-hipchat-the-newest- member-of-the-atlassian-family/ Continuous delivery: http://www.infoq.com/articles/Continous-Delivery- Patterns Cost of delay: http://agileconsulting.blogspot.com/2011/03/using-cost- of-delay-functions-to.html