Slide 1

Slide 1 text

Enabling Engineering Productivity at the Financial Times Sarah Wells Technical Director for Engineering Enablement @sarahjwells

Slide 2

Slide 2 text

Enabling Engineering Productivity at the Financial Times Sarah Wells Technical Director for Engineering Enablement @sarahjwells

Slide 3

Slide 3 text

@sarahjwells Changes to production at the FT

Slide 4

Slide 4 text

It’s only an experiment if it can fail “Experiments: the Good, the Bad and the Beautiful” by Linda Rising

Slide 5

Slide 5 text

@sarahjwells • Delivery lead time • Deployment frequency • Change fail rate • Time to restore service

Slide 6

Slide 6 text

@sarahjwells To do well on these metrics, teams need to be able to get on with things

Slide 7

Slide 7 text

@sarahjwells “Full stack” stops somewhere!

Slide 8

Slide 8 text

@sarahjwells Enter Engineering Enablement Our aim is to standardise, simplify and advise, supporting the FT's product development teams so that they can deliver value quickly, securely and scalably.

Slide 9

Slide 9 text

@sarahjwells In Team Topologies terms, we are platform and enabling teams

Slide 10

Slide 10 text

@sarahjwells

Slide 11

Slide 11 text

Pave the road Guardrails not fences

Slide 12

Slide 12 text

A cautionary tale…

Slide 13

Slide 13 text

@sarahjwells FT Platform impact on server provisioning time

Slide 14

Slide 14 text

@sarahjwells You needed sudo access to deploy code for the first time to a newly provisioned server

Slide 15

Slide 15 text

@sarahjwells Autonomous teams can choose something else http://matt.chadburn.co.uk/notes/teams-as-services.html

Slide 16

Slide 16 text

@sarahjwells Teams chose other options

Slide 17

Slide 17 text

@sarahjwells Teams chose other options: Heroku Containers

Slide 18

Slide 18 text

@sarahjwells Internal teams are service providers now

Slide 19

Slide 19 text

@sarahjwells

Slide 20

Slide 20 text

Guardrails not fences

Slide 21

Slide 21 text

@sarahjwells

Slide 22

Slide 22 text

@sarahjwells People shouldn’t need to read the guardrails

Slide 23

Slide 23 text

@sarahjwells You need to do this to spin up AWS resources

Slide 24

Slide 24 text

@sarahjwells

Slide 25

Slide 25 text

@sarahjwells

Slide 26

Slide 26 text

@sarahjwells

Slide 27

Slide 27 text

@sarahjwells Evolving the guardrails

Slide 28

Slide 28 text

@sarahjwells Our Tech Governance Group Influenced by https://philcalcado.com/2018/11/19/a_structured_rfc_process.html

Slide 29

Slide 29 text

Pave the road

Slide 30

Slide 30 text

@sarahjwells The golden path: An opinionated and supported way of doing things https://engineering.atspotify.com/2020/08/17/ how-we-use-golden-paths-to-solve- fragmentation-in-our-software-ecosystem/

Slide 31

Slide 31 text

@sarahjwells “Supported”

Slide 32

Slide 32 text

Principles for building the golden path

Slide 33

Slide 33 text

@sarahjwells Valuable Has obvious value to engineers Should we provide this capability?

Slide 34

Slide 34 text

@sarahjwells Make sure someone is signed up to use the thing you are building

Slide 35

Slide 35 text

@sarahjwells Owned and supported It won’t disappear under people Transparent usage and cost insights It’s clear who is using it and how much their bill would be Can people rely on it?

Slide 36

Slide 36 text

@sarahjwells

Slide 37

Slide 37 text

@sarahjwells Discoverable Engineers can find out it exists Documented Step by step guides, explainers, reference docs all exist Self service You can solve your problem yourself Can people use this without costly co-ordination?

Slide 38

Slide 38 text

@sarahjwells The Tech Hub

Slide 39

Slide 39 text

@sarahjwells

Slide 40

Slide 40 text

@sarahjwells “Lots of manual PR approvals, which delays time to release. E.g. approvals for DNS repo”

Slide 41

Slide 41 text

@sarahjwells Only added linesOnly removed lines Modified but line count the same 220 (47%) 71 (15%) 141 (30%) 117 (25%) approved without any comments

Slide 42

Slide 42 text

@sarahjwells ● Automatically approve simple stuff ● Send DMARC/DKIM/MX changes to Cyber Security team for approval ● Check for common mistakes ● Look for modifications that are benign and auto-approve ● Use biz-ops to find a suitable team member that can peer review

Slide 43

Slide 43 text

@sarahjwells https://medium.com/ft-product-technology/cybernetic-meadows- how-a-bot-helps-engineers-at-the-ft-24636f6268e3

Slide 44

Slide 44 text

@sarahjwells Easy to use Documentation guides new users - an ‘on-ramp’ Consistent developer experience If you’ve used other capabilities, this should be recognisably similar Will people get stuck?

Slide 45

Slide 45 text

@sarahjwells

Slide 46

Slide 46 text

@sarahjwells Independent yet composable You can use it on its own or combine it with other capabilities Automation friendly APIs, SDKs, CLIs Can people use it in ways we didn’t expect?

Slide 47

Slide 47 text

@sarahjwells

Slide 48

Slide 48 text

@sarahjwells Safe to use Sensible defaults, small blast radius Secure and compliant Security issues are fixed for you, capabilities comply with our policies Reliable Suitable levels of availability, scalability and performance Does it guide people to do the right thing?

Slide 49

Slide 49 text

@sarahjwells The Biz Ops graph

Slide 50

Slide 50 text

@sarahjwells Runbooks are extracted to S3

Slide 51

Slide 51 text

@sarahjwells Valuable Owned and supported Transparent usage and cost insights Discoverable Documented Self service Easy to use Consistent developer experience Independent yet composable Automation friendly Safe to use Secure and compliant Reliable

Slide 52

Slide 52 text

@sarahjwells Charity Majors: https://charity.wtf/2018/12/02/software- sprawl-the-golden-path-and-scaling-teams- with-agency/ Galo Navarro: https://srvaroa.github.io/paas/infrastructure/pl atform/kubernetes/cloud/2020/01/02/ talk-how-to-build-a-paas-for-1500- engineers.html https://backstage.io/

Slide 53

Slide 53 text

Thank you @sarahjwells