In over 50% of organisations, software developers only spent 30-40% of their time on feature development (State of DevOps 2018; 2019). While DevOps and Continuous Delivery solve specific problems to increase the time spent on value-adding activities, your organisational performance is determined by more than a gap between development and operations. Improving the overall developer experience is essential to increase the developer effectiveness. In this article, we will share with you reasons to invest and key approaches to set your developer and thus, your business up for success.
Developer Experience (DX) encompasses all aspects of the developer’s interaction with the organisation, its tools and systems.
We observe the impact of bad developer experiences in different technological landscapes across industries. A root cause for bad developer experiences is not considering the developer as a customer. Without taking the perspective of the developer and conducting customer research, the viability of the provided product or service is unproven. Instead of solving real developer problems, the solutions are at risk of unnecessarily increasing the complexity for development teams. Eventually, the time-to-market for software increases when developers are bound to bad developer experiences, and while those are sometimes very domain and context specific, repeating patterns are:
1. Figure: Case example: Pain points of developers. Gathered in the context of a cloud platform and an automotive platform.
Poor developer experiences lead to a low developer effectiveness and organisational performance. Let’s look at a few examples of why you should invest in a good developer experience:
Accelerating Software Delivery accelerates Time to Market
Constraints and problems in the developer journey are an opportunity to accelerate the software delivery. In one of our automotive projects, we learned that the unavailability of hardware and manual steps in the testing process led to a 2-3 week testing cycle for the developers. This included waiting on time slots with a hardware test bench and also physically moving to another building with all necessary equipment.
Because this task was performed several times a week and was core to the software quality, the leverage of solving this problem was high. By enabling remote updates and automated tests on the test benches, the test cycle time could be reduced from weeks to hours. The developers benefited from a compelling experience that also encouraged more testing. The accelerated software delivery enabled the business to bring software into the hands of the customer way earlier – and with higher quality.
Flexibility enables Experimentation enables Innovation
One reason why organizations move to a cloud infrastructure is the flexibility and ease of being able to scale computing power. But why is that so important? One trigger definitely is the potential of cost savings. Why rent new server capacity for a whole month if you only want to do a load test that can be done in less than a day?
However, there is another – probably even more important – factor that a cloud infrastructure provides and that is flexibility. Teams can not only autoscale by ‘pressing a button’ but also have a vast variety of services at their disposal. This flexibility of using out-of-the-box services and compelling APIs is a huge incentive to start experimentation and potentially innovating without taking big risks or making huge investments that might not pay off.
Attract and retain IT Talent
Are you motivated if you feel unproductive, blocked and waiting for most of the day? Probably not. What motivates most individuals also applies to developers. Motivation creates a flow that fosters creativity for the benefit of your organization.
With several innovative companies around, all competing for top tech talent, organizations cannot afford anymore to not invest in an environment that allows developers to do what they came for: ship awesome features that delight your customers.
A good Developer experience requires more than reducing a gap between Dev and Ops and providing Continuous Delivery tools. If you seriously want to increase your developer effectiveness, and thus, accelerate your business goals, you should try some of the following approaches:
A bad developer experience decreases your developers’ effectiveness. A good developer experience will get your features into production fast, reliable and safe. You should invest in the second. Taking the developers’ perspective will benefit your business.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.