DEV Community

Paolo for Mia-Platform

Posted on • Updated on • Originally published at mia-platform.eu

How a frictionless Developer Experience improves software development

In many IT departments, you can frequently experience that when an issue is reported, Dev and Ops teams start solving the problem by adopting a fire‑fighting mode. In fact, the Ops team can both give support to the Dev team for some tasks (e.g., activation of new services) and also needs the Dev team for some assignments on the infrastructure, and it often happens that these tasks block each other’s job. Besides being very inefficient, this working methodology also contributes to generating friction between the two teams, resulting in mutual unpleasant situations.

Some companies have attempted to mitigate this situation by adopting DevOps practices, an Agile approach, and scrambling members of former Dev and Ops teams within Feature Teams. While achieving a significant improvement over the previous case, these solutions are beginning to show their limitations, especially in more structured contexts in which Feature Teams are very numerous and well‑segmented. Ops staff on these teams, in fact, often risk having little work to do. This leads to unmotivated and uninterested team members who will eventually be more likely to leave the team.

The solution to this problem is to move away from the infrastructure‑centric view, and instead put the Developer Experience at the center of the development process.

What is Developer Experience?

Developer Experience (also known as DevX) is a transposition of the much more widely known concept of User Experience, referring, though, to those who develop software artifacts. Developers are considered as end users of the software they are creating. Therefore, it becomes important to ensure that the developers have a positive and frictionless experience while creating the software. This is a radical shift in perspective, in which developers are valued and placed at the center of business projects and decisions.

The Developer Experience covers every stage of the Software Development Life Cycle (SDLC). Starting from architecture design, through code writing, testing, deployment, and ending with monitoring in production, all moments of the SDLC are involved. Each of these stages should be improved in order to provide the smoothest experience possible. As we will further explain below, tools, both software and hardware, and the general work environment also affect DevX for better or worse.

Why it is important to value the Developer Experience

Investing in the Developer Experience primarily allows you to develop better software, and to do it faster. Indeed, if it is brought to the center, empowered, and valued, the development team is more pleased and more likely to deliver high‑quality software. A positive Developer Experience contributes to the realization of part of the principles behind the Agile Manifesto, such as:

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Agile processes harness change for the customer's competitive advantage.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • Working software is the primary measure of progress.
  • The best architectures, requirements, and designs emerge from self‑organizing teams.

Also, the Developer Experience is now a significant trend for talent attraction and retention. In a market where developers are in high demand and receive a large number of job offers, they are free to choose the best fit for them, and DevX becomes critical for selection. Companies that can provide the most inviting work environment, the most interesting projects, and the best‑performing tools, have a big competitive advantage compared to the ones that do not consider this issue. In this perspective, if you do not take into consideration the Developer Experience, you might fall behind and lose attractiveness and competitiveness.

In summary, the main benefits provided by a positive Developer Experience are:

  • Removed frictions during daily work;
  • Improved quality of the delivered software;
  • Reduced time to market;
  • Improved confidence in the development team;
  • Created a positive work environment;
  • Avoided waste of time and incidents;
  • Valued and rewarded work;
  • Fostered new ideas.

How to improve Developer Experience

First of all, it is worth stating that since DevX affects all aspects of software development, it is good to take a holistic approach, and create a well-structured Developer Experience Strategy before implementing any solution. An holistic approach should address both the individual Developer Experience and the Team's Developer Experience considered as a single unit.

In this section, we will confine our remarks to just a few areas where action can be taken to improve the Developer Experience, particularly with regard to the environment and working tools. Both of these aspects, in fact, can significantly affect the experience of the development team.

As for the work environment and the company culture in general, investing in the continuous learning of each developer is definitely a great way to enhance team members. Similarly, encouraging the development of personal and open‑source projects, for example, by offering some of the company's resources and infrastructure, on the one hand, enhances the creative and inventive aspect of developers, and on the other hand, can be an opportunity to develop new corporate assets. The adoption of practices such as Agile, Platform Engineering, and Docs as Code methodology, and organizing the company according to the Composable Enterprise paradigm helps improve the overall Developer Experience.

Regarding hardware tools, a high‑performance laptop can significantly reduce the technical time required for some routine operations, improving and speeding up the release of new developments. The ability to customize the workstation, such as adding a second screen, equipping it with a standing desk, or providing headphones to reduce surrounding noise, is also a great way to optimize the work of the development team.

However, it is the equipment of software tools that provides the best results in terms of DevX. In particular, the most effective tool is the Internal Developer Portal (IDP), a single portal that brings together all the tools and technologies available and used within the company. With the Internal Developer Portal, Devs become the end users of the Ops team: the IDP provides Devs what they used to ask the Ops team in a self-service mode. The evolution of the Internal Developer Portal should be a goal and responsibility of both teams, and it becomes an important asset for the company as it provides the following benefits:

  • Fostered communication between teams;
  • Speeded up time to market;
  • Ensured distributed governance;
  • Improved software quality;
  • Provided visibility, traceability, auditability and observability throughout the DevOps cycle.

Conclusions

In summary, to solve the inefficiencies due to the different situations that arise between Dev teams and Ops teams, it is necessary to start putting the Developer Experience at the center of the development process. Treating developers as end users of the software that they develop, and who must therefore enjoy the best, smooth and frictionless experience while they work, is a radical shift in perspective.

Companies need to invest in improving the Developer Experience. Thanks to it, the development team is more pleased and gratified by its work, and, most importantly, the quality of the delivered software is improved. Working environment and tools, both hardware and software, are the key factors that can be improved to enhance the Developer Experience. The most effective tool is the Internal Developer Portal, a single portal that collects all available services and technologies in one place.

Creating an IDP from scratch can be time‑consuming and complex, both in terms of time and resources, especially in the initial phase. Adopting a ready‑made Internal Developer Portal such as the one provided by Mia‑Platfom allows you to reduce costs, accelerate its implementation, and focus on key assets to be exposed within it.

Top comments (0)