DX Platform — Developer Experience Platform

Ederson Badeca
Opensanca
Published in
6 min readJan 6, 2023
A ilustration of a person in front a computer doing code

Now days the software development ecosystem requires a bunch of tasks and process to keep the company profitable.

Sometimes the tech teams are making the same usual tasks for every new application, tasks like:
* Onboarding
* Application skeletons
* Tests
* Pipelines
* Documentations
* An extensive list of tools and services to keep the product health
* Collect audience feedbacks to improve the engagement
* Api mocking
* Manager the workflow
* Manager issues
* Maintain the infrastructure
* Billings governance
* Multi environments (dev, staging, production)
* And repeat every step on every new application
* Use hours to make an idea become money, to turn into something the company can use.

In the daily basis we don’t usually thing about the money we spend on those core tasks of software development.

For a useful product building, the developer journey matters, for example, do you ever think about how much money cost to your budget with new developers onboarding?

There are cases that onboarding takes one or two weeks, and sometimes it can take one month.

After the onboarding, the developers use expand hours looking for documentation, exploring APIs, to understand how to get the job done.

Sometimes we have documentation tools such as confluence, project readme, ADRs, diagrams, api contracts, swagger, there are cases there is no documentation at all, in this case, developers will try to talk with the old team members to understand how to work.

After all this we still have boring tasks to do.

setup the projects can be painful:

Setup environment variables

Setup the frontend application

Setup the graphQL middleware

Setup the backend application

Setup database credentials

Import faked data

Run the projects

This is examples that I saw in my journey as a technologist over these years.

When we need to create a new project to implement a new business rule, we usually need to setup version control repository for the project, use some cli tooling to create the skeleton of the new application, add a readme, write tests, implement abstractions, apply patterns (sometimes we even don’t have time for patterns and tests as we liked.) and the tasks will be repeated every time.

What is the amount of money the company uses to keep this process?

There is where the Developer experience platform starts.

The DX platform is a concept based on see the developer teams as audience of the product to increase the productivity, reduce financials wastes, create standards, create a governance scheme for the products, support centralization and the most important thing: Transform ideas into money faster!

Starting your journey

To understand the developer journey is necessary to know the team's daily basis, and the best way to do it is with UX research, make interviews with the target audience can provide a lot of useful information of what is the tasks and gaps the teams have in common, after the research, we need to design an experience.

Create an experience for developers

As the business is growing, more developers are needed to transform the ideas into money, we usually don’t see developers as audience, but the fact is that developers are audience too, things like the programming language api.
the programming language must have an enjoyable experience to use, otherwise, developers will take more time to finish a task, after that, we have IDEs, text editors, tests libraries, command-line programs.
UX for restful APIs, graphQL, is also important, as the developer teams must connect their application to the rest of the ecosystem.

The design of the experience can be tested, we can create wire frames, add metrics tools, such as hot jar, google analytics to collect the session data, adjust the design to be more accurate before implementation.

Discoverability

Imagine a developer person who just start in the teams and need to execute a task, so the developer needs to ask to someone else what are the framework best practices, branching model, deployment model, the team definition of done, standards for http apis

The discoverability improves and increase the development productivity once the developer team have a place to find all the information need to finish a task.

The DX platform can have references for guidance templates, application skeletons, solutions hubs.
It gives the developers a centralized support and a single sourcing guidance.

Usability

Usability makes the developers life easier, with a good usability we can provide a straightforward way to use tools and capabilities of the platform.

Imagine a scenario when a developer is working on a machine learning model and need to deploy it in a Kubernetes structure but can’t find any guides or examples of how to do it in the company environment, so the person did what any developer would do and got one from the internet.
After setup the correct information, the deploy does not worked because of typo in the internet solution.

The tasks that would take a day or two becomes two long weeks.

when it comes to usability it really comes down to being able to fulfill a goal or goals with effectiveness, efficiency, and satisfaction.

we can evaluate the usability, running usability test:

Open ended tasks and closed ended tasks.
These tasks are flexible and designed with minimal explanation.

Open ended tasks example:

Could you scale your deployment to three replicas?
Closed ended tasks are more specific and goal oriented and this kind of tasks is based on the idea that there is only one write answer.
With these tests we can collect two important metrics for the product:
Success Rate
Time to complete
We can have inputs for improvements:
Common paths — the step taken to complete the task it can be automated
Error prevention — as the tasks is going, we can check the errors that appears and create a guard in the platform for those.

Capability

The capability is based on personas represented, the dx platform should consider the team's needs:
Web frontend teams
Mobile teams
Backend teams
Data teams
Machine learning teams
And more

Ok but we can’t represent every single stack of the company, it will be expansive and will take time and consequently money lose.
So how can we represent all the audience of the platform?

We can understand the needs by creating two things:
Journey mapping
Surveys

Journey mapping is a process that is frequently used for external customers. We can use this process to map how the developer journey is defined to have a vision that identifies the path developers and experiences.
The goal os the map is to move the developer from left to right as quickly as possible but as you go you can identify gaps within your offerings to measure the capabilities.
We can collect metrics to improve the capabilities such as Customer satisfaction (eNPS)

The eNPS can give inputs for some improvements:
Persona mapped capabilities
Real time tool feedback

Stability
The Dx platform need to be reliable product so it can be used on developer daily basis.
Every time a feature fail, the audience confidence in the product decreases, and developer will start to not use the platform.
So how can we keep the stability of the platform?
To understand what is bringing down we can:
Incident Management Data
Automatic Postmortems
Surveys
Focus groups

Focus groups are wonderful way to get qualitative responses that can be used to assess developers' confidence in the workflow.
Surveys can be a great starting point to probe deeper into specifications on what’s events lower the developer confidence in the platform

Incidents management Data can prevent the problems in the future, if an issue occurs what are the guidelines to solve?
we know that sometime these issues are not prioritized and fixed

The automatic postmortems can track all the event that caused an issue and can be used as input to open a bugfix or create an alternative workflow.
There are metrics that we can collect from those steps:
Tool and capability uptime
SLOs
Mean time between out stages

We can use This metrics Oto improve the postmortems AI prioritization and the centralized support.

The main goal of the DX platform is to make your idea profitable faster with minimum effort by standardize processes, workflows, tools, methods to create a global governance, is also designed to be used as the main tool for your tech teams.

Hope you liked! see you on the next post
e Zaz!

--

--

Ederson Badeca
Opensanca

Dad, musician, Jiu-Jiteiro, passionate for Quantum mechanics and Technologist at @ ThoughWorks