integreation  Get it Together.™                      (Not really. Yet.)
OKAY, SO:THE PROBLEM & WHAT’S BEHIND IT                 THE SOLUTION      *MY 12 STEPS ADVENTURE                      * no...
theproblem
Uncertainty.
WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE   PROJECTS ARE    TECHNOLOGY ISOPTIMISTIC     DEADLINED      REVOLUTIONARYBUSY      ...
WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE   PROJECTS ARE      TECHNOLOGY ISOPTIMISTIC       DEADLINED      REVOLUTIONARYBUSY  ...
WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE   PROJECTS ARE    TECHNOLOGY ISOPTIMISTIC     DEADLINED      REVOLUTIONARYBUSY      ...
thesolution
process.
process is unemotional           repeatable           risk-averse           cheap           transparent           trainabl...
The Joel Test                    DO YOU:• Use source control?        • Fix bugs first?• Make builds in one step?   • Have ...
1        2                                   5                               63                                       7   ...
1        2                                   5                               63                                       7   ...
1   2        THAT’S BETTER.
DEVELOPERS are your code’s creators.   1  Any Progress Starts Here.
SUBVERSION is your code’s historian.   2   Stores Every Change   Mediates Conflicts   Tags Things For Reference   Imagines...
1   23
TRAC is your code’s conscience.             3  Thoughts on Changes  Internal Issues  Future Planning  Wiki, Bug tracker, R...
1       23        4
CRUISECONTROL is your code’s brain.     4  Processes Changes  Collects Feedback From Components  Oversees OperationsALT: T...
1       2                53        4
MSBBUILD is your code’s birth.               5  Brings code to Life by compiling it  If this fails, your code doesn’t exis...
1       2                    5                63        4
NUnit is your code’s physical fitness.   6  Ensures that it works as expected inside  Keeps Code Flexible and Strong  Allo...
1       2                    5                63                        7        4
NCOVER is your code’s gym teacher.      7  Makes sure enough fitness is tested  Helps spot weak pointsALT: EMMA, Cobertura...
1       2                        5                    63                            7        4                8
SPECFLOW is your code’s social skills.   8  Tests code from outside perspective  Tests multiple browsers / OSes  Runs as N...
1       2                            5                        63                                7        4                ...
FXCOP is your code’s…well, police officer.                                      9  Tests Against Common Coding Standards  ...
1       2                             5                         63                                 7        4             ...
STYLECOP is your code’s school uniform.   10   Enforces Code Formatting Rules   Similar Looking Code is Readable For AllAL...
1       2                                  5                              63                                      7       ...
NUGET is your code’s manifesto.        11  Package of Your Code and its Aims  Includes Environment Variables, etc.  Goal: ...
1        2                                   5                               63                                       7   ...
OCTOPUS is your code’s manifesto’s publisher.   12  Knows its Audience (Servers)  Translates the Manifesto / Variables  Pu...
1        2                                   5                               63                                       7   ...
The Joel Test                  DO YOU: Use source control?       Fix bugs first? Make builds in one step?  Have a spec...
OKAY, SO:WHAT DO WE GET?
Quality.
Anything goes wrong? Write a bug w/failing test & make it pass.                                       Order.            Co...
HAVING A PROCESSMEANS MORE TIME BUILDING    YOUR CODE
HAVING A PROCESSMEANS MORE TIME BUILDING  YOUR PRODUCT
HAVING A PROCESSMEANS MORE TIME BUILDINGYOUR CUSTOMERS
HAVING A PROCESSMEANS MORE TIME BUILDING YOUR COMPANY
HAVING A PROCESSMEANS MORE TIME BUILDING     YOUR^SELF          AWESOME
thanks!
Technologies Used      Subversion    subversion.apache.org     TortoiseSVN    tortoisesvn.net             Trac   trac.edge...
References / Credits / Inspirations• Jeff Atwood, CodingHorror, “The ‘Works on My Machine’ Certification Program”     – ht...
integreation    (fin)
Integreation
Integreation
Integreation
Integreation
Integreation
Upcoming SlideShare
Loading in …5
×

Integreation

1,525 views

Published on

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.

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

  • Be the first to like this

No Downloads
Views
Total views
1,525
On SlideShare
0
From Embeds
0
Number of Embeds
275
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • 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

    1. 1. integreation Get it Together.™ (Not really. Yet.)
    2. 2. OKAY, SO:THE PROBLEM & WHAT’S BEHIND IT THE SOLUTION *MY 12 STEPS ADVENTURE * not what you’re thinking
    3. 3. theproblem
    4. 4. Uncertainty.
    5. 5. WHYYYYYYYYYYYYYYYYY?!?!?!?!PEOPLE ARE PROJECTS ARE TECHNOLOGY ISOPTIMISTIC DEADLINED REVOLUTIONARYBUSY RISKY FLUCTUATINGDISTRACTED HIGH STAKES SPECIALIZEDHUMAN JOB SECURITY MADE BY PEOPLE
    6. 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. 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. 8. thesolution
    9. 9. process.
    10. 10. process is unemotional repeatable risk-averse cheap transparent trainable blameless consensus
    11. 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. 12. 1 2 5 63 7 4 8 9 12 11 10
    13. 13. 1 2 5 63 7 4 8 9 12 11 10
    14. 14. 1 2 THAT’S BETTER.
    15. 15. DEVELOPERS are your code’s creators. 1 Any Progress Starts Here.
    16. 16. SUBVERSION is your code’s historian. 2 Stores Every Change Mediates Conflicts Tags Things For Reference Imagines New PathsALT: git, cvs, mercurial
    17. 17. 1 23
    18. 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. 19. 1 23 4
    20. 20. CRUISECONTROL is your code’s brain. 4 Processes Changes Collects Feedback From Components Oversees OperationsALT: TeamCity, Team Foundation Server
    21. 21. 1 2 53 4
    22. 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. 23. 1 2 5 63 4
    24. 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. 25. 1 2 5 63 7 4
    26. 26. NCOVER is your code’s gym teacher. 7 Makes sure enough fitness is tested Helps spot weak pointsALT: EMMA, Cobertura, Clover
    27. 27. 1 2 5 63 7 4 8
    28. 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. 29. 1 2 5 63 7 4 8 9
    30. 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. 31. 1 2 5 63 7 4 8 9 10
    32. 32. STYLECOP is your code’s school uniform. 10 Enforces Code Formatting Rules Similar Looking Code is Readable For AllALT: checkstyle, PerlTidy
    33. 33. 1 2 5 63 7 4 8 9 11 10
    34. 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. 35. 1 2 5 63 7 4 8 9 12 11 10
    36. 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. 37. 1 2 5 63 7 4 8 9 12 11 10
    38. 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. 39. OKAY, SO:WHAT DO WE GET?
    40. 40. Quality.
    41. 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. 42. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR CODE
    43. 43. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR PRODUCT
    44. 44. HAVING A PROCESSMEANS MORE TIME BUILDINGYOUR CUSTOMERS
    45. 45. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR COMPANY
    46. 46. HAVING A PROCESSMEANS MORE TIME BUILDING YOUR^SELF AWESOME
    47. 47. thanks!
    48. 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. 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. 50. integreation (fin)

    ×