2. Tomas Riha
Architect @ VGT/WirelessCar
Passionate about creativity, change and improvement
Horrible at following instructions and performing repetitive tasks
MAJOR Project Liability
mail: triha74@gmail.com
twitter: @TomasRihaSE
blog: continuous-delivery-and-more.blogspot.com
3. Three Years ago
New Telematics Delivery Platform
Multiple Stakeholders
Continuous Regression Testing
How hard can it be?
5. At first it was super easy!
Small team of just product owner architect and scrum
master.
Huge productivity, natural test driven development.
Fast return on investment
All by the book.... we were doing
Continuous Delivery!
6. Then we tried to scale it...
... and we failed in every possible way.
We lost our test driven development
We lost the individual responsibility
We more or less became a automated waterfall unable to
deliver daily
7. 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!
8. Lets look at the roles and how they change
Developer
Tester
PM/Scrum Masters
Product Owner
Operations
Organization
9. 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
12. 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.
13. Developers
Developers need to take more responsibility for
Regression test
Writing test code
Testing the system
Integrating their code
In order to always have a working system
Need to take more responsibility
14. 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.
15. 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!!!
16. Testers
Agreement is key
Finding bugs is not the goal of testing.
Ensure we build the right application.
Testing has to be done on a black box.
Never verify on system files, databases or code.
Verify on interfaces.
Build quality in.
Tests as Code
17. Testers
Pre
Planning
Dev Sys Test Reg Test
Pre
Planning
Dev Sys Test Reg Test
Sprint
A tester is a tester is a tester
Manual System & Regression Testing is a reactive repetitive task.
18. Testers
Pre
Planning
Dev
Test
Automation
Reg Test
TDD is not testing its requirement verification.
Not all testers are suited to do requirement verification!
Pre
Planning
Reg Test Reg Test
Verification
Verification
Test Drive Development is proactive!
20. Testers
Exploratory Testing
Requirement Verification ensures we deliver what we promise
Exploratory Testing ensures that we improve our application
Exploratory testing done without the requirements
Never hide manual regression testing behind Exploratory Testing
21. Testers
Changed how we look on Tester Profession
Requirement Verification Specification
usually done by BAs/Testers/Architects
Verification Specification Automation
usually done by Developers
Regression Suite Management
usually done by Testers
22. Testers
Our most sought after profile
Testers with strong technical skills
Developers with strong testing skills
Be either and earn $$$$
23. 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 test
The Team creates the Tests as Code with the knowledge and experience of the
Tester and the Developer.
24. 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?
25. Project Management
Kanban 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
26. Project Management
What is included in the release???
Continuous Delivery process needs to provide reporting and release notes.
Visibility of feature completion is extremely important.
Feature cycle
Pre Planning
Dev
Test Automation
Pre Planning
Verification
Verification
Pre
Planning
Dev
Test
Automation
Pre
Planning
Verification
Verification
Feature cycle
27. Product Owners
Want just what they ask for nothing else.
Are extremly scared for half finished features.
Shared bug fixes are ok but not shared features.
Product Owners love branches
28. Operations
In the long run DevOps is a must!
Infrastructure needs to be versioned,
dependency managed
and deployed with application
using same mechanisms in all environments
infrastructure & configuration as code
Operations & Infrastructure architecture needs to be part of development
29. Road to DevOps & Infrastructure as Code
Lot of parallels with road to TDD and Test Automation
Dont hide configuration in code
Dont hide test verification in code
We can just use do it manually in the console
We can just use verify it manually in the gui
Developers shouldn't touch runtime environments
Developers shouldn't test
30. Road to DevOps & Infrastructure as Code
Lot of parallels with road to TDD and Test Automation
Most of all traditional old school Testers and Operations Specialists don't have
the skill set to automate as code and are used to doing manual tasks.
Automation creates the same fear of in both and both have traditionally a very
low confidence in developers.
31. Road to DevOps & Infrastructure as Code
Lot of parallels with road to TDD and Test Automation
Tests as Code needs Architecture, a dependency managed and verified
lifecycle.
Infrastructure as Code needs Architecture and verified lifecycle
Infrastructure and Test Code needs to become first class citizens and not
treated as one time scripts
32. Road to DevOps & Infrastructure as Code
Managing the change to the Operation Specialist
professions.
Developers have to be allowed into production
Manage the responsibility level of the developers and gain confidence from the
Operations Specialists
Operations Specialists need to understand that servers are not pets but cattle
The team creates the Infrastructure as Code with the knowledge and
experience of the Operations Specialist and the Developer
33. DevOps & Infrastructure as Code
Next hot profiles for us
Operations Specialists with strong development skills
Developers with strong infrastructure skills
Be either and earn $$$$
34. Cross functional consensus
If the individuals don't reach a consensus on how to work with Continuous Delivery
through the entire process your fancy implementation becomes the worlds most
expensive CI system
35. Organisation
Buy in from Organization is a must
Continuous Delivery affects entire organization.
Continuous Delivery CHANGES the organization
and the individuals within it.
But don't forget a grassroot Continuous Delivery initiative
can change your organization!
36. Thats it!
Feedback & Any questions you forgot to ask?
http://continuous-delivery-and-more.blogspot.se
@TomasRihaSE
or at
the Pub!