55
Get it Together.™ integreation (Not really. Yet.)

Integreation

Embed Size (px)

DESCRIPTION

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.

Citation preview

  • 1. integreationGet it Together.(Not really. Yet.)

2. OKAY, SO:THE PROBLEM & WHATS BEHIND IT THE SOLUTION*MY 12 STEPS ADVENTURE* not what youre thinking 3. theproblem 4. Uncertainty. 5. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARETECHNOLOGY ISOPTIMISTIC DEADLINEDREVOLUTIONARYBUSY RISKYFLUCTUATINGDISTRACTEDHIGH STAKES SPECIALIZEDHUMAN JOB SECURITYMADE BY PEOPLE 6. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARETECHNOLOGY ISOPTIMISTIC DEADLINEDREVOLUTIONARYBUSY RISKYFLUCTUATINGDISTRACTEDHIGH STAKES SPECIALIZEDHUMAN JOB SECURITYMADE BY PEOPLECUSTOMERS ARETHE SOURCE OF ALL JOY IN THE UNIVERSE 7. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARETECHNOLOGY ISOPTIMISTIC DEADLINEDREVOLUTIONARYBUSY RISKYFLUCTUATINGDISTRACTEDHIGH STAKES SPECIALIZEDHUMAN JOB SECURITYMADE 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 TestDO 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. 12 5 63 748912 11 10 13. 12 5 63 748912 11 10 14. 1 2THATS BETTER. 15. DEVELOPERS are your codes creators. 1Any Progress Starts Here. 16. SUBVERSION is your codes historian. 2 Stores Every Change Mediates Conflicts Tags Things For Reference Imagines New PathsALT: git, cvs, mercurial 17. 1 23 18. TRAC is your codes conscience. 3Thoughts on ChangesInternal IssuesFuture PlanningWiki, Bug tracker, Repo ViewerALT: BugTracker.NET , BugZilla, 100s more 19. 1 234 20. CRUISECONTROL is your codes brain. 4Processes ChangesCollects Feedback From ComponentsOversees OperationsALT: TeamCity, Team Foundation Server 21. 1 2534 22. MSBBUILD is your codes birth. 5Brings code to Life by compiling itIf this fails, your code doesnt existIs the equivalent of F5 in Visual StudioALT: Ant, NAnt 23. 1 25634 24. NUnit is your codes physical fitness. 6Ensures that it works as expected insideKeeps Code Flexible and StrongAllows Code to Handle ChangeALT: xUnit, MSTest 25. 1 256374 26. NCOVER is your codes gym teacher.7Makes sure enough fitness is testedHelps spot weak pointsALT: EMMA, Cobertura, Clover 27. 1 2563748 28. SPECFLOW is your codes social skills. 8Tests code from outside perspectiveTests multiple browsers / OSesRuns as NUnit TestsMakes use of Selenium and VMsLets You Code to RequirementsALT: Cucumber 29. 1 25637489 30. FXCOP is your codeswell, police officer.9Tests Against Common Coding StandardsLogs Security / Practices IssuesConfigurable StrictnessALT: cppcheck, Lint, Eclipse CODAN 31. 1 2 5 63 748910 32. STYLECOP is your codes school uniform. 10 Enforces Code Formatting Rules Similar Looking Code is Readable For AllALT: checkstyle, PerlTidy 33. 1 256374 8 911 10 34. NUGET is your codes manifesto.11Package of Your Code and its AimsIncludes Environment Variables, etc.Goal: Easily be disseminated elsewhere 35. 12 5 63 748912 11 10 36. OCTOPUS is your codes manifestos publisher. 12Knows its Audience (Servers)Translates the Manifesto / VariablesPuts Your Code Into the WildALT: Enhydra Octopus (Java) 37. 12 5 63 748912 11 10 38. The Joel TestDO 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 OSesCode and changes are documentedUser Testing & QA is automatedOur code knows how to work around its environment(s)Metrics on times / performanceTested for Security & Best PracticesChanges handled gracefullyPull any version and build it anytime. Can see who broke the buildPermissions are baked into deploymentFlexibility to change without breaking Spec tests test interaction with existing appsTested on multiple browsers through spec tests Spec tests show code meets requirementsBugs are now just failing tests, documented in the trackerCode is tested internally & externallyEnvironment differences are handled & scripted 42. HAVING A PROCESSMEANS MORE TIME BUILDINGYOUR CODE 43. HAVING A PROCESSMEANS MORE TIME BUILDINGYOUR 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^SELFAWESOME 47. thanks! 48. Technologies UsedSubversionsubversion.apache.org TortoiseSVNtortoisesvn.net Trac trac.edgewall.orgCruiseControl.NET cruisecontrolnet.orgMSBuild msdn.microsoft.com/en-us/library/0k6kkbsd.aspxNUnit nunit.org NCover ncover.comSpecFlowspecflow.orgSeleniumseleniumhq.orgFxCop microsoft.com/download/en/details.aspx?id=6544 StyleCop stylecop.codeplex.com VirtualBox virtualbox.orgNuGet nuget.codeplex.com Octopusoctopusdeploy.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)