Chris Northwood Camp Digital 21015 - Continuous delivery

19
How does the BBC deliver better software faster? Chris Northwood Principal Software Engineer BBC Digital

Transcript of Chris Northwood Camp Digital 21015 - Continuous delivery

Page 1: Chris Northwood Camp Digital 21015 - Continuous delivery

How does the BBC deliver better software faster?

Chris Northwood Principal Software Engineer BBC Digital

Page 2: Chris Northwood Camp Digital 21015 - Continuous delivery

CC-BY SALFORD UNIVERSITY

Page 3: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 4: Chris Northwood Camp Digital 21015 - Continuous delivery

Continuous Delivery

• Deploying code to live automatically

• Using a Continuous Delivery tool

Page 5: Chris Northwood Camp Digital 21015 - Continuous delivery

Continuous Delivery

• Deploying code to live automatically

• Using a Continuous Delivery tool

Page 6: Chris Northwood Camp Digital 21015 - Continuous delivery

Continuous Delivery

• Removing bottlenecks to release

• Empower teams

• Fast feedback, rapid iterations

Page 7: Chris Northwood Camp Digital 21015 - Continuous delivery

FTP, HTML and Perl scripts

REST, SOA, continuous integrationModern web development at last!

Page 8: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 9: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 10: Chris Northwood Camp Digital 21015 - Continuous delivery

Continuous Delivery at the BBC

• Move control from central “Online Technologies Group” to individual teams

• Move to devops support model

• Move to cloud infrastructure

Page 11: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 12: Chris Northwood Camp Digital 21015 - Continuous delivery

Our Principles

• Automate all the things

• Zero defect backlog

• Small, vertically sliced features

Page 13: Chris Northwood Camp Digital 21015 - Continuous delivery

HENRIK KNIBERG

Page 14: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 15: Chris Northwood Camp Digital 21015 - Continuous delivery

Run test suite on sandbox Code Sniffer Code coverage NFRs

Feature Level Testing

App Level Integration Testing

Regression Testing

Promotion from int to test Release sanity checks KDF run

Manual regression KDF Run Update KDF Pack DoD Updated Automated Regression

Live Release

Product Definition

Feature Build

Testing Phase

Release phase

Tech spike UX Spec Acceptance Criteria 4 amigos Story pointing

Prototyping User testing Prioritisation

Create feature branch Create Tests including mock data Write code Pairing TDD Write Manual Test Cases TestRail Updated Test cases reviewed Identify automation test candidates

Peer review Fix early bugs DoD Update Pull request & code review Build

Journey of a feature to live

No blocker bugs Features and dependencies must be tested before a release can go Fix none blocker bugs as next priority above all DoD Completed

Test supported device/browser list Fix bugs triage only when needed Accessibility testing Exploratory testing Manual testing

Test supported device/browser list Fix bugs triage only by exception Exploratory testing Manual Testing Integration Load test Accessibility testing

Technical design Technical architecture Updating story points UX design considered Accessibility considered Test considered Tech spike

Pre Release Activities

Content release Co-ordinate with other teams

Post Live Release

Post release activities Live Sanity check Release note Live Regression KDF Run Stats analysis / RUM

Tech Discovery Build Feature CI Dev/UX/Test Review Push to Test

Feature Elaboration Feature Definition

Page 16: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 17: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 18: Chris Northwood Camp Digital 21015 - Continuous delivery
Page 19: Chris Northwood Camp Digital 21015 - Continuous delivery

Where next?

• BBC Connected Studio events

• BBC Academy

• BBC Internet Blog

• Work with us?