Your SlideShare is downloading. ×
Ci Presentation for SPIN
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Ci Presentation for SPIN

1,028
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Continuous Integration - A Framework for Better Quality Software Richmond SPIN Richmond Eric Pugh May 13th, 2009 1
  • 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. 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. 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. Rapid Feedback < 10 minutos Continuous Integration RICHMOND, May 13, 2009 5
  • 6. How is CI important to different members of a team? 6 Continuous Integration RICHMOND, May 13, 2009 6
  • 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. 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. 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. For a Project Manager Visibility  10 Continuous Integration RICHMOND, May 13, 2009 10
  • 11. For a Project Manager 11 Continuous Integration RICHMOND, May 13, 2009 11
  • 12. For a development team security  12 Continuous Integration RICHMOND, May 13, 2009 12
  • 13. For a development team 13 Continuous Integration RICHMOND, May 13, 2009 13
  • 14. For a development team 14 Continuous Integration RICHMOND, May 13, 2009 14
  • 15. For a development team 15 Continuous Integration RICHMOND, May 13, 2009 15
  • 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. What are the challenges to using CI? 17 Continuous Integration RICHMOND, May 13, 2009 17
  • 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. 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. 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. 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. Demo of Hudson 22 Continuous Integration RICHMOND, May 13, 2009 22
  • 23. Where does CI fit into the SPIN World? 23 Continuous Integration RICHMOND, May 13, 2009 23
  • 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. 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. HackyStat 26 Continuous Integration RICHMOND, May 13, 2009 26
  • 27. Test Automation CI increases the rewards for doing test automation unit integration functional? system? 27 Continuous Integration RICHMOND, May 13, 2009 27
  • 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. 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. 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. RICHMOND Eric Pugh epugh@opensourceconnections.com May 13th, 2009 31