continuous delivery its not about the technology, its about the people

Post on 15-Jan-2015

642 Views

Category:

Business

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Continuous DeliveryIts not about the technology its about the

people.

Tomas Riha

Architect @ VGT/WirelessCar

MAJOR Project LiabilityPassionate about creativity, change and improvement

Horrible at following instructions and performing repetitive tasks

mail: triha74@gmail.comtwitter: @TomasRihaSE

blog: continuous-delivery-and-more.blogspot.com

Three Years ago

New Plattform

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

Continuous Delivery

Build, release, deploy and test every check in.

Build Release Deploy Test

Continuous Delivery

Principles

The process MUST be repeatable and reliableAutomate everything

If somethings difficult or painful, do it more oftenKeep everything in source control

Done means “released”Build quality in!

Everybody has responsibility for the release processImprove continuously

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 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 delivery 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!

Lets look at the roles and how they change

DeveloperTester

PM/Scrum MastersProduct Owner

OperationsOrganization

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 in a something 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

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

In order to always have a working system

Need to take more responsibility

Developers

So its its 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!!!

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.

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.

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!

Testers

Pre Planning

Dev

Test Automation

Reg Test

Automating the requirement verification is a technical task.

Not all testers are suited to do automation as its too technical!

Pre Planning

Reg Test Reg Test

Verification

Verification

Test Drive Development is also technical!

Testers

Changed how we look on Tester Profession

Requirement Verification usually done by BAs/Testers/Architects

Test Case Automation usually done by Developers

Regression Suite Managementusually done by Testers

Testers

Our most sought after profile

Testers with strong technical skillsDevelopers with strong testing skills

Be either and earn $$$$

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

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

Project ManagementWhat 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

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

Operations

In the long run DevOps is a must!

Infrastructure needs to be versioned, dependency managed

and deployed with applicationusing same mechanisms in all environments

Operations & Infrastructure architecture needs to be part of development

Organisation

Buy in from Organization is a mustContinuous Delivery affects entire organization.

Continuous Delivery CHANGES the organization and the individuals within it.

Thats it!

Feedback & Any questions you forgot to ask?

http://continuous-delivery-and-more.blogspot.seor at

the Bar!

top related