continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery...

Preview:

Citation preview

Continously delivering

continuous deliveryKim van Wilgen | Schuberg Philis

nl.linkedin.com/kimvanwilgen

kimvanwilgen@gmail.com

www.kimvanwilgen.com

@kimvanwilgen

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Customer director Schuberg Philis20

18

Head of software development ANVA

2017

Head of IT KlaverbladVerzekeringen

2014

Hello world1980

Schuberg Philis

3

Mission criticaldigital transformations

Financiallyindependent

Started in2001

300team members (Dec 2018)

EUR 60mrevenue

Market Quality leaderin Business Critical IT Outsourcing

Single KPI100% customer satisfaction

Our customers

4

5

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

The value of continuous delivery

AGILEDefine and develop incremental customer value

CDDeliver incremental customer value

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Go faster!

Go faster

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Small things are easier to handle

Large projects 10% success

52% challenged

Small projects74% success

22% challenged

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Hypothesis driven development

Unused featuresLarge deliveries 64%Small deliveries 14%

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Eliminate waste

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Enhance value through early delivery

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Constant change

Continuous Delivery (CD) is a set of practices and principles in software engineering aimed at building, testing and releasing software faster and more frequently. They help reduce the cost, time and risk of delivering changes, and ultimately value, to customers by allowing for more incremental changes to applications in production.Wikipedia, 2017

Continuous Delivery (CD) is a set of practices and principles in software engineering aimed at building, testing and releasing software faster and more frequently. They help reduce the cost, time and risk of delivering changes, and ultimately value, to customers by allowing for more incremental changes to applications in production.Wikipedia, 2017

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Organize for incremental change

Automation of deployments

Automation of tests

Independent development and delivery

Pervasive visibility of usage and health

Manage the stakeholders

Reducing time, cost and risk

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

1: Organize for incremental change

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Continuous delivery means you’re building software. So treat is as a

software development process

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Grow together consistently and allow time to adjust

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Autonomy, self organization and T shaped people

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Team autonomy asks leaders to change

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

2: Automation of deployments

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Level 1

Dev Test 1 Test n

Integration Acceptance Production

Dev Test 1 Test n

For each component

Full landscape

Integration automatic

Integration manual

Acceptance Production

Add tests and metrics

Add monitoring

Add reviews

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Peer reviews

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Review small increments

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Monitoring

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Static code analysis

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Quality

Security

Performance

Mutation

Experimenting

A/B testing

Canary releasing

Blue / green deployments

Data driven decisions

Assistance

Walkthroughs

Chatbots

Distributed releasing

Health

Issue tracking

Build status

Monitoring

Immutable servers

Improve and maturize contextual

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

3: Automation of tests

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Testing requires architecture, design and prioritization

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Testing pyramid

Unit tests are fast and are the test architecture fundament.

01

01

02

0304

High-value tests- Fast (API tests)

- Flaky code- Business critical processes

- Under development

Monitoring in production- Slow tests

- Expensive tests- Externally impacted

01

02

03Lower value tests

- Long-running tests- Stable code

04

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Externally impacted functions

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Maintainable tests

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Infrastructure as code

Version controlTest automation

Configuration tests

Collaborate withthe business

They know their domain, you know test

design.

Grow assurance and enable speed by

shifting left

Mindset

Testers can learn about structure, architecture, maintainability and performance.

Developers can learn the “What would happen if I...” perspective.

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Test if there are tests

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Build status

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Mutation testing

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

4: Independent deployment and delivery

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Branching is your new mother-in-law. Don’t go there unless you’re forced.

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Martin Fowler, Thoughtworks

Branching means you’re extending integrationFeature pipelines mean you’re extending integration

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Isolation and integration

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Deployment != releasing

“EVERYTHING FACEBOOK WILL BE RELEASING NEXT YEARIS ALREADY IN PRODUCTION”

- Jez Humble -

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Integration pyramid

Business co-creation01

02

03

0405

Inaccessible functionality

Branching

01

02

03 Use toggles

04

Blue / Green05

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Coordinate your deployments

At first. And break dependencies.

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Acceptance Rehearsal CanaryFull

production

Release strategy

Product owner

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Microservices are the first architectural style to fully embrace continuous delivery. It is an evolutionary architecture, which supports incremental non-breaking change as a first principle along multiple dimensions at the structural level of the applicationNeal Ford, Thoughtworks

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

5: Pervasive visibility of usage and health

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Design for data and integrate it in your development

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Make logging, static analysis and scans and checks relevant

Adapt to your needs

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Build pipelineInsight in process, status and workflow management

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Issue tracking

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Benefit tracking as part of your solutions

A) Business model definition (Responsibility Argenta)

Customer journey improvement Describe the benefit in the customer journey when the feature is delivered. State the key benefits for the user when the objective of the feature is delivered.

Benefit tracking How will the benefits be tracked to validate the business case?

Non functionals State aspects of security, compliance, audit, SLA and support in case they are different then standard. State regulatory deadline if applicable

Key users State the users of the idea

Key risks State the key risks and mitigating measures.

Pre-approvals [] Compliance [] Security [] Legal & Risk [] Monthly recurring cost

Revenue What is the expected revenue that follows from achieving the goal of the feature

Feature refinement by SBP & BD (YT) in cooperation with Argenta

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

6: Manage the stakeholders

VS

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Speed of delivery isn’t the answer to life, the universe and everything

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Don’t get hurt speeding up

Integration of security in your pipeline

Don’t get hurt speeding up

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

X“If you are doing DevOps without security, you are doing it wrong”

Thiago de Faria – Head of solutions engineering, LINKIT

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Shift left on security

VS

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Automate first

• SAST

• DAST

• Proxy tools

• Dependency checks

• Custom scripts

Integration in the pipelines

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Canary releasing

Cocreating tests

Walkthroughs

Embedded user assistance and

chatbots

Release notes integrated in

deployment

Fallback plans

Manual Acceptance Testing

Education for users

User documentation

Communication about releases

Release process

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Releasenotes from jira

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Auditing and compliance

Only green to production4 eyes principle

Test and code qualityEverything in version control

Audit and compliance

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Customers don’t want continuousdelivery

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Legacy code and broken trust

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Explain yourgoal

Pull, not pushFirst improve,

then accelarate

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Organize for incremental change

Automation of deployments

Automation of tests

Independent development and

delivery

Pervasive visibility of usage and

health

Manage the stakeholders

Reducing time, cost and risk

• www.kimvanwilgen.com

• @kimvanwilgen

• kimvanwilgen@gmail.com

REFERENCES AND QUESTIONS

Recommended