att lyckas med integration av arbetet från flera scrum team - christophe achouiantz

23
Succeeding with Integra0on Integra0ng the work of several Scrum teams [email protected]

Upload: manssandstrom

Post on 02-Jul-2015

356 views

Category:

Technology


0 download

TRANSCRIPT

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

SucceedingwithIntegra0on

Integra0ngtheworkofseveralScrumteams

[email protected]

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

DevelopmentTeam

Product/Serviceincrementinproduc0on

TheIdealTeam

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

DevTeam

DevTeam

DevTeam

Integra0onTeam

Product/Serviceincrementinproduc0on

TheIntegra0onTeam:integra0ngworkfromseveralteams

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

TheClassicalIntegra0on/Releaseprocess

Environments

Dev Project IT Dept. Release Project

Handover(attheend)

Handover(attheend)

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

TheIntegra0onTeam:tointegratecon0nuously

Integra0onTeam

Dev App

Pre‐prod Produc0onIntegra0on Acceptance

DevelopmentTeams

Concurrent,itera-ve,incrementalAc-vi-es

DevelopmentPhase ReleasePhase

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

10Keysuccessfactorsfortheintegra0onteam@PPM

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

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

•  SliceUserStoriesthe”rightway”tostartintegra0ngfromthestart(”tracerbullet”)

•  Mul0plecomponentteamsmustsynchronizetheirbacklogstoachievethe“tracerbullet”effect

1‐Integrateearly

Front‐end Back‐end DBMiddle‐wearSprint1

Sprint2

Sprint3

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

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

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

Integra0on Acceptance Performance Produc0on

Teamisresponsibleforse]ng‐upandmaintainingtherequiredtestenvironments

Environments@PPM:

VirtualizedHWTestdata

(Deploywhenneeded)

Produc0on‐likeHWProduc0ondata

(Deploywhenneeded)

Produc0onHWProduc0ondata

(Controlleddeploy)

VirtualizedHWTestdata

(Dailydeploy)

2‐Teamhasthenecessaryresources:environments

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

3‐Con0nuousIntegra0on

Con0nuousIntegra0ongoals@PPM:•  Aaereachcommit

–  Build–  Runallunittests–  CreateRPM–  DeployRPMindevenvironments

•  Eachnight–  Build,rununittests,createRPM–  DeployRPMinintegra0onenvironment

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

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

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

4‐AutomatedTests

Toregressiontestasoaenasneeded

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

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

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

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

5‐Atleasttwotestenvironments

Integra0onenv.(nightlybuilds)

Acceptanceenv.(stable)

Integra0on Acceptance Performance Produc0on

VirtualizedHWTestdata

(Deploywhenneeded)

VirtualizedHWTestdata

(Dailydeploy)

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

6‐Earlyperformancetests

Createperformancetestsearlytouseasbenchmarks

(DeliveredbyDevelopmentteams)

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

7‐Stoptheline

Integra0onTeamstopsnewdevelopmentifintegra0onisbroken

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

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

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

9‐Maketheprocessvisible

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

Integration process

Work to do to pull the features

through the process

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

10‐MakeStatusvisibleandunderstandable

Integra0onstatuscanbehardtograsp(”nothingworks!”)

Green=RunningTestedFeature

Features (Requirements)

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

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

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

10Keysuccessfactorsfortheintegra0onteam@PPM

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

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

NextSteps

•  Huntwaste,wai0ng0me,etc.intheintegra0onprocess– Op0mizevalueflow

•  Pullthroughtheintegra0onprocessinsteadofpush– Kanban

•  Releasepossibleaaereverysprint(insteadofafew0mesperyear)!

[email protected]