Continuous Integration

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    10 Favorites

    Continuous Integration - Presentation Transcript

    1. Continuous Integration Todd Papaioannou
    2. Or, how to build software better, faster, cheaper
    3. What??
    4. What is CI? a development methodology of daily developer integrations verified by automated builds
    5. What is it not? nightly builds developer branches scheduled Integration Points building via IDEs
    6. Continuous Compilation != Continuous Integration
    7. ‘Fraid Not!
    8. Why do it?
    9. Building software can be a risky business
    10. Risk 1: Fixing bugs late is costly Source: http://www.agitar.com/solutions/ why_unit_testing.html
    11. So why is most software built Requirements this way? Design Implementation Testing
    12. Risk 2: Lack of team cohesion “Your changes to Bar are incompatible with mine. How do we merge now?” “When did we decided to upgrade to version 2.0-alpha of the Super library??” “I thought you fixed that 2 months ago!”
    13. Risk 3: Poor quality code base “We have 3 classes doing the same thing??” “Everybody knows double checked locking is a Bad Idea!” “Why can’t I just include Foo and not require all of the other 13 libs?”
    14. Risk 4: Lack of project visibility “What do you mean the tests are failing?” “What’s in version 1.2.3 of the build?” “What’s our code coverage now?
    15. Risk 5: Lack of deployable software “It works on my machine!” “I need a new build to test with” “The [boss|customer|patron] is coming, we need to demo progress asap”
    16. Use Continuous Integration to reduce the risks
    17. Wait! Didn’t you say better, faster, cheaper?
    18. Better Build better quality software That is tested early and often That adheres to best practices and coding standards
    19. Faster Test in parallel, not at the end No integration points Builds become a non event
    20. Cheaper Identify defects earlier Fix when least costly Easily repeatable testing
    21. So what constitutes a build?
    22. Compilation != A Build
    23. Build Ingredients Compilation Test execution Database integration Code inspection Automated deployment Documentation generation
    24. Compilation Ensures code actually compiles On every target platform
    25. Test Execution Ensures product functions as expected Through repeatable testing
    26. DB Integration Ensures DB and code in sync Automates (re)creation of DB and test data
    27. Code Inspections Ensures a healthy code base Identifies problems early Enforces best practices
    28. Automated Deployment Products can be released anytime Continually demo-able state Eliminates “works on my machine”
    29. Documentation Generation Ensures documentation is current Removes burden from developers Produces build reports and metrics
    30. How do I get started?
    31. When do I build? At every check-in Every time a dependency changes
    32. Dependency Graphs Matter!
    33. How do I build? Use a single build script That can run from the cmdline Do not depend on an IDE
    34. Do it continuously Use a dedicated CI server, not cron Trigger on all daily check-ins Not [only] at midnight
    35. Pay attention to your builds Provide immediate feedback Make it easily accessible Require no developer effort
    36. Metrics Matter Identify key metrics and track them visually Act on them immediately
    37. The 7 step program
    38. Learn it, Use it!
    39. Step 1 Commit Early, Commit Often
    40. Step 2 Never commit broken code
    41. Step 3 Fix build failures immediately
    42. Step 4 Fail Fast
    43. Step 5 Act on metrics
    44. Step 6 Build in every target environment
    45. Step 7 Create artifacts from every build
    46. print me! 1. Commit Early, Commit Often 2. Never Commit Broken Code 3. Fix build failures immediately 4. Fail Fast 5. Act on metrics 6. Build in every target environment 7. Create artifacts from every build
    47. Summary
    48. Continuous Integration can help you build better quality software faster, with more confidence
    49. Start using it!
    50. The End
    51. Roll the Photo Credits http://www.flickr.com/photos/24263322@N05/2403969648/ http://www.flickr.com/photos/destinme/1267500829/ http://www.flickr.com/photos/legacyalive/891467616/ http://www.flickr.com/photos/tizianoj/1294103746/ http://www.flickr.com/photos/xeophin/2181342710/ http://www.flickr.com/photos/booddin/2190614236 http://www.flickr.com/photos/thomashawk/176219254 http://www.flickr.com/photos/7446536@N03/430561725 http://www.flickr.com/photos/gallerisager/471366272 http://www.flickr.com/photos/mccain007/2092664145

    + drluckyspindrluckyspin, 2 years ago

    custom

    3174 views, 10 favs, 8 embeds more stats

    Get the skinny on Continuous Integration. What to d more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3174
      • 2982 on SlideShare
      • 192 from embeds
    • Comments 0
    • Favorites 10
    • Downloads 218
    Most viewed embeds
    • 141 views on http://www.luckyspin.org
    • 41 views on http://developer.teradata.com
    • 3 views on http://carmaworld.free.fr
    • 3 views on http://ucenter.googllers.com
    • 1 views on http://surf.googlemashups.com

    more

    All embeds
    • 141 views on http://www.luckyspin.org
    • 41 views on http://developer.teradata.com
    • 3 views on http://carmaworld.free.fr
    • 3 views on http://ucenter.googllers.com
    • 1 views on http://surf.googlemashups.com
    • 1 views on http://redmine.ntis.us.to
    • 1 views on http://static.slideshare.net
    • 1 views on http://devxweb.td.teradata.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories