Your SlideShare is downloading. ×
0
Continuous Integration
            - A Framework for Better Quality Software
            Richmond SPIN




               ...
Who am I?



  Principal of OpenSource Connections
 Contributer to CruiseControl and
 Continuum CI projects
 Member of ...
What are we talking about?



   What is CI?
   Why does it matter to me?
   What do I need to use CI?
   Demonstratio...
What is Continuous Integration?




         From Martin Fowler:


         “a fully automated and reproducible build,
   ...
Rapid Feedback




                            < 10 minutos




   Continuous Integration                  RICHMOND, May 1...
How is CI important to different members of a team?




                                                                  ...
Life of a programmer without CI...



   Unstable code, integration is difficult
  Many build errors reported
  Only on...
Life of a programmer with CI...



     The build process is simple and repeatable
    Elimination of Human Error
    D...
For a tester




      control
  


     What is in the build?
     What has changed between builds?
     How do I ver...
For a Project Manager




      Visibility
  




                                                     10
   Continuous I...
For a Project Manager




                                                     11
   Continuous Integration   RICHMOND, Ma...
For a development team




      security
  




                                                     12
   Continuous In...
For a development team




                                                     13
   Continuous Integration   RICHMOND, M...
For a development team




                                                     14
   Continuous Integration   RICHMOND, M...
For a development team




                                                     15
   Continuous Integration   RICHMOND, M...
What is needed to get started?



   A dedicated machine
   Source Control
   Automated Build Script
   Method of noti...
What are the challenges to using CI?




                                                                17
    Continuous...
Challenge One: Cultural Change



    CI needs a champion who acts as the ambassador to the leaders of the
   organizatio...
Challenge Two: Environmental Difficulties




 All the tests should be true unit tests, not
integration tests
 Few or no...
Challenge Three: Project Characteristics



   Fewer branches to the code makes life easier
   Many small code changes. ...
Challenge Four: Stability of CI Tool




                                                      X
    The CI system must b...
Demo of Hudson




                                                     22
   Continuous Integration   RICHMOND, May 13, 2...
Where does CI fit into the SPIN World?




                                                                               ...
CI Maturity Model?



   Fewer branches to the code makes life easier
   Many small code changes. Code is committed thro...
Virtuous Circle?



    Metrics are hard to get
    Developers rebel against on high management
    Need good processes...
HackyStat




                                                     26
   Continuous Integration   RICHMOND, May 13, 2009

...
Test Automation



   CI increases the rewards for doing test automation
      unit
      integration
      functional...
Where to next?



    Continuous Integration: Improving Software Quality
   and Reducing Risk
   CITConf is the conferen...
Matrix of 22 differences in CI systems

  http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix




    ...
Why CI?



   Eliminate human errors
   Tests that run frequently are more valuable
   A CI system is the foundation of...
RICHMOND
Eric Pugh epugh@opensourceconnections.com
                                            May 13th, 2009



         ...
Upcoming SlideShare
Loading in...5
×

Ci Presentation for SPIN

