Continuous Integration & the Release Maturity Model


Published on

Watch the recorded version of this Webinar here:

Curious about Continuous Integration? Tune in!
Continuous Integration (CI), which is a big part of continuous delivery, is the concept of continuously building and testing software using an automated process. We have learned that utilizing CI could help us catch bugs earlier, enable better visibility, reduce repetitive processes, enable the development team to produce deployable products at a moment's notice, and reduce risk overall.

These slides will identify the various levels of continuous integration and delivery with regards to a release maturity of the development team or parent organization.

Published in: Technology
  • Be the first to comment

Continuous Integration & the Release Maturity Model

  1. 1. Agile Release MaturityInvesting in reliable Software Release Management This webinar is worth 1 PDU
  2. 2. Hosted by cPrime
  3. 3. Today’s PresenterKendrick Burson Software Engineer since 1997 Agile Development Coach CI systems consultant
  4. 4. Talk about what?Agile Release Maturity This is not a sales presentation for any specific tool, language or framework It is a selection of practices that can be applied to most software platforms It is Based on personal experience on various projects with tools used in Java ,C# and C++ This webinar is worth 1 PDU
  5. 5. User Poll 1If you are working on an Agile project, what agilemethodology are you using?1) Not using Agile2) Scrum3) eXtreme Programming4) Feature Driven Development5) Other
  6. 6. Principles behind the Agile ManifestoWe follow these principles:Our highest priority is to satisfy the Working software is the primary measure ofcustomer through early and continuous of valuable software. Agile processes promote sustainable development.Welcome changing requirements, even late in The sponsors, developers, and users should bedevelopment. Agile processes harness change for able to maintain a constant pace indefinitely.the customers competitive advantage. Continuous attention to technical excellence andDeliver working software frequently, from a good design enhances agility.couple of weeks to a couple of months, with apreference to the shorter timescale. Simplicity--the art of maximizing the amount of work not done--is essential.Business people and developers must worktogether daily throughout the project. The best architectures, requirements, and designs emerge from self-organizing teams.Build projects around motivated individuals. Givethem the environment and support they need, and At regular intervals, the team reflects on how totrust them to get the job done. become more effective, then tunes and adjusts its behavior accordingly.The most efficient and effective method ofconveying information to and within a developmentteam is face-to-face conversation.
  7. 7. Release Management ?The integration and flow of development, testing,deployment, and support of complex softwaresystems
  8. 8. User Poll 2How often do you release software?1) Daily2) Every Iteration3) Quarterly4) Once or Twice a year5) Still waiting
  9. 9. Agile Release Maturity Continuous Delivery Release Automation Continuous Integration Test Automation Build AutomationSource Control
  10. 10. The GoalContinuous Delivery
  11. 11. Agile Release Maturity ?
  12. 12. Level 0 Source ControlSCM / RCS SCM (Source Code Management) RCS ( Revision Control System )Single RepositoryCommit to TrunkBranch For Defect
  13. 13. SCM/RCS ServersOpen Source Commerical Subversion (SVN) Perforce Git ClearCase CVS AccuRev Mercurial TFS … …
  14. 14. User Poll 3How many branches of your projectare in progress simultaneously?1) Trunk2) Trunk + Defect3) Release A, B and C4) I lost count
  15. 15. Level 1 Build AutomationDependency ManagementResource ManagementCompile Logs: Compiler warnings and violationsDatabase CRUD
  16. 16. Build Automation FrameworksMake, CmakeMSBuild Script Unix shellAnt, Nant Vb scriptMaven Ruby PythonGradleRake
  17. 17. User Poll 4If your project requires a database, howdo you manage the version of thedatabase in each installation ?1) Do not interact with database directly (i.e. access thru separate web service)2) Manual inspection3) Row in settings table4) Automated database versioning tool
  18. 18. Level 2 Test Automation Manual TestsExecute Tests Test PyramidGenerate Reports Pass, Fail, Skip
  19. 19. Test AutomationxUnit Selenium / Webdriver Junit, TestNG, Nunit, PHPUnit, QTUnit, WatiN / Watir PyUnit, Test::Unit, SoapUI MSTest TestPartnerGoogleTestVisualAssertDatabase DBUnit, TSQLUnit
  20. 20. Level 3Continuous Integration
  21. 21. What is CI ?Continuous vs ContinualCI is a practice Broken build is priority #1 for all. No Commits on broken build. No Commit and Dash.A CI Server is a build schedulerand traffic cop Scheduled CRON job Event Triggers External Triggers
  22. 22. CI ServersCommercial Open Source Thoughtworks Jenkins CruiseControl, Go Hudson Atlassian Tinderbox Bamboo CDash UrbanCode Apache Anthill Pro Gump Microsoft TFS Continuum Jet Brains Team City Electric Cloud Electric Commander MaestroDev
  23. 23. BuildDependency ManagementResource Management Configuration App DataCompile & Link
  24. 24. TestBuild Test ClassesExecute TestsGenerate report
  25. 25. Advanced TestCode Coverage Instrument application code Execute with coverage runner Test Suites (fast, unit, integ, smoke…)Multiple reports Separate coverage reports (unit/integ) Aggregated coverage reports
  26. 26. PackageGenerate deployable artifact ZIP Exe MSI JAR WAR EAR RPM
  27. 27. DeployIIS SCP MSITomcat Embedded (jetty) External (cargo)
  28. 28. VerifyAcceptance TestsFunctional TestsSystem TestsCapacity Tests
  29. 29. User Poll 5Does your company have a dedicatedQA department ?1) Yes2) No
  30. 30. AnalyzeStatic Code AnalysisStandards Compliance Customized rulesDependency analysisComplexity analysis
  31. 31. Source AnalysisDynamic Code Coverage Coberatura, Emma,Clover, Ncover, MSTest, CoverMe, JSCover, …Static Coding standards Sonar PMD, CPD, Checkstyle, xDepend Findbugs, CRAP4J, FxCop, StyleCop, Lint, … CodeCity, JNCSS
  32. 32. Advanced CIMultiple environments Integration QA Staging ProductionVirtualized Environments Clone as necessaryEvent Trigger SCM HookALM Integration Report build status for code change committed against feature requirement
  33. 33. Agile Release Maturity Continuous Delivery Release Automation Continuous Integration Test Automation Build AutomationSource Control
  34. 34. Level 4 Release AutomationPush button release to production Deploy artifact promoted from CI Update target database Configure environment settings Environment agnostic
  35. 35. User Poll 6Does your company have a dedicatedRelease/Configuration ManagementTeam ?1) Yes2) No
  36. 36. Level 5Continuous Delivery
  37. 37. ArchiveRepository of Release artifactsStore multiple versions of artifactsDeploy versions directly from repository
  38. 38. Artifact Repository ServersNexus by SonotypeArtifactory by JfrogArchiva by Apache
  39. 39. PublishPush to production Release Automation
  40. 40. User Poll 7How long does it take to push a newrelease to production in your company?1) A few hours2) The whole weekend3) About a week4) A month5) I’ll tell you when we finish
  41. 41. User Poll 8How many people are involved in atypical release at your company?1) 12) 2-33) 4-74) 9 or more5) All hands on deck
  42. 42. Advanced CD Auto Trace DocumentationFull circle document trace Define / Update Story Define / Update Task Commit code for task Build job pass /fail Build, Test, Package, Deploy, Verify, Analyze, Archive, Publish
  43. 43. Agile Lifecyle Management (ALM)Jira +Grasshopper RallyVelocity Platform VersionOneTeamForge HPTeam Foundation Server Serena IBM
  44. 44. Agile Release Maturity Continuous Delivery Release Automation Continuous Integration Test Automation Build AutomationSource Control
  45. 45. Agile Release Maturity
  46. 46. User SurveyHow useful was this webinar to you?Is there anything you would like toknow more about in a futurewebinar?
  47. 47. Q&A
  48. 48. For more information about Agile and Project ManagementcPrime has a large selection of white papers andwebinars regarding project managementincluding a dedicated section on Agile
  49. 49. References about Release Management and Continuous DeliveryBooks---------------------------------------------------------------------------------------------------------Continuous Delivery: Reliable Software Releases through Build, Test, andDeployment Automation Integration: Improving Software Quality and Reducing Risk for Continuous Database Integration Management Best Practices: Practical Methods that Work inthe Real World Release Management: Agile Delivery of a Strategic ChangePortfolio