Anzeige

Continuous Integration & the Release Maturity Model

cPrime | Project Management | Agile | Consulting | Staffing | Training
24. May 2012
Anzeige

Más contenido relacionado

Anzeige

Similar a Continuous Integration & the Release Maturity Model (20)

Anzeige

Continuous Integration & the Release Maturity Model

  1. Agile Release Maturity Investing in reliable Software Release Management This webinar is worth 1 PDU
  2. Hosted by cPrime
  3. Today’s Presenter Kendrick Burson Software Engineer since 1997 Agile Development Coach CI systems consultant
  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. User Poll 1 If you are working on an Agile project, what agile methodology are you using? 1) Not using Agile 2) Scrum 3) eXtreme Programming 4) Feature Driven Development 5) Other
  6. Principles behind the Agile Manifesto We follow these principles: Our highest priority is to satisfy the Working software is the primary measure of customer through early and continuous progress. delivery of valuable software. Agile processes promote sustainable development. Welcome changing requirements, even late in The sponsors, developers, and users should be development. Agile processes harness change for able to maintain a constant pace indefinitely. the customer's competitive advantage. Continuous attention to technical excellence and Deliver working software frequently, from a good design enhances agility. couple of weeks to a couple of months, with a preference to the shorter timescale. Simplicity--the art of maximizing the amount of work not done--is essential. Business people and developers must work together daily throughout the project. The best architectures, requirements, and designs emerge from self-organizing teams. Build projects around motivated individuals. Give them the environment and support they need, and At regular intervals, the team reflects on how to trust them to get the job done. become more effective, then tunes and adjusts its behavior accordingly. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Release Management ? The integration and flow of development, testing, deployment, and support of complex software systems
  8. User Poll 2 How often do you release software? 1) Daily 2) Every Iteration 3) Quarterly 4) Once or Twice a year 5) Still waiting
  9. Agile Release Maturity Continuous Delivery Release Automation Continuous Integration Test Automation Build Automation Source Control
  10. The Goal Continuous Delivery
  11. Agile Release Maturity ?
  12. Level 0 Source Control SCM / RCS SCM (Source Code Management) RCS ( Revision Control System ) Single Repository Commit to Trunk Branch For Defect
  13. SCM/RCS Servers Open Source Commerical Subversion (SVN) Perforce Git ClearCase CVS AccuRev Mercurial TFS … …
  14. User Poll 3 How many branches of your project are in progress simultaneously? 1) Trunk 2) Trunk + Defect 3) Release A, B and C 4) I lost count
  15. Level 1 Build Automation Dependency Management Resource Management Compile Logs: Compiler warnings and violations Database CRUD
  16. Build Automation Frameworks Make, Cmake MSBuild Script Unix shell Ant, Nant Vb script Maven Ruby Python Gradle Rake
  17. User Poll 4 If your project requires a database, how do you manage the version of the database in each installation ? 1) Do not interact with database directly (i.e. access thru separate web service) 2) Manual inspection 3) Row in settings table 4) Automated database versioning tool
  18. Level 2 Test Automation Manual Tests Execute Tests Test Pyramid Generate Reports Pass, Fail, Skip
  19. Test Automation xUnit Selenium / Webdriver Junit, TestNG, Nunit, PHPUnit, QTUnit, WatiN / Watir PyUnit, Test::Unit, SoapUI MSTest TestPartner GoogleTest VisualAssert Database DBUnit, TSQLUnit
  20. Level 3 Continuous Integration
  21. What is CI ? Continuous vs Continual CI 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 scheduler and traffic cop Scheduled CRON job Event Triggers External Triggers
  22. CI Servers Commercial 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. Build Dependency Management Resource Management Configuration App Data Compile & Link
  24. Test Build Test Classes Execute Tests Generate report
  25. Advanced Test Code 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. Package Generate deployable artifact ZIP Exe MSI JAR WAR EAR RPM
  27. Deploy IIS SCP MSI Tomcat Embedded (jetty) External (cargo)
  28. Verify Acceptance Tests Functional Tests System Tests Capacity Tests
  29. User Poll 5 Does your company have a dedicated QA department ? 1) Yes 2) No
  30. Analyze Static Code Analysis Standards Compliance Customized rules Dependency analysis Complexity analysis
  31. Source Analysis Dynamic 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. Advanced CI Multiple environments Integration QA Staging Production Virtualized Environments Clone as necessary Event Trigger SCM Hook ALM Integration Report build status for code change committed against feature requirement
  33. Agile Release Maturity Continuous Delivery Release Automation Continuous Integration Test Automation Build Automation Source Control
  34. Level 4 Release Automation Push button release to production Deploy artifact promoted from CI Update target database Configure environment settings Environment agnostic
  35. User Poll 6 Does your company have a dedicated Release/Configuration Management Team ? 1) Yes 2) No
  36. Level 5 Continuous Delivery
  37. Archive Repository of Release artifacts Store multiple versions of artifacts Deploy versions directly from repository
  38. Artifact Repository Servers Nexus by Sonotype Artifactory by Jfrog Archiva by Apache
  39. Publish Push to production Release Automation
  40. User Poll 7 How long does it take to push a new release to production in your company? 1) A few hours 2) The whole weekend 3) About a week 4) A month 5) I’ll tell you when we finish
  41. User Poll 8 How many people are involved in a typical release at your company? 1) 1 2) 2-3 3) 4-7 4) 9 or more 5) All hands on deck
  42. Advanced CD Auto Trace Documentation Full 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. Agile Lifecyle Management (ALM) Jira +Grasshopper Rally Velocity Platform VersionOne TeamForge HP Team Foundation Server Serena IBM
  44. Agile Release Maturity Continuous Delivery Release Automation Continuous Integration Test Automation Build Automation Source Control
  45. Agile Release Maturity
  46. User Survey How useful was this webinar to you? Is there anything you would like to know more about in a future webinar?
  47. Q&A
  48. For more information about Agile and Project Management cPrime has a large selection of white papers and webinars regarding project management including a dedicated section on Agile http://www.cprime.com/resources
  49. References about Release Management and Continuous Delivery Books --------------------------------------------------------------------------------------------------------- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison- Wesley/dp/0321601912/ref=sr_1_1?ie=UTF8&qid=1337550162&sr=8-1 Continuous Integration: Improving Software Quality and Reducing Risk http://www.amazon.com/Continuous-Integration-Improving-Software- Reducing/dp/0321336380/ref=sr_1_3?ie=UTF8&qid=1337550162&sr=8-3 Recipes for Continuous Database Integration http://www.amazon.com/Recipes-Continuous-Database-Integration- ebook/dp/B000RH0EI4/ref=sr_1_14?ie=UTF8&qid=1337550162&sr=8-14 Configuration Management Best Practices: Practical Methods that Work in the Real World http://www.amazon.com/Configuration-Management-Best-Practices- Practical/dp/0321685865/ref=sr_1_12?s=books&ie=UTF8&qid=1337799141&sr=1 -12 Enterprise Release Management: Agile Delivery of a Strategic Change Portfolio http://www.amazon.com/Enterprise-Release-Management-Strategic- Portfolio/dp/1608071685/ref=sr_1_4?s=books&ie=UTF8&qid=1337799413&sr=1- 4

