Developers love their jobs because they get to create products that improve people’s lives. And although it’s super important to hold this customer-centric view during software development (or any kind of product development, for that matter), developer experience is another element that should always be at the back of our minds. In fact, good developer experience is often a precursor to good user experience, as we’ll soon explore.
But what exactly makes for great developer experience? And how can you cultivate it within your team, your workplace, your product? These questions (and more) are what we’ll explore in this blog post.
What is developer experience?
Developer experience, or DX for short, has to do with a developer’s feelings and perceptions while using a technical product. It’s similar to user experience (UX), but instead of focusing on meeting the user’s needs, good DX focuses on meeting the developer’s needs. That could involve everything from creating a more positive work environment to considering the experience of developers who are using your API.
Think of the developers in your organization as internal customers. Creating a supportive work environment, putting care into your processes and workflows, and choosing the right tools are just a few things that can help increase developer productivity and foster great developer experience.
What makes good developer experience?
Positive developer experience covers three main categories:
Usability refers to how simple it is for a developer to use your software or service.
Use surveys to ask your programmers about software usability. For more in-depth feedback, ask team members during one-on-one meetings.
Try using questions like these to create positive feedback loops, which is when a company listens to their employees, and improves the internal structure as a result of hearing their feedback:
- From your expertise, what’s one thing we can do to improve the usability of the software?
- If you could fix one aspect of this software, what would it be?
- Is there anything we can do to support you better?
Checking in with your team members shows them that you value their work and want to help them succeed.
When it comes to findability, consider how quickly the developer can find the functionality they’re looking for as they’re using the software or tool. If you aren’t sure about your findability, again take a moment to ask your team members — they’re your best resource.
You can also analyze metrics such as heat maps to learn what platform users click on most within your software. Record times can help you pinpoint any bottlenecks in your software or processes. Overall, good findability is all about making sure you have logical design (complete with dependencies that enable the program to run smoothly) and clear navigation tools.
Finally, great DX builds trust between the internal users and your software or service — also known as having high credibility. Credibility is a long-term pillar of good DX and basically means that your service has a track record of being reliable and stable.
Services with high credibility will also have strong observability. Observability means it’s easy to assess the internal condition of a system based on how it performs and the outputs it produces.
How is developer experience calculated?
Calculating developer experience is challenging. How do you know if a team member is happy doing their job? However, there are some indicators that you can use to stay aware of your team members and know when to come alongside and support them.
To provide good DX, create highly usable software or platforms and organize them in a way that supports the developer journey, reduces context switching, and minimizes decision fatigue via reliable software and platforms. Good developer experience includes the speed of development, safety, innovation, and iteration.
Pay attention when your team members seem to be struggling. Let’s say a team member with an awesome track record suddenly starts missing their deadlines on more than one occasion. Before getting upset, check in to see if something is going on. Ask if there are any ways you can better support them.
Maybe there’s a new system or process that’s taking them some time to get used to. Is there some technical documentation (a wiki or knowledge base) that can help them to adapt? On the other hand, your team member might be experiencing a personal dilemma. Again, ask how you can better support them, even if it means lightening their load for a while. The great thing about working with a group is that when one team member needs a bit of help, there are others who can step in and support them.
What are the benefits of good developer experience?
When you create an environment where good developer experience is a priority, you can increase productivity and employee satisfaction.
Productivity increases when there are systems in place that enable new team members to ramp up more quickly (thereby decreasing onboarding time), workflows that are easy to follow, and automations that save time.
Why API developer experience matters
Developer experience doesn’t just apply to your internal developers. It also applies to external developers. For example, if your company has created an app with API access (like Slack, for example), you should consider the DX of those customers who are using your platform. As you improve their DX, it’ll have a ripple effect on the end users, too.
Great API experience has the following elements:
- Thorough documentation that walks the reader through onboarding, endpoints, authentication, and more
- An intuitive, easy-to-use interface
- An API developer portal
- Code examples for how to use the API
What a good versus a bad developer team experience means
When you prioritize a positive developer experience, you create an environment in which your software engineers and developers can truly thrive. This in turn leads to a better user experience, happier employees, and a better product overall.
Good developer team experience incorporates the following elements:
- Supporting your development team with proper documentation
When it comes to your processes and workflows, your team should have access to up-to-date documentation. Not only will this help in terms of standardization, but it’ll also come in handy whenever you’re onboarding a new developer. Make sure your technical writers work hand-in-hand with your developers to create well-written and thorough knowledge bases and wikis.
- Providing developers with the right tools
Developer tools are essential to great DX, but it can get a bit tricky here. You want your developers to exercise a certain degree of autonomy by letting them select tools that work for them, but you also want to encourage standardization. We recommend that you work closely with your development team, encourage feedback, and strike the right balance together.
- Reminding developers of the big picture
It’s easy to lose sight of the bigger picture, especially during the busyness of the day-to-day. Bring excitement and inspiration to your development teams by reminding them of the amazing solutions they’re creating — and the lives they’ll improve as a result of the work they’re doing.
- Prioritizing mental and emotional health
Consider using a tool like Clockwise to prevent burnout. Clockwise creates Focus Time for developers to help them balance meetings with productive coding time.
- Fostering a friendly and open workplace culture
If you want to get insightful feedback, a workplace culture that values openness and honesty is essential. This includes allowing people to make mistakes. While it’s important to instill the value of quality work, the reality is that people will make mistakes from time to time. If you create a workplace culture that acknowledges this human aspect, employees will be quicker to tell you when they’ve messed up, which will allow you to address problems more swiftly.
- Having SDKs (software development kits) that are helpful and tailored to the company
A look at GitHub can give you an idea of whose SDKs are strong and where there is room for improvement. For example, Stripe has great ratings on GitHub, and one of the reasons for this is that they own their own SDKs, onboarding, and documentation.
Conversely, a bad developer team experience combines several of the following traits:
- Pushing blame on others
When people fear making mistakes, they often try to transfer blame onto other team members (even if this happens subconsciously). This can result in a toxic workplace dynamic where people don’t take responsibility for their own actions. Leadership should demonstrate what it looks like to move forward from a mistake, so that team members aren’t scared to acknowledge when they’ve messed up.
- Disproportionate repercussions for mistakes
If someone repeatedly makes the same mistake, it’s reasonable to enforce consequences. However, when a workplace enforces too-strong repercussions for mistakes, it can make team members scared to do their work or think innovatively.
- Too-short deadlines
Having too-short deadlines can create a rushed atmosphere that stifles innovation and creativity, fosters stress, and makes mistakes more likely.
Creating a healthy team environment can make a huge difference in how software development teams work together and how much they’re able to accomplish. Respect, trust, honesty, and encouragement are the basis for healthy work environments.
Leaders should remember that they have a lot of power in the shaping of team culture. While fostering a healthy community can take lots of work, it’s definitely worth it in the long run — both in terms of how much you can accomplish together and happiness at work.
Creating a positive developer experience can create a domino effect of great outcomes. Increased output, happy team members, and satisfied users are only a few of the many benefits that can come from improving DX.
It’s important to create a company culture where team members feel valued and seen. You can accomplish this by having check-ins, responding to feedback with action, and having an understanding of human mistakes.
Check out how to hire and build a developer experience team.