Developer experience platforms - Erik Dörnenburg

June 30th, 2023

https://www.thoughtworks.com/en-gb/about-us/events/developer-experience-platforms

 

no description for image available

 

(1) What does the business want

no description for image available

 


 

(2) then technology takes over

no description for image availableno description for image availableno description for image availableno description for image available

number of releases per day, at the financial times

no description for image available

predict how good your IT performs

good predictor for business performance

 

Lead Time = time between committing to source control and the feature being live in production

often misunderstood

 

no description for image available

 

Architecture

awkward metaphor

prestige, high standing

awkward: "build & walk away"

most software nowadays is built, used

better metaphor: "town planning"

can evolve, but still have structure

eg. park

eg. residential area cannot have a factory

 

fitness functions

 

eg. cost (how much the bridge costs

eg. load % on the bridge (cannot fo over 100%)

no description for image available

 

eg. launch time

no description for image available

 

 

 

Shift-left security

no description for image available

 

deployment drift fitness function

angular v7, current version v10

no description for image available

23 high vulnerabilities

dependencies drift

!= central body that has to approve libraries, have to go through this release cycle

 

no description for image available

 

software development is a team sport

different roles

!= genius programmer in the basement

!= 10x developer

no description for image available

Amazon's 2 pizza team

 


 

(3) then we need a platform

 

why do we need a platform?

why not just have a team of fullstack devs?

 

-> we can't have these teams able to deliver everything

 

no description for image available

A digital platform is a foundation of

- self-service APIs,

- tools,

- services,

- knowledge and

- support

which are arranged as a compelling internal product.

 

Autonomous delivery teams can make use of the platform

to deliver product features at a higher pace,

with reduced co-ordination.

Article: What I Talk About When I Talk About Platforms - Evan Bottcher

 


 

no description for image available

(1) focus on the developer experience

 

meaning changed

no description for image available

-> if they can't write good code, the platform won't solve that

 

no description for image available

 

(2) define and build measures of success

"number of people who use the platform"

  • voluntary?

  • what does "use" mean?

better:

  • Net Promotor Score NPS

 

(3) enable self-service to unlock scalability

the moment you see jira, you have a problem

 

if you have tickets in a developer experience platform, forget about it

that really destroys your cycle-time

 

(4) focus on value delivered

not

  • "how many nodes in our kubernetes cluster"

  • shave 10seconds off of a pod startup

maybe:

  • security management

  • one-click compliance

  • automatically produce reports

 

eg. company in transit - some services & data on premise, new services in the cloud

pain: writing a new service that needs data from on premise

-> platform provided a safe tunnel to get the data from on premise services

 

(5) Create a platform engineering product team

team that looks after the platform

team that treats the platform as a product

team that looks at the developer team's experience

 

example transition

  1. dev team & ops team

  2. devops teams (both in the same team) + shadow team (ops people part of infra guild with it's own backlog)

  3. devops teams + platform team

platform team, by having been part of the development team, now had empathy for the developers

 

problem: speculating (instead of empathy)

  1. build a platform team

  2. treat it as a product team

  3. start speculating

 

problem: build a platform without input

  • devs don't like it

  • devs don't use it

 

problem: communication

  1. work incrementally

  2. devs use it

  3. platform

    1. forgets to publish roadmap

    2. teams have no input in roadmap

  4. devs build a workaround

  5. platform "why did you do that, we are building this feature next month"

  6. dev: "I didn't know that"

 

 


 

no description for image available

tools are not a silver bullet

but can be a quick headstart, or crystalization point

 


 

Tool: backstage

open source

built by spottify

no description for image available

 

-> don't use backstage if your team is not big enough

(less than 200 engineers or less than 200 microservices)

comes with overhead

 


 

no description for image available

developer experience

relevant things (not talked about anymore)

Agile: process driven -> value driven

 

no description for image available

developer experience is not improved by SAFE or SCRUM

 

no description for image available

 

(1) test automation

no description for image available

https://martinfowler.com/articles/practical-test-pyramid.html

 

if you don't have test automation, start there

forget about backstage

forget about developer experience platforms

forget about Kubernetes

start with test automation

 

study by HP

8x improvement in dev productivity

by spending 25% time automating tests

 

 

(2) continuous integration

no description for image available

https://martinfowler.com/articles/continuousIntegration.html

 

(3) observability

helps teams understand what is happening in production

 

(4) design systems

devops = dev + ops

? = UX/design + dev

 

(5) readme, onboarding, single source

 

(6) expensive IDE, bigger monitor, ...