chris northwood camp digital 21015 - continuous delivery
TRANSCRIPT
How does the BBC deliver better software faster?
Chris Northwood Principal Software Engineer BBC Digital
CC-BY SALFORD UNIVERSITY
Continuous Delivery
• Deploying code to live automatically
• Using a Continuous Delivery tool
Continuous Delivery
• Deploying code to live automatically
• Using a Continuous Delivery tool
Continuous Delivery
• Removing bottlenecks to release
• Empower teams
• Fast feedback, rapid iterations
FTP, HTML and Perl scripts
REST, SOA, continuous integrationModern web development at last!
Continuous Delivery at the BBC
• Move control from central “Online Technologies Group” to individual teams
• Move to devops support model
• Move to cloud infrastructure
Our Principles
• Automate all the things
• Zero defect backlog
• Small, vertically sliced features
HENRIK KNIBERG
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
Where next?
• BBC Connected Studio events
• BBC Academy
• BBC Internet Blog
• Work with us?