• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Continuous Integration Saves the Day
 

Continuous Integration Saves the Day

on

  • 827 views

 

Statistics

Views

Total Views
827
Views on SlideShare
825
Embed Views
2

Actions

Likes
1
Downloads
19
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • What do we really want to do when we integrate? <br />
  • Any big software project has to integrate a bunch of pieces. <br /> Want it to go like this <br /> ...assume that it&#x2019;s going to go like this. <br /> Get all of the different parts running in sync <br />
  • Usually ends up like this <br /> All continuous integration is is putting all of the cars on the road everyday multiple times a day <br /> Causes small accidents to prevent big pile ups. <br />
  • But more importantly... <br />
  • <br />
  • Why would you do this: <br /> -happier developers <br /> -less time fixing bugs <br /> <br />
  • Mark Striebeck - XPDay 2009 Keynote - Google: <br /> Estimated that a bug found during TDD costs $5 to fix, which surges to $50 for tests during a full build and $500 during an integration test. It goes to $5000 during a system test. <br /> <br /> Fixing bugs earlier would save them an estimated $160M per year. <br /> <br />
  • <br />
  • Reduced risk and less bugs <br />
  • What do I need to do Continuous Integration? <br />
  • <br />
  • - Need to be fast <br /> - Don&#x2019;t get a false sense of security <br /> - Unit tests <br /> - More importantly, integration tests (harder to write, slower to run) <br />
  • <br />
  • <br />
  • If a build breaks and no one knows, is it broken? <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • One of those things, like a bug tracker, that everyone seems to write <br />
  • <br />
  • Need to collectively own. <br /> Need buy in from developers and the organization <br /> &#x201C;1 month to write a single integration test&#x201D; <br /> &#x201C;How did you fix your breaking builds?&#x201D; &#x201C;We turned off the CI server&#x201D; <br />
  • Just do it <br /> Get it visible in front of your developers <br />
  • Things that enabled once you have a strong CI infrastructure in place <br />
  • By business, I mean whoever sets your priorities <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Continuous Integration Saves the Day Continuous Integration Saves the Day Presentation Transcript

  • <intent > !"#$% Continuous Integration Saves the Day Kurt Schrader Head of Engineering - Intent Media March 10, 2010
  • <intent > !"#$% What? 2
  • <intent > !"#$% http://www.flickr.com/photos/27147/3411775886/ 3
  • <intent > !"#$% http://www.flickr.com/photos/bengtserenius/211225580/ 4
  • <intent > !"#$% Build Continuously 5
  • <intent > !"#$% Test Continuously 6
  • <intent > !"#$% Why? 7
  • <intent > !"#$% http://www.flickr.com/photos/ericejohnson/4294710367/ 8
  • <intent > !"#$% $160 M http://www.flickr.com/photos/ericejohnson/4294710367/ 8
  • <intent > !"#$% Allows for change 9
  • <intent > !"#$% Safety Net 10
  • <intent > !"#$% How? 11
  • <intent > !"#$% Version Control 12
  • <intent > !"#$% Automated Tests 13
  • <intent > !"#$% Automated Build 14
  • <intent > !"#$% Frequent Commits 15
  • <intent > !"#$% Make Things Visible! 16
  • <intent > !"#$% Easy continuous integration recipe · Way to run an automated build > ant > make > rake > etc · Cron job · Notifier 17
  • <intent > !"#$% More complex · Build dependencies · Error reporting · Cross-platform builds · Reporting · Statistics 18
  • <intent > !"#$% Tools 19
  • <intent > !"#$% 20
  • <intent > !"#$% 20
  • <intent > !"#$% 20
  • <intent > !"#$% 20
  • <intent > !"#$% 20
  • <intent > !"#$% 20
  • <intent > !"#$% 20
  • <intent > !"#$% http://confluence.public.thoughtworks.org/ display/CC/CI+Feature+Matrix 21
  • <intent > !"#$% http://confluence.public.thoughtworks.org/ display/CC/CI+Feature+Matrix 26 Tools 21
  • <intent > !"#$% Getting started 22
  • <intent > !"#$% Write a test 23
  • <intent > !"#$% Automate 24
  • <intent > !"#$% Related Practices 25
  • <intent > !"#$% Related Practices Enabled by CI 25
  • <intent > !"#$% Have the Business Build Tests 26
  • <intent > !"#$% 27
  • <intent > !"#$% Feature: Proposal notification In order to reduce time spent on emailing Administrators should be able to mail all proposals owners depending on status Scenario: Email accepted proposal Given aslak.hellesoy@gmail.com proposed Cucumber And the Cucumber proposal is approved When I send mass proposal email Then aslak.hellesoy@gmail.com should get email """ Hi aslak.hellesoy@gmail.com Congratulations, Cucumber was accepted. See you at RailsConf! """ 28
  • <intent > !"#$% Continuous Deployment 29
  • <intent > !"#$% 10 Deploys a Day at Flickr 30
  • <intent > !"#$% Demo 31
  • <intent > !"#$% http://www.jetbrains.com/teamcity/ 32