48
Gavin Barton Group Engineering Manager BBC Future Media, K&L & Content Discovery e: [email protected] t: @gav_bar

Engineering at bbc kl hpsd

Embed Size (px)

Citation preview

Gavin BartonGroup Engineering ManagerBBC Future Media, K&L & Content Discovery

e: [email protected]

t: @gav_bar

171 million

Homepage and Search vision is to instigate and deepen each BBC Online visitor’s journey

through the stories that spark their interests and capture

their imagination

ENGINEERING AT THE BBC

building our team culture

Our Commitment

K&L Product Vision – Brilliantly CuriousUnlocking learning potential in everything we do. The BBC’s knowledge and learning products make learning feel effortless because they wake and sustain your natural curiosity with connected services built around world-class BBC content.

Development Team MissionTo deliver great software and products for the K&L Product vision keeping audiences at the heart of what we do.

CraftQuality Delivery

• Our Team Charter is our guiding principles

• Collaborate and deliver as team

Our Team

• No showstopper bugs in our live code

• 99.95% availability for all our continuous delivery cloud based projects

• We deliver high quality software

• NFRs from the out set

• Treated as a first class citizen

• Great engineering practices adopted throughout team

• Share our code• We hold each

other to high standards

• We adopt great continuous delivery practices

• Deliver our products when we say we will

• Our team builds great culture

• Keep Innovating• Enjoy what we

do• We don’t work in

silos

PDM

TPM BA UX DEV DEV DEV DEV TEST

TEST

TPM BA UX DEV DEV DEV TEST

DEV LEAD

UX

PDM

DEV

Right people around the same table

ENGINEERING AT THE BBC

our delivery mindset

Tracking Progress

Visibility is everything

ENGINEERING AT THE BBC

continuous delivery

Continuous Integration ≠ Continuous Delivery

- Smaller features

- Regular live releases

- Increased Automation

- DevOps

- Mindset change…

“Always ready for release”

Operational Concerns

• Quality from the outset

• Deal with Monitoring, support etc early

• Measure and track NFRs

• Releasing to live before audience go live

• Failure scenarios and group prep

Delivering Value

• Small features with value

• Team focused on few features

• Limit WIP

Quality of Build

• Use branching to keep the master clean

• Fast, automated tests

• Test everything

• Code reviews enforced through GitHub

• Build run on code review candidates

Publically Advertise our Status

Defects

• Daily triage

• Now or never

• Blockers

• Belief in next live release

Surface Quality

• Pass rate

• Defect Age

• Live Status

Unfinished Features

• Hide from live users

• Manage via content

• Feature flags

ENGINEERING AT THE BBC

building software – the fun stuff

How we Engineer Software

• Responsive Web Software

• Cut the mustard

• HTML Standards

• NFRs

• Accessibility

• Keep it simple

• SOA – RESTful services

Feature Level

Testing

App Level

Integration

Testing

Regression

Testing

Live Release

Product

Definition

Feature

Build

Testing

Phase

Release

phase

Journey of a feature to live

Pre Release

Activities

Post Live

Release

Tech Discovery Build Feature CIDev/UX/Test

ReviewPush to Test

Feature

Elaboration

Feature

Definition

Product

Definition

Journey of a feature to live

Feature

Elaboration

Feature

Definition

Product

Definition

Journey of a feature to live

Feature

Elaboration

Feature

Definition

Feature

Build

Journey of a feature to live

Tech Discovery Build Feature CIDev/UX/Test

ReviewPush to Test

Feature

Build

Journey of a feature to live

Tech Discovery

Technical design

Technical architecture

Updating story points

UX design considered

Accessibility considered

Test considered

Tech spike

Feature

Build

Journey of a feature to live

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

Build Feature

Feature

Build

Journey of a feature to live

Run test suite on sandbox

Code Sniffer

Code coverage

NFRs

CI

Feature

Build

Journey of a feature to live

Peer review

Fix early bugs

DoD Update

Pull request & code review

Build

Push to Test

Feature Level

Testing

App Level

Integration

Testing

Regression

Testing

Testing

Phase

Journey of a feature to live

Feature Level

Testing

Testing

Phase

Journey of a feature to live

Test supported device/browser list

Fix bugs triage only when needed

Accessibility testing

Exploratory testing

Manual testing

App Level

Integration

Testing

Testing

Phase

Journey of a feature to live

Test supported device/browser list

Fix bugs triage only by exception

Exploratory testing

Manual Testing

Integration

Load test

Accessibility testing

Regression

Testing

Testing

Phase

Journey of a feature to live

Manual regression

KDF Run

Update KDF Pack

DoD Updated

Automated Regression

Live Release

Release

phase

Journey of a feature to live

Pre Release

Activities

Post Live

Release

Release

phase

Journey of a feature to live

Pre Release

Activities

Content release

Co-ordinate with other teams

Live Release

Release

phase

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

Release

phase

Journey of a feature to live

Post Live

Release

Post release activities

Live Sanity check

Release note

Live Regression

KDF Run

Stats analysis / RUM

Live Release

Release

phase

Journey of a feature to live

Pre Release

Activities

Post Live

Release

Thank youe: [email protected]

t: @gav_bar