eXtrem Programming
& Continuous integration
TECHNICAL DEBT
Technical debt
Productivity                          Productivity




                                                                Current

                            Current




                             Time                                Time
         Non managed debt                        Managed debt
eXtrem Programming
                                On-site Customer


                     Coding                        Metaphor
                    Standards    Refactoring

Le client   L’équipe              Le code                     L’équipe   Le client
   Acceptance    Unit Tests                            Pair          Release
     Tests                                         Programming       Planning


                Continuous                            Collective
                Integration      Simple Design        Ownership
                                  Sustainable
                                     Pace

                                 Small Releases
WHY CONTINUOUSLY
  INTEGRATE ?
If it’s hard
do it more often
Feedback circles
CONTINUOUS INTEGRATION
       PATTERNS
CI patterns

• Commit more often

• Every commit builds

• Keep build fast

• Everyone sees what’s happening
Commit more often


• At least once a day
• Small unit of work
• Update first to commit cleanly
Every commit builds


• It’s all about fast feedback
• Small changes
• Less to merge and/or fix
Keep build fast


• If it breaks, you find out about while it’s still fresh
• Keep up with frequent check-ins
• When build isn’t fast enough :
Everyone sees what’s happening

• Reduce time to fix
• No excuse to check in on broken build
• It’s not about blame, it’s about feedback 
Now, what should we do ?

• Write Unit tests
  •   So we really get useful feedback


• Update and commit frequently
  •   So we don’t have to perform painful merges anymore


• Act quickly upon feedback on Unit tests builds
  •   So fixing is easy
Stop the line
Hudson / Jenkins dashboard
Hudson / Jenkins




      2007         2010
The big picture of CI

   Test servers

                                        Binaries repository



                  Continuous             Developper
  Dashboard
                  Integration


                                Build tool


                                   SCM
Objectives!
• Every project has a green (blue) build with
   compilation and unit tests.

• Each broken build should be repaired in less than 15
   minutes.
Ressources :

        http://www.slideshare.net/ChristopherRead/conti
        nuous-integration-build-pipelines-and-
        continuous-deployment

        http://www.slideshare.net/jedi4ever/continuous-
        integration-for-the-world-keynote-final




Merci

Continuous integration

  • 1.
  • 2.
  • 3.
    Technical debt Productivity Productivity Current Current Time Time Non managed debt Managed debt
  • 4.
    eXtrem Programming On-site Customer Coding Metaphor Standards Refactoring Le client L’équipe Le code L’équipe Le client Acceptance Unit Tests Pair Release Tests Programming Planning Continuous Collective Integration Simple Design Ownership Sustainable Pace Small Releases
  • 5.
    WHY CONTINUOUSLY INTEGRATE ?
  • 7.
    If it’s hard doit more often
  • 9.
  • 10.
  • 11.
    CI patterns • Commitmore often • Every commit builds • Keep build fast • Everyone sees what’s happening
  • 12.
    Commit more often •At least once a day • Small unit of work • Update first to commit cleanly
  • 13.
    Every commit builds •It’s all about fast feedback • Small changes • Less to merge and/or fix
  • 14.
    Keep build fast •If it breaks, you find out about while it’s still fresh • Keep up with frequent check-ins • When build isn’t fast enough :
  • 15.
    Everyone sees what’shappening • Reduce time to fix • No excuse to check in on broken build • It’s not about blame, it’s about feedback 
  • 16.
    Now, what shouldwe do ? • Write Unit tests • So we really get useful feedback • Update and commit frequently • So we don’t have to perform painful merges anymore • Act quickly upon feedback on Unit tests builds • So fixing is easy
  • 17.
  • 18.
  • 19.
  • 20.
    The big pictureof CI Test servers Binaries repository Continuous Developper Dashboard Integration Build tool SCM
  • 21.
    Objectives! • Every projecthas a green (blue) build with compilation and unit tests. • Each broken build should be repaired in less than 15 minutes.
  • 22.
    Ressources : http://www.slideshare.net/ChristopherRead/conti nuous-integration-build-pipelines-and- continuous-deployment http://www.slideshare.net/jedi4ever/continuous- integration-for-the-world-keynote-final Merci

Editor's Notes

  • #13 http://www.slideshare.net/ChristopherRead/continuous-integration-build-pipelines-and-continuous-deployment
  • #14 http://www.slideshare.net/ChristopherRead/continuous-integration-build-pipelines-and-continuous-deployment
  • #15 http://www.slideshare.net/ChristopherRead/continuous-integration-build-pipelines-and-continuous-deployment
  • #16 http://www.slideshare.net/ChristopherRead/continuous-integration-build-pipelines-and-continuous-deployment