Improve developer experience
How to work on software development productivity 2023-06-06 #development
The bad news about software development makes it an unhappy experience for many people:
Software development takes forever and costs all of your money
This especially hurts in-house business software development, where you can only spread development team costs across a small number of internal users. Meanwhile, for software product companies, developer salaries account for a significant portion of total company costs. Therefore, even small sustainable developer productivity improvements can have a huge long-term financial impact.
Developer productivity
It gets worse: on top of the eye-watering cost of software development, we struggle to meaningfully measure developer productivity. At best, we might measure proxies for performance instead of productivity, such as the DORA metrics.
The newer SPACE framework offers a more sophisticated approach to software development team productivity. SPACE addresses several persistent myths, and shifts focus to include the lived human experience of software development.
UX - user experience
In the late 1990s, web-based user interfaces lacked the maturity of contemporary desktop software applications. When Jakob Nielsen’s 1999 book Designing Web Usability introduced this web developer to usability issues, business software development projects were systematically neglecting to test or design for usability.
Since then, working on software usability has become uncontroversial. User experience design (UX), now forms a standard part of a cross-functional product development team’s work. Inevitably, the regular practice of improving usability to make software’s users successful, later led some teams to consider what makes developers successful.
DX - because developers are people too
Developer experience (DX) applies user experience thinking to developers’ work. As The SPACE of Developer Productivity notes, this impacts both developers’ happiness and productivity:
For example, research has shown that high productivity is highly correlated with feeling satisfied and happy with work. Finding ways to improve productivity is also about finding ways to introduce more joy, and decrease frustration, in a developer’s day.
Taking developer happiness as a (partial) proxy for productivity has led many teams to improve their productivity by improving their developer experience. However, not every team achieves this by themselves.
Developer experience teams
As software development organisations scale, they typically struggle to improve the developer experience for their increasing number of developers. They can resolve this by forming an enabling team that improves other development teams’ developer experience - a developer experience team. But many still struggle.
Abundant improvement opportunities overwhelm new developer experience teams that lack the experience to prioritise effectively, and they struggle to focus. This lack of alignment, and the lead time to adopt new techniques, threatens to delay visible improvement and lead to disillusionment. Meanwhile, the high cost of reassigning senior developers not directly working on product development will encourage management to disband the team.
Fractional developer experience teams
Some companies will take the long view, and be lucky enough to avoid beginner mistakes. The rest can benefit from using external experts to get started, and head in the right direction with a plan that sets them up for success. Having experienced all of the above more than once, I’m happy that some of the experts I’ve worked with offer exactly this.
Recommendation: if your software development organisation lacks a successful developer experience team, talk to the unblocked.engineering Fractional DevEx Team.