1,060

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,060
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Ci Presentation for SPIN"

  1. 1. Continuous Integration - A Framework for Better Quality Software Richmond SPIN Richmond Eric Pugh May 13th, 2009 1
  2. 2. Who am I?  Principal of OpenSource Connections Contributer to CruiseControl and Continuum CI projects Member of Apache Software Foundation Presenter at many conferences including OSCON, ApacheCON, jTDS, ExpoQA Fascinated by the art of software development Continuous Integration RICHMOND, May 13, 2009 2
  3. 3. What are we talking about? What is CI? Why does it matter to me? What do I need to use CI? Demonstration of Hudson Where does CI fit into the SPIN World? Questions! 3 Continuous Integration RICHMOND, May 13, 2009 3
  4. 4. What is Continuous Integration? From Martin Fowler: “a fully automated and reproducible build, including testing, that runs many times a day”. http://martinfowler.com/articles/continuousIntegration.html 4 Continuous Integration RICHMOND, May 13, 2009 4
  5. 5. Rapid Feedback < 10 minutos Continuous Integration RICHMOND, May 13, 2009 5
  6. 6. How is CI important to different members of a team? 6 Continuous Integration RICHMOND, May 13, 2009 6
  7. 7. Life of a programmer without CI...  Unstable code, integration is difficult Many build errors reported Only one person on the team can build the entire project Demonstrations require extensive planning Feedback cycle is long Every day is a struggle to be productive 7 Continuous Integration RICHMOND, May 13, 2009 7
  8. 8. Life of a programmer with CI...  The build process is simple and repeatable Elimination of Human Error Demo’s are quick and easy Feedback cycle is very rapid Every day you know you can code! 8 Continuous Integration RICHMOND, May 13, 2009 8
  9. 9. For a tester control   What is in the build?  What has changed between builds?  How do I verify functionality? 9 Continuous Integration RICHMOND, May 13, 2009 9
  10. 10. For a Project Manager Visibility  10 Continuous Integration RICHMOND, May 13, 2009 10
  11. 11. For a Project Manager 11 Continuous Integration RICHMOND, May 13, 2009 11
  12. 12. For a development team security  12 Continuous Integration RICHMOND, May 13, 2009 12
  13. 13. For a development team 13 Continuous Integration RICHMOND, May 13, 2009 13
  14. 14. For a development team 14 Continuous Integration RICHMOND, May 13, 2009 14
  15. 15. For a development team 15 Continuous Integration RICHMOND, May 13, 2009 15
  16. 16. What is needed to get started? A dedicated machine Source Control Automated Build Script Method of notification 16 Continuous Integration RICHMOND, May 13, 2009 16
  17. 17. What are the challenges to using CI? 17 Continuous Integration RICHMOND, May 13, 2009 17
  18. 18. Challenge One: Cultural Change  CI needs a champion who acts as the ambassador to the leaders of the organization. Thought leaders in the organization who can help encourage developers to accept the process changes that CI brings  A very successful test case ¿A greenfield project if possible? 18 Continuous Integration RICHMOND, May 13, 2009 18
  19. 19. Challenge Two: Environmental Difficulties  All the tests should be true unit tests, not integration tests  Few or no external dependencies  A beefy build server...  A strategy for deploying code into the CI environment Database changes are SIMPLE 19 Continuous Integration RICHMOND, May 13, 2009 19
  20. 20. Challenge Three: Project Characteristics Fewer branches to the code makes life easier Many small code changes. Code is committed throughout the day. There are good unit test coverage. The code is ready for deployment, not in pieces. 20 Continuous Integration RICHMOND, May 13, 2009 20
  21. 21. Challenge Four: Stability of CI Tool X The CI system must be as well maintained as the Source Control system. The CI system performs builds very quickly. Who has responsibility for CI? It’s very important to have a “throat to choke”. No false alarms. If there are false alarms then the developers lose confidence in the CI ✓ system. 21 Continuous Integration RICHMOND, May 13, 2009 21
  22. 22. Demo of Hudson 22 Continuous Integration RICHMOND, May 13, 2009 22
  23. 23. Where does CI fit into the SPIN World? 23 Continuous Integration RICHMOND, May 13, 2009 23
  24. 24. CI Maturity Model? Fewer branches to the code makes life easier Many small code changes. Code is committed throughout the day. There are good unit test coverage. The code is ready for deployment, not in pieces. http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html 24 Continuous Integration RICHMOND, May 13, 2009 24
  25. 25. Virtuous Circle? Metrics are hard to get Developers rebel against on high management Need good processes that support and encourage other good processes 25 Continuous Integration RICHMOND, May 13, 2009 25
  26. 26. HackyStat 26 Continuous Integration RICHMOND, May 13, 2009 26
  27. 27. Test Automation CI increases the rewards for doing test automation unit integration functional? system? 27 Continuous Integration RICHMOND, May 13, 2009 27
  28. 28. Where to next?  Continuous Integration: Improving Software Quality and Reducing Risk CITConf is the conference for CI. This year it was April 24, 25 in Minneapolis, MN. Take a handout with reference links! 28 Continuous Integration RICHMOND, May 13, 2009 28
  29. 29. Matrix of 22 differences in CI systems http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix 29 Continuous Integration RICHMOND, May 13, 2009 29
  30. 30. Why CI? Eliminate human errors Tests that run frequently are more valuable A CI system is the foundation of a project status dashboard Eliminate integration problems! 30 Continuous Integration RICHMOND, May 13, 2009 30
  31. 31. RICHMOND Eric Pugh epugh@opensourceconnections.com May 13th, 2009 31
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×