continuous delivery its not about the technology, its about the people. @satsq1 stockholm
TRANSCRIPT
Tomas Riha
Architect @ VGT/WirelessCar
Passionate about creativity, change and improvementHorrible at following instructions and performing repetitive tasks
MAJOR Project Liability
mail: [email protected]: @TomasRihaSE
blog: continuous-delivery-and-more.blogspot.com
Four Years ago
New Telematics Delivery Platform
Multiple Stakeholders
Continuous Regression Testing
How hard can it be?
Regression Test
Unit Testing
Component Testing
System Testing
Rollback/Compatibility Testing
Failover Testing
Performance Testing
At first it was super easy!
Small team of just product owner, architects and scrum master.
Huge productivity, natural acceptance test driven development.
Fast return on investment
All by the book.... we were doingContinuous Delivery!
Then we tried to scale it...
... and we failed in every possible way.
We lost our test driven developmentWe lost the individual responsibility
We more or less became a automated waterfall unable to deliver daily
Continuous Delivery changes our behaviour
Changing the behaviour of 5 people is easy.
Changing the behaviour of 50 is super hard.
You have to understand the changes!
Continuous Delivery changes the entire organization.
Developers
Everything has to work all the time!
Pre Planning
Dev Sys Test Reg Test
Pre Planning
Dev Sys Test Reg Test
In traditional scrummerfall projects system only works once every iteration.
No one cares if you check something in before lunch just to “save” your work.
Sprint
Developers
Pre Planning
Dev
Test Automation
Reg Test
Thats an awful lot of testing... YES!
Test driven development requires that developers work with testing.
Pre Planning
Reg Test Reg Test
Verification
Verification
Acceptance Test Driven Development
Developers
Pre Planning
Dev
Test Automation
Reg Test
This creates context switching but its up to the developer to step it up!
Pre Planning
Reg Test Reg Test
Verification
Verification
Regression has priority! ALWAYS!
Developers
Developers hate branches, or so they say
Hate merging because it mixes their code with others
Love feature branches because they don't have to integrate their work
Developers LOVE BRANCHES!!
Continuous Delivery is done on the trunk.
Developers
Developers need to take more responsibility forRegression testWriting test code
Testing the systemIntegrating their code
Understanding Production Runtime
In order to always have a working system
Need to take more responsibility
Developers
So it’s just up to the developers to shape up?
The Continuous Delivery process needs to provide visibility and traceability to provide means to take responsibility.
Developers need to be coached to increase responsibility and to mitigate fear.
Testers
When we scaled up we added testers
Developers were happy because they could go back to handing over code for testing.
Adding testers we lost all test driven development.
Our QUALITY DROPPED!!
Testers
Why did this happen?
Handover developer to test
Lost consensus
What is test automation forHow is test automation builtWho does test automation
Test as Code
Testers
Pre Planning
Dev Sys Test Reg Test
Pre Planning
Dev Sys Test Reg Test
Sprint
Recruiting the RoleA tester is a tester is a tester
Manual System & Regression Testing is a reactive repetitive task.
Testers
Pre Planning
Dev
Test Automation
Reg Test
Acceptance Test Driven Development is NOT Test Driven its driven by Automated Requirement Verification, checking.
Not all testers have the skill set or mind set to work with Automated Requirement Verification!
Pre Planning
Reg Test Reg Test
Verification
Verification
Acceptance Test Driven Development is proactive!
Component Tests
Internal Service
Internal Service
Internal Service
Each Service Tested as Black Box in isolationand with high detail level
Continuous Delivery
Build Release Deploy Test
Build Release Deploy Test
Build Release Deploy Test
Build Release Deploy Test
Build Release Deploy Test
Assemble Release Deploy Test
Component Pipe
100s of tests run in parallel testing
System Pipe
10s Use Case Requirements Verified
Testers
Exploratory Testing
Requirement Verification/Checking ensures we deliver what we promise
Exploratory Testing ensures that we improve our application
Exploratory testing done outside the release cycle
Never hide manual regression testing behind Exploratory Testing
Exploratory testing can NEVER block a production deploy
Testers
Agreement is key
Reliable and Repeatable Test Automation has to be done on a black box.
Never verify on system files, databases or code.
Build quality inVerify on interfaces
Tests as Code
Testers
Managing the change to the tester profession.
Developers have an expanded role
Testers have a changed role which is much harder to manage
Testers must let developers work with test
The Team creates the Tests as Code with the knowledge and experience of the Tester and the Developer.
Testers
Our most sought after profile
Testers with strong technical skillsDevelopers with strong testing skills
Be either and earn $$$$
Be either to have a job
Project Management
Pre Planning
Dev Sys Test Reg Test
Pre Planning
Dev Sys Test Reg Test
Sprint
Scrum really doesn't fit all that well
Scrum builds up to a end of sprint release, but why not release daily?
Project ManagementKanban inspired feature development better fit
Building and releasing one feature “at the time” is a much better fit.
Feature cycle
Pre Planning
Dev
Test Automation
Pre Planning
Verification
Verification
Pre Planning
Dev
Test Automation
Pre Planning
Verification
Verification
Feature cycle
The Team
The Team only takes responsibility to the next hand over
The Team will never reach out to an external party for help
The Team is only aware of its weaknesses if its responsible for its deliveries
DevOps is a must in order to take production responsibility
The Team
The Team
Requirements
Architecture
Code
Deployment
Automation
Middleware
Databases Infrastructure
Monitoring
Logging
Testing
Verification
Automation
The Team
The Team
Requirements
Architecture
Code
Deployment
Automation
Middleware
Databases Infrastructure
Monitoring
Logging
Testing
Verification
AutomationA
TD
We recruited by roles and this is what we got!
The Team
The Team
Requirements
Architecture
Code
Deployment
Automation
Middleware
Databases Infrastructure
Monitoring
Logging
Testing
Verification
Automation
Recruiting by Competence and T shape
How did it go?
Organization changed to delivery micro service based platform through Continuous Delivery
Team dedicated to building and delivering Continuous Delivery as a Service for all the development teams.
Continuous Delivery as a Service used by 100+ Team Membersand
Over 200 deployable applications and libraries
We still suck at Continuous Delivery!
Thats it!
Feedback & Any questions you forgot to ask?
http://continuous-delivery-and-more.blogspot.se@TomasRihaSE
Coffee machine