https://www.thoughtworks.com/en-gb/about-us/events/developer-experience-platforms
(1) What does the business want
(2) then technology takes over number of releases per day, at the financial times 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
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%)
eg. launch time
Shift-left security
deployment drift fitness function angular v7, current version v10 23 high vulnerabilities dependencies drift != central body that has to approve libraries, have to go through this release cycle
software development is a team sport different roles != genius programmer in the basement != 10x developer 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
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
(1) focus on the developer experience
meaning changed -> if they can’t write good code, the platform won’t solve that
(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
- dev team & ops team
- devops teams (both in the same team) + shadow team (ops people part of infra guild with it’s own backlog)
- 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)
- build a platform team
- treat it as a product team
- start speculating
problem: build a platform without input
- devs don’t like it
- devs don’t use it
problem: communication
- work incrementally
- devs use it
- platform
- forgets to publish roadmap
- teams have no input in roadmap
- devs build a workaround
- platform “why did you do that, we are building this feature next month”
- dev: “I didn’t know that”
tools are not a silver bullet but can be a quick headstart, or crystalization point
Tool: backstage open source built by spottify
-> don’t use backstage if your team is not big enough (less than 200 engineers or less than 200 microservices) comes with overhead
developer experience relevant things (not talked about anymore) Agile: process driven -> value driven
developer experience is not improved by SAFE or SCRUM
(1) test automation 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 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, …