How to enable a positive software developer experience


IT leaders strive to enable cross-functional teams that can work effectively across organisational and geographic boundaries, using their preferred tooling.

Amazing things happen when the CIO creates a positive working environment for software developers with the right tooling, constructs and methodologies, combined with a positive approach to people management and team building. 

When John Selvadurai, vice-president of research and development at Iterate.ai, began working as a software developer many years ago, no one cared about the developer experience. “Developers like me were expected to just write the darn code, no matter the conditions. If I had any problems, I was supposed to solve them myself…or just put up with them,” he says.

The situation is now very different. “Today, if a developer doesn’t have adequate tools to do their job as efficiently and effectively as they can, it’s unequivocally unacceptable – as it should be. Enterprises must focus on how the developer feels, and how quick and easy and responsive their tools are,” says Selvadurai.

Developers have told him they tend to steer their career paths toward particular organisations entirely because they are excited to work with the developer experience and tooling environment available at those organisations. For many, he says, “developer experience has become at least as important as salary and benefits”.

A good developer experience can equate to improved developer and user productivity. According to Microsoft, developer experience refers to how easy or difficult it is for a developer to perform essential tasks needed to implement a change. A positive developer experience means these tasks are relatively easy for the team to achieve.

Identifying developer needs

Microsoft identifies four stages of developer experience. First, it says software developers should be able to verify that the changes they make to code are free of syntax error and compilation errors. Then, during the testing stage, developers need to verify that the code they submit passes all automated tests. The next stage involves end-to-end simulation to test how the code runs in a deployed environment. Then there is the debugging stage, where a software developer attaches a debugger, sets breakpoints, and steps through code to see what is going on inside the source code.

Microsoft associates a good developer experience with increased velocity and quality. This means giving developers the opportunity to spend less time on non-value-add activities, such as reducing the time needed to set up a developer or test environment.

Krzysztof Wróbel, director of engineering at Codilime, proposes three pillars of developer experience: usability, findability and credibility.

Kai Waehner, global field CTO at Confluent, argues that IT leaders should examine which application programming interfaces (APIs), software developer kits (SDKs), software libraries and code dependencies are at play as they strive to ensure they can offer the best developer experience.

“With developers now able to take advantage of technologies like microservices architectures and data mesh, there’s more scope to introduce solutions for a particular need at a set point in the developer experience journey,” he says.

For Waehner, a software development environment geared towards offering improved developer experience requires more than simply selecting the best application development tools.

“It’s about identifying and deploying the right combination of specific technologies, APIs and SDKs for a problem. From there, you can combine them into a cohesive frame of reference for your developers,” he says. “This is a unique challenge for every company, as the developer experience environment must reflect the skills, intentions and size of the development team – as well as the project in question.”

Flexible and simple

According to Confluent’s 2023 data streaming report, “system standardisation” is a high priority for 45% of UK IT decision-makers – and the building blocks for that consistency are laid by the decision-makers, engineers and developers who are responsible for developer experience (see How Lego Group ensures software development consistency box).

For Waehner, there is a balance between flexibility and simplicity, providing expert developers with the specialised tools they need without sacrificing the accessibility that less experienced team members may require.

Matt Barker, president of cloud-native solutions at Venafi, and Steve Judd, chief solutions architect at Venafi, say software developers are often hamstrung by the perennial problem of endless small tasks that must be completed before the next step in a project can proceed.

Since computers were first invented, companies have attempted to reduce this burden by creating self-service tools. According to Barker and Judd, with today’s need to develop faster and drive cost efficiencies, there is a focus on how self-service tools can improve the developer experience and accelerate innovation.

“By providing a vending machine of approved products that developers can choose from, organisations can ensure developers are using standardised templates and services,” they say.

Processes and portals

As much as 80% of a developer’s time may be spent on activities such as code reviews and support tickets. “Processes are part of all the activity around writing code,” says Rod Cope, CTO at Perforce. This overhead, in Cope’s experience, is not universally adequately understood.

Take, for example, the Misra guidance on safe, secure coding, which evolved from the UK government’s SafeIT programme. “Many developers are still spending a lot of time filling in spreadsheets or Word documents, yet for years there have been tools that can do the heavy lifting,” says Cope.

In his experience, there are other areas team leaders should look at to see where non-coding effort can be automated or at least be made less cumbersome. “Taking away as much of that overhead as possible lessens the temptation to rush to do the bare minimum. Instead, there is the capacity and energy to focus on creating something robust that users actually want,” he adds.

According to Cope, too much time is still spent looking for things or reinventing a wheel that exists elsewhere in the organisation. Cope urges IT leaders to ensure there is one place developers can go to look for everything, such as setting up developer portals.

Community connections

One of the aspects of developer experience not often taken into account by IT decision-makers is the size and strength of the developer community around a particular developer tool. Iterate.ai’s Selvadurai believes the community aspect of a particular developer tool is an undervalued and essential aspect of the experience it provides. “It’s one of the first checks I make in any vetting process,” he says.

For Selvadurai, the ability for software developers to connect with a community of people working on the same types of issues – and help each other solve problems – is at the core of developer experience. “If a developer is stuck, they can always ask questions in community forums to get help and support in resolving issues,” he says.

So, while there is a host of tools and technologies IT leaders can put in place to improve developer experience, the ability for developers to problem solve collaboratively and be part of a wide software developer community is essential. 



Source link