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

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.png

(1) What does the business want ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.1.png


(2) then technology takes over ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.2.png ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.3.png ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.4.png ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.5.png number of releases per day, at the financial times ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.6.png 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

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.7.png

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%) ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.9.png

eg. launch time ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.8.png

Shift-left security ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.10.png

deployment drift fitness function angular v7, current version v10 ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.11.png 23 high vulnerabilities dependencies drift != central body that has to approve libraries, have to go through this release cycle

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.12.png

software development is a team sport different roles != genius programmer in the basement != 10x developer ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.13.png 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

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.14.png

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


./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.17.png (1) focus on the developer experience

meaning changed ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.15.png -> if they can’t write good code, the platform won’t solve that

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.16.png

(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”

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.18.png tools are not a silver bullet but can be a quick headstart, or crystalization point


Tool: backstage open source built by spottify ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.19.png

-> don’t use backstage if your team is not big enough (less than 200 engineers or less than 200 microservices) comes with overhead


./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.20.png developer experience relevant things (not talked about anymore) Agile: process driven -> value driven

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.21.png developer experience is not improved by SAFE or SCRUM

./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.22.png

(1) test automation ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.23.png 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 ./resources/developer-experience-platforms-erik-dornenburg.resources/unknown_filename.24.png 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, …