Att lyckas med integration av arbetet från flera scrum team - Christophe Achouiantz

Preview:

Citation preview

SucceedingwithIntegra0on

Integra0ngtheworkofseveralScrumteams

christophe.achouiantz@avega.se

DevelopmentTeam

Product/Serviceincrementinproduc0on

TheIdealTeam

DevTeam

DevTeam

DevTeam

Integra0onTeam

Product/Serviceincrementinproduc0on

TheIntegra0onTeam:integra0ngworkfromseveralteams

TheClassicalIntegra0on/Releaseprocess

Environments

Dev Project IT Dept. Release Project

Handover(attheend)

Handover(attheend)

TheIntegra0onTeam:tointegratecon0nuously

Integra0onTeam

Dev App

Pre‐prod Produc0onIntegra0on Acceptance

DevelopmentTeams

Concurrent,itera-ve,incrementalAc-vi-es

DevelopmentPhase ReleasePhase

10Keysuccessfactorsfortheintegra0onteam@PPM

1.  Integrateearly2.  Teamhasthenecessaryresources3.  Con0nuousintegra0on4.  Automatedtests5.  Atleasttwotestenvironments6.  Earlyperformancetests7.  Stoptheline8.  ClearcontractbetweenDev.andIntegra0onteams9.  Maketheprocessvisible10. Makethestatusvisible(andunderstandable)

•  SliceUserStoriesthe”rightway”tostartintegra0ngfromthestart(”tracerbullet”)

•  Mul0plecomponentteamsmustsynchronizetheirbacklogstoachievethe“tracerbullet”effect

1‐Integrateearly

Front‐end Back‐end DBMiddle‐wearSprint1

Sprint2

Sprint3

2‐Teamhasthenecessaryresources:competence

Integra0onScrumTeam

Testers •  Functional/Integration testers •  Performance testers

Technical Support •  Code build & deploy •  Environment setup and config •  Components Responsible

Business •  Acceptance testers

Product Owner

Integration backlog

Integra0on Acceptance Performance Produc0on

Teamisresponsibleforse]ng‐upandmaintainingtherequiredtestenvironments

Environments@PPM:

VirtualizedHWTestdata

(Deploywhenneeded)

Produc0on‐likeHWProduc0ondata

(Deploywhenneeded)

Produc0onHWProduc0ondata

(Controlleddeploy)

VirtualizedHWTestdata

(Dailydeploy)

2‐Teamhasthenecessaryresources:environments

3‐Con0nuousIntegra0on

Con0nuousIntegra0ongoals@PPM:•  Aaereachcommit

–  Build–  Runallunittests–  CreateRPM–  DeployRPMindevenvironments

•  Eachnight–  Build,rununittests,createRPM–  DeployRPMinintegra0onenvironment

Con0nuousIntegra0on@PPM

CVSSVN

CruiseControl & Maven

(+nexus +clover)

Checkout, build, run unit tests, build RPMs

Puppet RPMrepo

Dev. env.

Server Dev. env.

Server Server

RPM

Developer

poll

Dev. env.

Server Dev. env.

Server Server

Devlopment Environment (mocked)

Integration Environment (un-mocked)

After every successfull build

Nightly

4‐AutomatedTests

Toregressiontestasoaenasneeded

Testgoals@PPM:Testtheresultoftheintegra0on(no‐mocks)– Unittests– Func0onalregressiontests(automated&manual)– Performancebenchmarking(automated)

AutomatedTests@PPM(modelbasedtes0ng)

SVNTest

Automation Expert Test definitions .xml

Test models & scripts

Execu0onsResults

(0mes,logfiles,screencapture)

MBT

Test Runner (perl) 2. Collect

results

JMeterLoad‐Runner

Shell

Perl

Integration Environment (un-mocked)

Virtual machine

QTPSelenium

Windows Linux Mac OS

Virtual machine

1. Run

API

Perf.

GUI

Firefox IE Safari Opera

5‐Atleasttwotestenvironments

Integra0onenv.(nightlybuilds)

Acceptanceenv.(stable)

Integra0on Acceptance Performance Produc0on

VirtualizedHWTestdata

(Deploywhenneeded)

VirtualizedHWTestdata

(Dailydeploy)

6‐Earlyperformancetests

Createperformancetestsearlytouseasbenchmarks

(DeliveredbyDevelopmentteams)

7‐Stoptheline

Integra0onTeamstopsnewdevelopmentifintegra0onisbroken

8‐ClearContractbetweenDev&Integra0onTeams

Code deliverable (maven, RPM) Configuration info (Puppet scripts) Tested! (x% unit tests coverage)

Requirements & Test cases in QaTraq Automated tests integrated in test framework

”Stop the line!” Trouble Reports

Running Tested Features

Integra0onTeam

DevelopmentTeam

9‐Maketheprocessvisible

Integration process

Work to do to pull the features

through the process

10‐MakeStatusvisibleandunderstandable

Integra0onstatuscanbehardtograsp(”nothingworks!”)

Green=RunningTestedFeature

Features (Requirements)

Integration Environment (un-mocked)

DevTeam

Acceptance Criteria/ Requirements

(from PO)

Test cases (checked by PO)

QaTraq

Automated

Integra0ontests

Report: how many features are passing their acceptance tests

Req.Testcases

Testers use QaTraq regs (tags) In Automated tests Test results

Dashboard

RunningTestedFeatures@PPM

ManualIntegra0on

tests

Running Tested

Features

10Keysuccessfactorsfortheintegra0onteam@PPM

1.  Integrateearly2.  Teamhasthenecessaryresources3.  Con0nuousintegra0on4.  Automatedtests5.  Atleasttwotestenvironments6.  Earlyperformancetests7.  Stoptheline8.  ClearcontractbetweenDev.andIntegra0onteams9.  Maketheprocessvisible10. Makethestatusvisible(andunderstandable)

NextSteps

•  Huntwaste,wai0ng0me,etc.intheintegra0onprocess– Op0mizevalueflow

•  Pullthroughtheintegra0onprocessinsteadofpush– Kanban

•  Releasepossibleaaereverysprint(insteadofafew0mesperyear)!

christophe.achouiantz@avega.se

Recommended