7 things that contribute to a good developer experience

Peter Simic

User experience is the first priority of many software development companies.

After all, the user is king, and every product aims to meet their needs. However, producing great software is unattainable for developers who aren’t happy and productive at their job.

That’s why developer experience is a term every leader should know and take seriously.

In this article, we’ll examine specific things that contribute to a good developer experience that leads to great results.

Let’s dive in!

Pleasant onboarding

If you want your developers to have a good time with your company, why not start off on the right foot? Structuring a great onboarding sets the stage for an excellent developer experience.

And make no mistake, onboarding is integral to any employee’s experience and can shape their relationship to work.

According to data by Gallup, 70% of employees who experienced outstanding onboarding are thrilled with their job.

Source: Shake

So, how should you start organizing an onboarding experience that will contribute to your developers’ satisfactory work experience?

There are a lot of factors to consider. For instance, take a look at the visual from Codesubmit below.

Source: Codesubmit

If you feel like you’ve seen it before, you’re probably partly right—it’s a hierarchy of onboarding that uses the principles of Maslow’s hierarchy of needs.

In a nutshell, that means that you should handle developers’ administration needs first.

That includes handling the paperwork, providing them with a space for work, and the access to tools and files needed for work.

Next are assimilation activities which help them integrate with their new environment and coworkers, the company’s mission and vision, etc.

Bug and crash reporting tool for your app

Try Shake SDK for free.

On the top is the acceleration phase, where new developers contribute to projects and become productive members of the team.

A good onboarding phase will efficiently guide new developers through those stages. However, as Ruben Grill says, it’s important to manage expectations.

That way, the onboarding experience will be pleasant.

Source: Shake

One of the critical factors in creating a good onboarding experience is connecting new hires to their new coworkers.

Zapier does that with call pair buddies, a random pairing of two coworkers who then have a 10-15 minute chat focused on getting to know each other better.

Source: Zapier

Besides creating stronger relationships, that’s a good way to integrate your developers into the company culture.

Proving your developers with everything they need to start working, connecting them with the team, and showing them you care is a great way to lay the foundation for a good work experience.

Smart selection of the programming language

A choice of a programming language can have a significant impact on your developers’ experience.

First of all, the sheer amount of programming languages to choose from is huge. Wikipedia lists over 700 of them.

Furthermore, there are 50 programming languages only under the letter A.

Source: Wikipedia

So, the selection of the programming language is a task that requires careful consideration.

Of course, you most likely won’t consider all 700 of them equal candidates, as some are more popular than others for a reason.

However, popularity often fluctuates. Below, you can see the ten most popular programming languages according to the TIOBE index.

Notice the differences between positions in 2022 and the year before—six programming languages changed positions, and that’s only in the top ten of this list.

Therefore, you should smartly select programming languages so you don’t impose on your developers an outdated technology that would waste their time and patience.

Furthermore, the selection should depend on the type of project and product they’re working on.

For instance, you can see below how one Quora user explains why they use C#.

Source: Quora

For them, it makes sense to use C#, as they primarily work on creating Graphical User Interfaces (GUIs).

On the other hand, if your developers work on machine learning and AI projects, C# wouldn’t fit their needs. Instead, they would have a much better developer experience with Python.

Source: pll.harvard

While selecting the programming language, you can also consider the availability of resources.

For instance, if your developers use Ruby, they have The Ruby Toolbox at their disposal—a resource that keeps track of Ruby libraries and helps them choose the best ones.

Source: Ruby-toolbox

In conclusion, selecting a programming language isn’t a task you should breeze through.

Consider your developers’ needs and preferences and decide what contributes the most to their experience.

Deploying the code to production faster

With the amount of competition in the software industry, it’s no wonder that the success is often determined by how fast the developers can deploy code.

That leads to quicker delivery of the product, which can be crucial in the battle for users’ attention.

Of course, speed should be accompanied by quality. According to a study from Accelerate, that can ensure meeting and even surpassing a company’s goals.

Source: Shake

Developers, naturally, want to be productive and help the team meet set goals—they feel motivated and important to the company when they see an immediate impact of their coding.

Nick Tune, Principal Consultant of Empathy Software, had an experience like that when working at 7digital

Source: 7digital

He described how he deployed code from the first day. The process was to pick the most critical item, implement it, and deploy it to production right away.

That experience was motivating and energizing for him.

Source: Shake

In addition to him and his fellow developers having a great experience, the business thrived also.

Faster code deployment meant the faster implementation of new features and happier users.

One of the most effective ways you can implement faster code deployment and ensure a better developer experience is using a process called Infrastructure as Code (IaC).

IaC means you can manage IT infrastructure using configuration files.

In other words, processes involved in, for example, deployment can be automated with a script, making them faster and with fewer errors compared to manual processes.

Tools like Terraform are excellent for setting up the IaC process.

Source: Coralogix

Finding a way to organize your developers’ workflow so they can deploy code faster should be one of the priorities.

Benefits for the business and developers’ satisfaction are too significant to ignore.

Easy code debugging

We don’t know every one of your developers personally, but we bet they would much rather spend their time coding than figuring out why the code doesn’t work as intended.

Software development is complex—even the seemingly simple products are built on a large amount of code. It isn’t surprising that debugging is a vital part of a developer’s job.

However, it’s usually a chore. According to data from Statista, most discovered bugs linger for a few days before they’re fixed.

Source: Statista

Dealing with bugs can take the time that developers could use to do more productive, creative, and interesting things.

