continuous integration & the release maturity model

49
Agile Release Maturity Investing in reliable Software Release Management This webinar is worth 1 PDU

Upload: cprime-project-management-agile-consulting-staffing-training

Post on 06-May-2015

4.895 views

Category:

Technology


0 download

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

Agile Release Maturity

Investing in reliable Software Release Management

This webinar is worth 1 PDU

Page 2: Continuous Integration & the Release Maturity Model

Hosted by cPrime

Page 3: Continuous Integration & the Release Maturity Model

Today’s PresenterKendrick Burson

Software Engineer since 1997

Agile Development Coach

CI systems consultant

Page 4: Continuous Integration & the Release Maturity Model

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

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

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

Release Management ?

The integration and flow of development, testing, deployment, and support of complex software systems

Page 8: Continuous Integration & the Release Maturity Model

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

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

The GoalContinuous Delivery

Page 11: Continuous Integration & the Release Maturity Model

Agile Release Maturity ?

Page 12: Continuous Integration & the Release Maturity Model

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

SCM/RCS Servers

Open Source

Subversion (SVN)

Git

CVS

Mercurial

Commerical

Perforce

ClearCase

AccuRev

TFS

Page 14: Continuous Integration & the Release Maturity Model

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

Level 1Build Automation

Dependency Management

Resource Management

CompileLogs: Compiler warnings and violations

Database CRUD

Page 16: Continuous Integration & the Release Maturity Model

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

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

Level 2Test Automation

Execute TestsTest Pyramid

Generate ReportsPass, Fail, Skip

Manual

Tests

Page 19: Continuous Integration & the Release Maturity Model

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

Level 3Continuous Integration

Page 21: Continuous Integration & the Release Maturity Model

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

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

BuildDependency Management

Resource Management ConfigurationApp Data

Compile & Link

Page 24: Continuous Integration & the Release Maturity Model

TestBuild Test Classes

Execute Tests

Generate report

Page 25: Continuous Integration & the Release Maturity Model

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

PackageGenerate deployable artifact

ZIP

Exe

MSI

JAR

WAR

EAR

RPM

Page 27: Continuous Integration & the Release Maturity Model

DeployIIS

SCP

MSI

TomcatEmbedded (jetty)External (cargo)

Page 28: Continuous Integration & the Release Maturity Model

VerifyAcceptance Tests

Functional Tests

System Tests

Capacity Tests

Page 29: Continuous Integration & the Release Maturity Model

User Poll 5

Does your company have a dedicated QA department ?1) Yes

2) No

Page 30: Continuous Integration & the Release Maturity Model

AnalyzeStatic Code Analysis

Standards ComplianceCustomized rules

Dependency analysis

Complexity analysis

Page 31: Continuous Integration & the Release Maturity Model

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

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

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

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

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

Level 5Continuous

Delivery

Page 37: Continuous Integration & the Release Maturity Model

ArchiveRepository of Release artifacts

Store multiple versions of artifacts

Deploy versions directly from repository

Page 38: Continuous Integration & the Release Maturity Model

Artifact Repository Servers

Nexus by Sonotype

Artifactory by Jfrog

Archiva by Apache

Page 39: Continuous Integration & the Release Maturity Model

PublishPush to production

Release Automation

Page 40: Continuous Integration & the Release Maturity Model

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

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

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

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

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

Agile Release Maturity

Page 46: Continuous Integration & the Release Maturity Model

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

Q & A

Page 48: Continuous Integration & the Release Maturity Model

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

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