continuous integration & the release maturity model
Upload: cprime-project-management-agile-consulting-staffing-training
Post on 06-May-2015
4.896 views
DESCRIPTION
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.TRANSCRIPT
![Page 1: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/1.jpg)
Agile Release Maturity
Investing in reliable Software Release Management
This webinar is worth 1 PDU
![Page 2: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/2.jpg)
Hosted by cPrime
![Page 3: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/3.jpg)
Today’s PresenterKendrick Burson
Software Engineer since 1997
Agile Development Coach
CI systems consultant
![Page 4: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/4.jpg)
Talk about what?
Agile Release MaturityThis 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
![Page 5: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/5.jpg)
User Poll 1If 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
![Page 6: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/6.jpg)
Principles behind the Agile ManifestoWe follow these principles:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
![Page 7: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/7.jpg)
Release Management ?
The integration and flow of development, testing, deployment, and support of complex software systems
![Page 8: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/8.jpg)
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
![Page 9: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/9.jpg)
Agile Release Maturity
Build Automation
Source Control
Continuous Integration
Continuous DeliveryRelease Automation
Test Automation
AGILE PROCESS MATURITY
![Page 10: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/10.jpg)
The GoalContinuous Delivery
![Page 11: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/11.jpg)
Agile Release Maturity ?
![Page 12: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/12.jpg)
Level 0Source Control
SCM / RCSSCM (Source Code Management)
RCS ( Revision Control System )
Single Repository
Commit to Trunk
Branch For Defect
![Page 13: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/13.jpg)
SCM/RCS Servers
Open Source
Subversion (SVN)
Git
CVS
Mercurial
…
Commerical
Perforce
ClearCase
AccuRev
TFS
…
![Page 14: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/14.jpg)
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
![Page 15: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/15.jpg)
Level 1Build Automation
Dependency Management
Resource Management
CompileLogs: Compiler warnings and violations
Database CRUD
![Page 16: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/16.jpg)
Build Automation Frameworks
Make, Cmake
MSBuild
Ant, Nant
Maven
Gradle
Rake
ScriptUnix shell
Vb script
Ruby
Python
![Page 17: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/17.jpg)
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
![Page 18: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/18.jpg)
Level 2Test Automation
Execute TestsTest Pyramid
Generate ReportsPass, Fail, Skip
Manual
Tests
![Page 19: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/19.jpg)
Test Automation
xUnitJunit, TestNG, Nunit, PHPUnit, QTUnit, PyUnit, Test::Unit, MSTest
GoogleTest
VisualAssert
Database
DBUnit, TSQLUnit
Selenium / Webdriver
WatiN / Watir
SoapUI
TestPartner
![Page 20: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/20.jpg)
Level 3Continuous Integration
![Page 21: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/21.jpg)
What is CI ?Continuous vs Continual
CI is a practiceBroken 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
![Page 22: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/22.jpg)
CI ServersCommercial
ThoughtworksCruiseControl, Go
AtlassianBamboo
UrbanCodeAnthill Pro
MicrosoftTFS
Jet BrainsTeam City
Electric CloudElectric Commander
MaestroDev
Open SourceJenkins
Hudson
Tinderbox
CDash
Apache Gump
Continuum
![Page 23: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/23.jpg)
BuildDependency Management
Resource Management ConfigurationApp Data
Compile & Link
![Page 24: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/24.jpg)
TestBuild Test Classes
Execute Tests
Generate report
![Page 25: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/25.jpg)
Advanced TestCode Coverage
Instrument application codeExecute with coverage runner
Test Suites (fast, unit, integ, smoke…)
Multiple reportsSeparate coverage reports (unit/integ)Aggregated coverage reports
![Page 26: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/26.jpg)
PackageGenerate deployable artifact
ZIP
Exe
MSI
JAR
WAR
EAR
RPM
![Page 27: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/27.jpg)
DeployIIS
SCP
MSI
TomcatEmbedded (jetty)External (cargo)
![Page 28: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/28.jpg)
VerifyAcceptance Tests
Functional Tests
System Tests
Capacity Tests
![Page 29: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/29.jpg)
User Poll 5
Does your company have a dedicated QA department ?1) Yes
2) No
![Page 30: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/30.jpg)
AnalyzeStatic Code Analysis
Standards ComplianceCustomized rules
Dependency analysis
Complexity analysis
![Page 31: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/31.jpg)
Source Analysis
DynamicCode Coverage
Coberatura, Emma,Clover, Ncover, MSTest, CoverMe, JSCover, …
StaticCoding standards
Sonar
PMD, CPD, Checkstyle, xDepend
Findbugs, CRAP4J, FxCop, StyleCop, Lint, …
CodeCity, JNCSS
![Page 32: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/32.jpg)
Advanced CIMultiple environments
Integration
QA
Staging
Production
Virtualized EnvironmentsClone as necessary
Event TriggerSCM Hook
ALM IntegrationReport build status for code change committed against feature requirement
![Page 33: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/33.jpg)
Agile Release Maturity
Build Automation
Source Control
Continuous Integration
Continuous DeliveryRelease Automation
Test Automation
AGILE PROCESS MATURITY
![Page 34: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/34.jpg)
Level 4Release Automation
Push button release to productionDeploy artifact promoted from CI
Update target database
Configure environment settingsEnvironment agnostic
![Page 35: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/35.jpg)
User Poll 6
Does your company have a dedicated Release/Configuration Management Team ?1) Yes
2) No
![Page 36: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/36.jpg)
Level 5Continuous
Delivery
![Page 37: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/37.jpg)
ArchiveRepository of Release artifacts
Store multiple versions of artifacts
Deploy versions directly from repository
![Page 38: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/38.jpg)
Artifact Repository Servers
Nexus by Sonotype
Artifactory by Jfrog
Archiva by Apache
![Page 39: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/39.jpg)
PublishPush to production
Release Automation
![Page 40: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/40.jpg)
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
![Page 41: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/41.jpg)
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
![Page 42: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/42.jpg)
Advanced CDAuto Trace Documentation
Full circle document traceDefine / Update StoryDefine / Update TaskCommit code for taskBuild job pass /fail
Build, Test, Package, Deploy, Verify, Analyze, Archive, Publish
![Page 43: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/43.jpg)
Agile Lifecyle Management (ALM)
Jira +Grasshopper
Velocity Platform
TeamForge
Team Foundation Server
Rally
VersionOne
HP
Serena
IBM
![Page 44: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/44.jpg)
Agile Release Maturity
Build Automation
Source Control
Continuous Integration
Continuous DeliveryRelease Automation
Test Automation
AGILE PROCESS MATURITY
![Page 45: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/45.jpg)
Agile Release Maturity
![Page 46: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/46.jpg)
User Survey
How useful was this webinar to you?
Is there anything you would like to know more about in a future webinar?
![Page 47: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/47.jpg)
Q & A
![Page 48: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/48.jpg)
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
![Page 49: Continuous Integration & the Release Maturity Model](https://reader035.vdocuments.net/reader035/viewer/2022062319/5549f731b4c905507a8b4664/html5/thumbnails/49.jpg)
Referencesabout Release Management and Continuous Delivery
Books---------------------------------------------------------------------------------------------------------Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automationhttp://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 Riskhttp://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 Integrationhttp://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 Worldhttp://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 Portfoliohttp://www.amazon.com/Enterprise-Release-Management-Strategic-Portfolio/dp/1608071685/ref=sr_1_4?s=books&ie=UTF8&qid=1337799413&sr=1-4