Good Developer Experience

2 Contributors
Last updated 25 Nov 07:39

TL;DR

Do not forget to make your developers happy, and keep them happy!

What Is a Good Developer Experience

The Developer Experience (DX) describes the experience developers have while using or working on your product. It is a package of positive and also negative feelings. In many companies, dealing with DX is often secondary to trying to make a User Experience (UX) as good as possible. This approach is unfortunate - developers are users too! They use your product, frameworks, tools, etc. and they have some experience of using it. It is up to you to decide if this experience is going to be a good one or a bad one. But remember, their satisfaction and happiness are crucial for the success of your project. Happy developers create exceptional software in the long term. A positive developer experience, ensures that your developers are happy, satisfied, and less likely to leave your team.

We define a great DX by these four factors:

  1. Fitting architecture
    Find a compromise between simple and more complex architecture. Simple means more pain later, complex brings more pain now. Consider the size of your project and your team. Good architecture is difficult to break, has short feedback loops and it has a great introspection.
  2. Great tools
    Automate where possible. Repetitive tasks are exhausting. Automation lets your team understand the configurations.
  3. Processes to back that all up
    Processes work as automated checklists, and give you have consistent steps that need to be done each time. Defined processes help you with team discipline. Use processes for QA, deployment, feedback, and for onboarding if your company is big enough.
  4. Nontoxic team culture
    Define the purpose of your company: making money should not be the only goal. Culture itself is the most important brainware (a software that runs in the brain) you can install within your company and the team - every decision the developers take will be filtered through the installed brainware. If they do not agree with the brainware, they ignore it.

Why You Might Want the Good Developer Experience

The teams with good DX are highly productive, and display these traits:

  • Sense of impact
    They understand that they are not just making money. They know that their work matters, they are improving someone else’s life.
  • Great sense of ownership and responsibility
    They are responsible for the success. Every team member should feel a responsibility for the company’s success.
  • A common goal With the team, their division, and the company as a whole.
  • Friendliness and honesty
    We call it “hey bro” culture. We emphasize sincerity with great respect.
  • Allows for failure
    Developers should be brave and take risks. But risks should always be calculated, and developers have to be aware of how much of a boom every action can cause.

Traits of culture with bad DX:

  • Finger-pointing
    Team members may blame each other for poor work. This is a very toxic thing but it happens a lot.
  • Big penalty for a failure
    For example, when your boss says that if you do not meet the deadline, you can be fired
  • Constant crunch time, constant overloading of the teams
  • Hostility and uncertainty
    Unhealthy competitiveness between teams (for example, this guy was promoted because he did a better job than me)
  • Diluted responsibility
    In big companies, it can feel like nobody is responsible for anything. It takes balls to say: “sorry guys, I screwed up”. It is crucial to be able to take responsibility.

Problems the Good Developer Experience Solves

How to Implement the Good Developer Experience

There is a famous "Scope Triangle" created in the mid 1980s by Dr. Martin Barnes. It shows the relationship between the three primary forces in a project:

Scope Triangle

Source: Scope Triangle

This triangle means that if you want to increase the time, you have to increase money or quality.
We disagree - that is not how it works in reality. You have to insert an emotional cost to the triangle:

Emotional Cost

If your developer has to stay late to finish a task, it is not only the time they have to invest. Another part of this investment is an emotional cost. Having a great DX helps you having this emotional cost under control. Keep the emotional cost low to make your developers happy.

Common Pitfalls of the Good Developer Experience

  • Giving too much information to developers too soon.
  • Giving too little information to developers when they need more.
  • Overusing processes can result in a mentality of “one size fits all”
  • Over-engineering tendencies
  • Thinking that agile = an excuse to throw more work at the developers

Resources for the Good Developer Experience