continuous delivery its not about the technology, its about the people. @satsq1 stockholm

33
Continuous Delivery It’s not about the technology it’s about the people.

Upload: tomas-riha

Post on 18-Jul-2015

230 views

Category:

Technology


1 download

TRANSCRIPT

Continuous DeliveryIt’s not about the technology it’s about the people.

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!

Testing in the pastHow its been done

SYSTEM

GUI

Building testable systems

Internal Service

GUI

Internal Service

Internal Service

Service API

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

[email protected] at

Coffee machine