Integreation
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Integreation

on

  • 1,538 views

Slides from a quick and dirty presentation I gave to colleagues on Continuous Integration, Unit / Spec testing, etc....

Slides from a quick and dirty presentation I gave to colleagues on Continuous Integration, Unit / Spec testing, etc.

CREDIT: this is very much in the Zach Holman school of presentation. I borrowed a lot of inspiration (and some colors/fonts) from his designs. Attribution was given.

Statistics

Views

Total Views
1,538
Views on SlideShare
1,293
Embed Views
245

Actions

Likes
0
Downloads
16
Comments
0

4 Embeds 245

http://skghost.azurewebsites.net 137
http://www.seankilleen.com 95
http://localhost 9
http://seankilleen.wordpress.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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
  • These are all questions I've heard in real life.I’m sure you all have examples for this as well – those “little mystery” questions that pop up, where a fix seems to be made up of unicorn tears brought by strange elves in the middle of the night.
  • Compile your application code. Getting the latest version of any recent code changes from other developers is purely optional and not a requirement for certification.Launch the application or website that has just been compiled.Cause one code path in the code you're checking in to be executed. The preferred way to do this is with ad-hoc manual testing of the simplest possible case for the feature in question. Omit this step if the code change was less than five lines, or if, in the developer's professional opinion, the code change could not possibly result in an error.Check the code changes into your version control system.