Hinweis der Redaktion

  1. Compiled LanguagesJavaC#C++VB.netInterpreted LanguagesPHPRubyPython
  2. A release manager is:Facilitator: serves as a liaison between varying business units to guarantee smooth and timely delivery of software products or updates.Gatekeeper: “holds the keys” to production systems/applications and takes responsibility for their implementations.Architect: helps to identify, create and/or implement processes or products to efficiently manage the release of code.Server application support engineer: help troubleshoot problems with an application (although not typically at a code level).Coordinator: utilized to coordinate disparate source trees, projects, teams and components.Build Engineering : How to compile, link, package and deploy software products reliably and repeatablyContinuous or Continual !Integration vsDelivery What is CIWhat is CDWhat is
  3. Agile Maturity Model Processes and Practices in Agile Project ManagementBuild EngineeringContinuous Integration
  4. PackageJar,War, Ear,MSIPublishCargoShell/Bat/ScriptSCP
  5. Most teams are not ready to adopt every practice we are going to discussEvery team should start somewhereFind the strata that best fits your current environment.
  6. SCM (Source Code Management) RCS ( Revision Control System )
  7. Single click build (dbl click)
  8. Reports for unit tests passed, failed, skipped.Trend reports and historical analysisDiagnostic information for failed tests.
  9. Selenium / WebdriverCross platform web browser control frameworksWatiN / WatirWatiN: Web application testing in .NetWatir: Web application testing in RubySoapUISOAP and REST web service testing
  10. Reports for unit tests passed, failed, skipped.Trend reports and historical analysisDiagnostic information for failed tests.
  11. Dependency ManagementResource Management (config files)Compile & Link
  12. Dependency ManagementResource Management (config files)Compile & Link
  13. Dependency ManagementResource Management (config files)Compile & Link
  14. Dependency ManagementResource Management (config files)Compile & Link
  15. Dependency ManagementResource Management (config files)Compile & Link
  16. Dependency ManagementResource Management (config files)Compile & Link
  17. Dependency ManagementResource Management (config files)Compile & Link
  18. Build Server is a glorified scheduler. Shedule Trigger Polling SCM External Trigger Related build completes
  19. Agile Maturity Model Processes and Practices in Agile Project ManagementBuild EngineeringContinuous Integration
  20. Cascading Builds
  21. PackageJar,War, Ear,MSIPublishCargoShell/Bat/ScriptSCP
  22. Dependency ManagementResource Management (config files)Compile & Link
  23. Dependency ManagementResource Management (config files)Compile & Link
  24. Agile Maturity Model Processes and Practices in Agile Project ManagementBuild EngineeringContinuous Integration
  25. PackageJar,War, Ear,MSIPublishCargoShell/Bat/ScriptSCP
Anzeige