But, the reality is often different, as the developer and author Germán Cocca reminds us.

Source: Shake

That’s why anything that can help developers debug easier and faster improves their overall experience.

Luckily, there are some helpful tools for that. For instance, if your developers use VS Code, they have an inbuilt debugger.

All they have to do is install an extension for the programming language they use and run the debugger inside VS Code.

Debuggers are available for other tools, too, like TypeScript and even as extensions for browsers like Chrome or Firefox.

With them, developers can write code and experiment with ease of mind, knowing that software will catch on to anything that they might do wrong.

Our own solution, Shake, can also make debugging a lot easier for developers.

It works like this: when a user notices a bug, he or she simply shakes their phone and Shake automatically creates a detailed bug report and sends it to a developer.

Source: Shake

A developer can then fix it quickly and easily because they have all the information they need about the bug, the context it appeared in, the users’ phone settings, etc.

Tools like Shake can significantly improve a developer experience and allow them to invest more time and effort into creating great products instead of fixing bugs.

Faster code formatting

Similar to debugging we discussed in the previous chapter, code formatting is another thing that can affect developer experience.

A clean code is easier to read, which is especially important if more than one person is working on the project.

If every developer writes in their own style, understanding code while collaborating will be impaired.

However, with tools available today, manually formatting code would be a big time-waster.

With the right tools, your developers’ code can go from this…

Source: Codementor

…to what’s depicted below, in little time and with essentially no effort.

Source: Codementor

The formatting that you can see above can be automated with Prettier.

It’s a code formatter that integrates with most code editors, supports many programming languages, and contributes to a good developer experience by automating a tedious task.

In short, with a code formatter, a developer can write however they like, and the code will be easily readable.

It will break up long code lines, fix spaces and make code formatting a non-issue.

If you want to take it a step further, you can integrate Prettier with ESLint.

Source: Eslint

It’s a tool for detecting problematic patterns in your developers’ code and fixing them.

Therefore, if your developers use a code formatter and a linter together, they can have issue-free and readable code without investing time in doing that themselves.

And that can certainly contribute to a good developer experience. You’d be hard-pressed to find a developer who prefers editing their existing code instead of creating something new.

Top notch hardware

If a developer has to work on old, slow, inadequate equipment that prevents them from being productive and using their preferred tools, how do you think their work experience is?

It’s a rhetorical question because no answer is needed—that kind of work environment would be frustrating for any developer.

The post from Tony Destro on Quora explains how most developers likely feel about this topic.

Source: Quora

So, what do developers need in terms of hardware? That depends on the work they do, but generally, this list from James Clark covers the basics:

  • Monitor setup
  • Hard drive
  • RAM
  • CPU
  • GPU

Regarding the monitor setup, developers should be able to see in detail what the app or product they’re working on looks like.

Therefore, a top-notch monitor is essential, at least one—for most developers, having more screens allows them to multitask and switch between tools more efficiently.

For instance, take a look at the home workstation below.

Source: Twitter

Furthermore, tech giants like Google also know how vital multiple screens are for developers.

In the video below, you can see the workstation of one of the developers (from 1:39 to 2:53).

Source: Jon – Your Friend in Tech on YouTube

Speed is also vital for developers, and they can be fast if they have the equipment that allows it.

In that sense, an SSD drive and lots of RAM are crucial. Developer experience can deteriorate rapidly if the system lags, boots slowly, or even crashes.

CPU is also important, mainly if your developers use image or video editing software—the same stands for GPU for graphic-intensive programs.

All of that doesn’t cost as much as it may sound. Below is a breakdown that Richard Kenneth did on Quora.

Source: Quora

Your company should never skip on hardware. Like employees in any other industry, software developers need good tools to do good work.

And if you provide them with that, developer experience will undoubtedly rise.

A great internal developer community

A strong developer community is fundamental to a good developer experience.

With a community inside the company, developers can share knowledge, improve, and socialize with like-minded colleagues.

That kind of environment can make them more engaged and satisfied at work.

And keeping your developers happy is important because, according to Joel Spolsky—developers themselves are important.

Source: Shake

To build a vibrant internal developer community, you can follow the example of Stripe.

As Stripe grew, it became increasingly challenging for its employees to stay connected and communicate.

That’s why at one company hackathon, People was born. It was a directory that focused on connecting people in the company, building communities, etc.

They used that as a foundation for Home, a platform that can do the mentioned and more—in fact, 99% of Stripe employees said they relied on it.

Source: Stripe

Besides strengthening relationships, Home also provides Stripe developers with an internal knowledge base.

Source: Stripe

That makes sharing knowledge and learning as a team much more straightforward, especially because it allows you to keep all the information in one place.

However, chatting and learning together isn’t the only good way to build a developer community—you can provide them with an opportunity to create together in a challenging environment.

Hackathons are great for that. For instance, HelloFresh organized a hackathon where 11 teams of developers worked for three days on their prototypes.

An experience like that can bring developers together on a task they love—creating something new and exciting in a competitive environment.

A strong developer community can make their work experience at your company unforgettable, so ensure that you provide them with plenty of opportunities to form it.

Conclusion

From the first day on the job, software developers should have an outstanding experience if you expect excellent results from them.

Pleasant onboarding is a start where you can show that you’re serious about developer experience.

But that is just the beginning.

A smart selection of the programming language, fast code deployment, easy debugging and code formatting, top-of-the-line hardware, and a strong internal developer community together contribute to an outstanding developer experience.

And as we said, if you manage to create that, you can count on outstanding results.