Continuous integration

263 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
263
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • - game-- cooperative-- goal-oriented-- group rules- set limits of action- freedom within the rules continuation as a goal- maintainability/fun-factor
  • at a high level it’s easy to agree-no defects-easy to read-fun to work withhow to actually implement that-consistent style-automated testsrules need to work for the team-not working?-change-replace-removenot intended to punish, intended to empower-put everyone on equal footing-
  • -some rules can be automated--compilation--unit tests--static analysis--functional automated tests-automating this has upsides--quick--accurate--impartial--saves money by getting the feedback quicker-still only provides information--often quite unambiguous--sometimes, judgment call will need to be made
  • === 1 ===one place to get everythingsingle accepted version of the systemput everything in there! database scripts, source code, build tools(story of the box exploding on Cobra)=== 2 ===one command to runsimple to explainno inconsistencies between machines=== 3 ===more than just compilingunit testsfast feedbackokay if they are imperfect=== 4 ===run locally to vet changesminimize impacts on team membersensures safety before changes spread=== 5 ===does my code work with your code?do I need to consider the change you just made?have you made a change I can use?updating often is as important as committing oftenaim to commit at least once a daytry to break tasks down in to smaller chunks=== 6 ===machine set aside somewhere for integrationcatches missing files or other environment specific problemscan be completely automated=== 7 ===less than 2 minutes locallyless than 10 minutes on the serverfeedback is best fastdon’t want to always be buildingmany techniques to speed it up=== 8 ===accurate tests require accurate environmentbut, impersonators to make the commit build fastimpersonators are fast mimics of real systemsvirtualization has a roll=== 9 ===stakeholders are part of the team, need to see itthe “real” feedbackbut, be aware this is an unfinished environment – the sidewalk ends, the elevators go nowhereuseful to explorecheck on feature availabilitycritical for demonstrations, showcases=== 10 ===all about communicationa teammate is in trouble – maybe they need help?red light / green lightweb page with reportsbuild token=== 11 ===lots of deployment going on-- locally on developer’s machines-- in to the test and staging environmentsscripted. can be same as build tool, but there are better specialist tools too.not necessarily in to production, but can be rewarding if it is.
  • === 1 ===one place to get everythingsingle accepted version of the systemput everything in there! database scripts, source code, build tools(story of the box exploding on Cobra)=== 2 ===one command to runsimple to explainno inconsistencies between machines=== 3 ===more than just compilingunit testsfast feedbackokay if they are imperfect=== 4 ===run locally to vet changesminimize impacts on team membersensures safety before changes spread=== 5 ===does my code work with your code?do I need to consider the change you just made?have you made a change I can use?updating often is as important as committing oftenaim to commit at least once a daytry to break tasks down in to smaller chunks=== 6 ===machine set aside somewhere for integrationcatches missing files or other environment specific problemscan be completely automated=== 7 ===less than 2 minutes locallyless than 10 minutes on the serverfeedback is best fastdon’t want to always be buildingmany techniques to speed it up=== 8 ===accurate tests require accurate environmentbut, impersonators to make the commit build fastimpersonators are fast mimics of real systemsvirtualization has a roll=== 9 ===stakeholders are part of the team, need to see itthe “real” feedbackbut, be aware this is an unfinished environment – the sidewalk ends, the elevators go nowhereuseful to explorecheck on feature availabilitycritical for demonstrations, showcases=== 10 ===all about communicationa teammate is in trouble – maybe they need help?red light / green lightweb page with reportsbuild token=== 11 ===lots of deployment going on-- locally on developer’s machines-- in to the test and staging environmentsscripted. can be same as build tool, but there are better specialist tools too.not necessarily in to production, but can be rewarding if it is.
  • Continuous integration

    1. 1. continuous<br />Dave Cameron<br />integration<br />
    2. 2. continuous<br />
    3. 3. integration<br />
    4. 4. Software development is a "game", a game of speed and cooperation within your team, in competition against other teams.<br />
    5. 5. the team sets their own rules<br />but everyone follows them together<br />
    6. 6. automatically apply an agreed<br />set of rules <br />
    7. 7. some rules to start with…<br />
    8. 8. maintain a single source repository<br />automate the project’s build<br />make your build self-testing<br />tests run locally before commit<br />everyone commits to mainline every day<br />every commit builds on an integration machine<br />keep the build fast<br />build in a clone of the production environment<br />easy for anyone to visit the latest site<br />everyone can see what’s happening<br />automate deployment<br />
    9. 9. ?<br />?<br />?<br />

    ×