Do you know what DPE is?

Do you know what DPE is?
Gerónimo
Gerónimo
Fractional CTO
3 min read

DPE stands for Developer Productivity Engineering and is the name of a new discipline that aims to improve developer productivity through automation, observability and tool enhancement.

The work of a developer when programming has three phases: code -> build -> test, the developer repeats this sequence tens or even hundreds of times a day. And in many cases the build and test phases can take in the order of minutes. For example: if the build of an application takes 5 minutes and the developer does 10 builds per day, that’s 50 minutes that the developer has to wait per day. Similarly, the testing phase can increase the developer’s waiting time. Multiply that by the number of developers in a company and the cost is significant.

This is a well-known problem in many large companies, which for years have had entire teams and divisions dedicated to working on it. I remember when I worked at Amadeus, more than ten years ago, there was a Dev Support team that was in charge of developing and optimising the tools that we developers used for builds and other development tasks. And for some years now, the industry has been talking about the Developer Experience (or DevEx), which puts the focus on how to improve the experience of developing software and with it the company’s bottom line.

However, in smaller or less technologically mature companies, how optimised the development environment and experience is depends largely on the time spent by each individual programmer. Personally, I have seen huge differences in the tools and development environment of two programmers on the same team, resulting in hours of productivity difference per week. This would be the equivalent of giving a much slower PC to some programmers, for example.

DPE proposes a series of techniques and practices that can be applied to improve the productivity of the whole team.

  • Build Caches (local and remote): Leverage past builds to accelerate new builds.

  • Distributed Test Execution: Allows the execution of tests in a parallel and distributed way in a dedicated infrastructure, reducing time significantly.

  • Predictive Test Selection: Instead of running all tests, run only the relevant tests, based on the modified code.

  • Monitoring: It allows to extract productivity metrics, to detect problems, to apply global optimisations and to measure improvements.

These techniques are not only applied in the local environment, but are also applied to improving CI/CD and testing infrastructure. Assuming gains and time reductions throughout the entire software development cycle.

I think that giving a name to this discipline is the first step to give it visibility, to start talking about it and to democratise it. Just as Devops has become a cornerstone of every software company, DPE can be the next step to a more productive development environment, which reduces time to market, increases software quality, increases developer happiness (and retention) and ultimately makes for happier customers.

Do you already apply it in your company? If you are interested to know more and see how you can benefit from it, I can help you. You can contact me here.

Blog cto devex dpe productivity programming