How to succeed integrating the work of several Scrum Teams.
I present 10 Key success factors for an integration team based on a large project at PPM (swedish pension agency).
This talk was given at Agila Sverige conference in 2009. The video for the talk is available in swedish here: https://vimeo.com/57062631
3. The Integration Team: integrating
work from several teams
Dev
Dev
Team
Team
Dev
Dev Integration
Integration
Team
Team Team
Team
Product / Service
Dev
Dev increment in production
Team
Team
4. The Classical
Integration/Release process
Environments
Dev Project Release Project IT Dept.
Handover Handover
(at the end) (at the end)
5. The Integration Team:
to integrate continuously
Development Phase Release Phase
Development Teams
Concurrent, iterative,
incremental Activities
Integration Team
6. 10 Key success factors for the
integration team @ PPM
1. Integrate early
2. Team has the necessary resources
3. Continuous integration
4. Automated tests
5. At least two test environments
6. Early performance tests
7. Stop the line
8. Clear contract between Dev. and Integration teams
9. Make the process visible
10. Make the status visible (and understandable)
7. 1 - Integrate early
• Slice User Stories the ”right way” to start integrating
from the start (”tracer bullet”)
• Multiple component teams must synchronize their
backlogs to achieve the “tracer bullet” effect
Sprint 3
Sprint 2
Sprint 1
Front-end Middle-wear Back-end DB
8. 2- Team has the necessary
resources: competence
Business
• Acceptance testers
Integration
backlog
Product Testers
• Functional/Integration testers
Owner
• Performance testers
Technical Support
• Code build & deploy
• Environment setup and config
• Components Responsible
9. 2- Team has the necessary resources:
environments
Team is responsible for setting-up and maintaining the
required test environments
Environments @ PPM:
Virtualized HW Virtualized HW Production-like HW Production HW
Test data Test data Production data Production data
(Daily deploy) (Deploy when needed) (Deploy when needed) (Controlled deploy)
10. 3- Continuous Integration
Continuous Integration goals @ PPM:
• After each commit
– Build
– Run all unit tests
– Create RPM
– Deploy RPM in dev environments
• Each night
– Build, run unit tests, create RPM
– Deploy RPM in integration environment
11. Continuous Integration @ PPM
poll CruiseControl
CruiseControl Checkout, build,
CVS
CVS & Maven run unit tests,
& Maven
SVN
SVN (+nexus +clover)
(+nexus +clover)
build RPMs
Developer
After every RPM
successfull build
Puppet
Puppet RPM
RPM
repo
repo
Nightly
Dev.
Dev. Dev.
Dev.
env.
Dev. env.
Dev. env.
Dev. env.
Dev.
Server
env.Server
env. Server
env.Server
env.
Server
Server
Server
Server Server
Server
Server
Server
Devlopment Environment Integration Environment
(mocked) (un-mocked)
12. 4- Automated Tests
To regression test as often as needed
Test goals @ PPM:
Test the result of the integration (no-mocks)
– Unit tests
– Functional regression tests (automated & manual)
– Performance benchmarking (automated)
13. Automated Tests @ PPM
(model based testing)
Integration Environment
(un-mocked)
SVN
SVN Test Runner (perl)
Test 1. Run
Automation 2. Collect
Test definitions .xml results
Expert MBT
MBT
Test models & scripts GUI
API
Selenium
Selenium QTP
QTP
Shell
Shell Firefox
Perf. Windows IE
Executions
Executions Perl
Perl Virtual machine Linux
Mac OS
Safari
Opera
Results
Results Virtual machine
(times, log files,
(times, log files, JMeter
JMeter
screen capture) Load-
Load-
screen capture)
Runner
Runner
14. 5 - At least two test environments
Integration env. (nightly builds)
Acceptance env. (stable)
Virtualized HW Virtualized HW
Test data Test data
(Daily deploy) (Deploy when needed)
15. 6 - Early performance tests
Create performance tests early
to use as benchmarks
(Delivered by Development teams)
16. 7 - Stop the line
Integration Team stops new development
if integration is broken
17. 8- Clear Contract between
Dev & Integration Teams
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
19. Contract Integration
Acceptance Production
check env. env. env.
Work to do
to pull the
features
Features
through the Integration process
process
20. 10- Make Status visible and
understandable
Integration status can be hard to grasp (”nothing works!”)
Green =
Running Tested Feature
Features
(Requirements)
21. Running Tested Features @ PPM
Acceptance Criteria/ QaTraq
Requirements
(from PO)
Req.
Req.
Test cases
Test cases
Test cases
(checked by PO)
Report: how many Testers use QaTraq regs (tags)
Test results
features are passing In Automated tests
their acceptance tests
Running Dashboard
Tested
Features Automate
Automate
Manual
Manual
dd
Integration
Integration
Integration
Integration
tests
tests
tests
tests
Integration Environment
(un-mocked)
22. 10 Key success factors for the
integration team @ PPM
1. Integrate early
2. Team has the necessary resources
3. Continuous integration
4. Automated tests
5. At least two test environments
6. Early performance tests
7. Stop the line
8. Clear contract between Dev. and Integration teams
9. Make the process visible
10. Make the status visible (and understandable)
23. Next Steps
• Hunt waste, waiting time, etc. in the integration
process
– Optimize value flow
• Pull through the integration process instead of push
– Kanban
• Release possible after every sprint
(instead of a few times per year)!
christophe.achouiantz@avega.se