Integreation Presentation Transcript

  • 1. integreation Get it Together.™ (Not really. Yet.)
  • 2. OKAY, SO:THE PROBLEM & WHAT’S BEHIND IT THE SOLUTION *MY 12 STEPS ADVENTURE * not what you’re thinking
  • 3. theproblem
  • 4. Uncertainty.
  • 5. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARE TECHNOLOGY ISOPTIMISTIC DEADLINED REVOLUTIONARYBUSY RISKY FLUCTUATINGDISTRACTED HIGH STAKES SPECIALIZEDHUMAN JOB SECURITY MADE BY PEOPLE
  • 6. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARE TECHNOLOGY ISOPTIMISTIC DEADLINED REVOLUTIONARYBUSY RISKY FLUCTUATINGDISTRACTED HIGH STAKES SPECIALIZEDHUMAN JOB SECURITY MADE BY PEOPLECUSTOMERS ARETHE SOURCE OF ALL JOY IN THE UNIVERSE
  • 7. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARE TECHNOLOGY ISOPTIMISTIC DEADLINED REVOLUTIONARYBUSY RISKY FLUCTUATINGDISTRACTED HIGH STAKES SPECIALIZEDHUMAN JOB SECURITY MADE BY PEOPLECUSTOMERS ARE ALL OF THE ABOVE.THE SOURCE OF ALL JOY IN THE UNIVERSE
  • 8. thesolution
  • 9. process.
  • 10. process is unemotional repeatable risk-averse cheap transparent trainable blameless consensus
  • 11. The Joel Test DO YOU:• Use source control? • Fix bugs first?• Make builds in one step? • Have a spec?• Make daily builds? • Have testers?• Use a bug tracker? • Do hallway tests?
  • 12. 1 2 5 63 7 4 8 9 12 11 10
  • 13. 1 2 5 63 7 4 8 9 12 11 10
  • 14. 1 2 THAT’S BETTER.
  • 15. DEVELOPERS are your code’s creators. 1 Any Progress Starts Here.
  • 16. SUBVERSION is your code’s historian. 2 Stores Every Change Mediates Conflicts Tags Things For Reference Imagines New PathsALT: git, cvs, mercurial
  • 17. 1 23
  • 18. TRAC is your code’s conscience. 3 Thoughts on Changes Internal Issues Future Planning Wiki, Bug tracker, Repo ViewerALT: BugTracker.NET , BugZilla, 100s more
  • 19. 1 23 4
  • 20. CRUISECONTROL is your code’s brain. 4 Processes Changes Collects Feedback From Components Oversees OperationsALT: TeamCity, Team Foundation Server
  • 21. 1 2 53 4
  • 22. MSBBUILD is your code’s birth. 5 Brings code to Life by compiling it If this fails, your code doesn’t exist Is the equivalent of F5 in Visual StudioALT: Ant, NAnt
  • 23. 1 2 5 63 4
  • 24. NUnit is your code’s physical fitness. 6 Ensures that it works as expected inside Keeps Code Flexible and Strong Allows Code to Handle ChangeALT: xUnit, MSTest
  • 25. 1 2 5 63 7 4
  • 26. NCOVER is your code’s gym teacher. 7 Makes sure enough fitness is tested Helps spot weak pointsALT: EMMA, Cobertura, Clover
  • 27. 1 2 5 63 7 4 8
  • 28. SPECFLOW is your code’s social skills. 8 Tests code from outside perspective Tests multiple browsers / OSes Runs as NUnit Tests Makes use of Selenium and VMs Lets You Code to RequirementsALT: Cucumber
  • 29. 1 2 5 63 7 4 8 9
  • 30. FXCOP is your code’s…well, police officer. 9 Tests Against Common Coding Standards Logs Security / Practices Issues Configurable StrictnessALT: cppcheck, Lint, Eclipse CODAN
  • 31. 1 2 5 63 7 4 8 9 10
  • 32. STYLECOP is your code’s school uniform. 10 Enforces Code Formatting Rules Similar Looking Code is Readable For AllALT: checkstyle, PerlTidy
  • 33. 1 2 5 63 7 4 8 9 11 10
  • 34. NUGET is your code’s manifesto. 11 Package of Your Code and its Aims Includes Environment Variables, etc. Goal: Easily be disseminated elsewhere
  • 35. 1 2 5 63 7 4 8 9 12 11 10
  • 36. OCTOPUS is your code’s manifesto’s publisher. 12 Knows its Audience (Servers) Translates the Manifesto / Variables Puts Your Code Into the WildALT: Enhydra Octopus (Java)
  • 37. 1 2 5 63 7 4 8 9 12 11 10
  • 38. The Joel Test DO YOU: Use source control?  Fix bugs first? Make builds in one step?  Have a spec? Make daily builds?  Have testers? Use a bug tracker?  Do hallway tests?
  • 39. OKAY, SO:WHAT DO WE GET?
  • 40. Quality.
  • 41. Anything goes wrong? Write a bug w/failing test & make it pass. Order. Code author traceability Tested on Multiple OSes Code and changes are documented User Testing & QA is automated Our code knows how to work around its environment(s) Metrics on times / performanceTested for Security & Best Practices Changes handled gracefullyPull any version and build it anytime. Can see who broke the buildPermissions are baked into deployment Flexibility to change without breaking Spec tests test interaction with existing apps Tested on multiple browsers through spec tests Spec tests show code meets requirements Bugs are now just failing tests, documented in the tracker Code is tested internally & externally Environment differences are handled & scripted
  • 42. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR CODE
  • 43. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR PRODUCT
  • 44. HAVING A PROCESSMEANS MORE TIME BUILDINGYOUR CUSTOMERS
  • 45. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR COMPANY
  • 46. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR^SELF AWESOME
  • 47. thanks!
  • 48. Technologies Used Subversion subversion.apache.org TortoiseSVN tortoisesvn.net Trac trac.edgewall.orgCruiseControl.NET cruisecontrolnet.org MSBuild msdn.microsoft.com/en-us/library/0k6kkbsd.aspx NUnit nunit.org NCover ncover.com SpecFlow specflow.org Selenium seleniumhq.org FxCop microsoft.com/download/en/details.aspx?id=6544 StyleCop stylecop.codeplex.com VirtualBox virtualbox.org NuGet nuget.codeplex.com Octopus octopusdeploy.com
  • 49. References / Credits / Inspirations• Jeff Atwood, CodingHorror, “The ‘Works on My Machine’ Certification Program” – http://www.codinghorror.com/blog/2007/03/the-works-on-my-machine-certification-program.html• Joel Spolsky, FogCreek, “The Joel Test” – http://www.joelonsoftware.com/articles/fog0000000043.html• Zach Holman, “Slide Design For Developers” – http://zachholman.com/posts/slide-design-for-developers/• Zach Holman, “How GitHub Uses GitHub to Build GitHub” – http://zachholman.com/talk/how-github-uses-github-to-build-github• All logos are the property of their respective owners/companies• “Winner” image – http://kjrmusic.blogspot.com/2010_07_01_archive.html
  • 50. integreation (fin)