Introduction: Dev Ex, buzzword, or reality?
In recent years, the term Developer Experience (or Dev Ex) and de developer experience job have been seen and heard increasingly in software engineering circles. When new terminology becomes fashionable, but many still don’t know what it means, the idea can all too easily be dismissed as a buzzword. But there is real value in the concept as well. However, the extent to which it is useful still depends on what it is taken to mean.
Inevitably, as a new term that appeals to marketers of various sorts, Developer Experience has a spectrum of meanings. On one end, the expression can be associated with DevRel and HR, that is, a collection of soft skills used to improve developers’ working conditions, get them together and improve productivity and skills through primarily non-technical means. More distinctively though, the Developer Experience job is also considered as effectively a correlate of User Experience – that’s why it’s often abbreviated to DX, as a complement to UX.
Developer Experience, in other words, is a means of addressing how developers use the tools, interfaces, systems, software products and so on that they need to do their work. And more particularly, DX asks how can these be upgraded or progressed to improve developers’ encounters with them. This is not just to make developers’ lives easier, it makes them more productive and ultimately more profitable for their companies.
What does a Dev Experience expert do? Skills and background
In personnel terms, the core of software development is, of course, developers. Back in the day, developers were often mavericks. They would be prized for their skills, but management staff often had little idea of the detailed nature of their work. Individual idiosyncrasies were widespread. These days, software engineering is a much more regularised activity and is perhaps unsurprising therefore that developers’ activities are as subject to engineering methodologies as the development itself. That’s where DX steps in.
The Developer Experience position is also a sort of bridge between development and administration, with a good dose of interpersonal skills to boot. The developer experience job includes streamlining toolsets and interfaces for developers. But to do so, they need in-depth knowledge of the kind of work that developers do, as well as the technology ecosystem in which it takes place. A DX expert will thus need a deep understanding of the following aspects of software engineering, how they are used and what makes them effective:
- SDKs, APIs and client libraries
- Developer tool chains, including IDEs, text editors, compilers, debuggers and shells
- Development frameworks
- Databases, platforms and supporting software
- Code snippets and scaffolding
- Documentation, including technical guides, coding standards and tutorials
- Open source ecosystems
On top of these technical skills, a DX engineer must have the ability to listen, communicate and learn from others’ experiences. And they will need to interface with higher levels of management to procure the right tools and environments to suit their developers. Clearly, it’s a job that won’t suit everyone and probably not the maverick type of programmer that we mentioned above. However, a background in development is likely essential for the role, and experience managing teams would also be highly beneficial.
Why is the Developer Experience job such a big thing?
Having read this far, you may be wondering why this role is necessary. Haven’t developers traditionally managed these things themselves, choosing their own toolsets to suit their preferences and finding the right support infrastructure as required for their project? The answer, of course, is yes, but such individuality can also cause trouble.
Developers are famously picky about their text editors. For example, you’ll find niche debates over the benefits of those old stalwarts, Vim and Emacs vs modern IDEs like VS Code. But when it comes to choosing libraries, SDKs or APIs, things can rapidly get complicated. Coders can easily take for granted certain functionality and this matters when they work in teams or are producing software components for external consumers.
Incompatibilities can lead to build failures or runtime bugs. Sometimes, these are blindingly obvious, sometimes they are much more subtle and difficult to track down. But needless to say, fixing self-inflicted development incompatibilities is not a productive use of engineers’ skills.
The above example scenario can be extended to many other areas of the developer experience job, more or less technical. It is years of awareness of the frustrations caused by inconsistent working ecosystems and practices that have led to the rising prominence of DX. Improving the experience is not just beneficial for developers’ state of mind, it allows for much better productivity and better adherence to deadlines. In fact, it is another step towards the full professionalisation of software development.
Which companies are leveraging on Dev Ex?
Almost any kind of company involved in producing software can benefit from the Developer Experience position. Even the smallest of businesses can learn from skills used for DX to improve their consistency and integration. That said, SMEs with a single developer would likely not find it advantageous to employ a specialist as well. Companies with more substantial teams of developers are the most likely to be making use of dedicated DX specialists, especially where large inter-team collaborative projects are at stake.
Companies whose business model is based on the sale or licensing of APIs or libraries will also benefit significantly from developer experience expertise. The usability of these products is precisely what is at stake for the DX expert and they will therefore act as an essential strategic and qualitative assessor of not just the company’s practices, but its products too.
Given the value of Dev Ex to the productivity of software businesses, you’d expect some major companies to be adopting it. And you’d be right. Take two of the biggest names in tech currently, Twitter and Google. They both have significant DX representation, even if that is not the primary terminology they use. Instead they describe “engineering effectiveness” and “engineering productivity” teams, respectively, but each encompasses significant aspects of Dev Ex.
It’s also instructive to look at how the industry acknowledges the use of the developer experience position. A good example is a recent set of awards for developer experience and productivity. The winners, Bought By Many, Luscii, Forto and Unibuddy, span a wide range of sectors, from FinTech to health services, indicating the importance of effective software development across the board.
Other new trending roles in the IT Industry
As we have seen, the Developer Experience position is a hot topic in the IT industry at the moment. But it is not the only thing to look out for. Here are five other trending roles to consider:
- DevOps Engineer. DevOps spans coding, deployment and people skills. Roles vary, but typically you can expect to be managing rapid deployments of software releases and server configs to meet customer needs. You’ll need a good knowledge of development practices, software lifecycles and management skills.
- Machine Learning Engineer. AI and machine learning have become increasingly prevalent in recent years, as algorithmic streamlining of everyday and business processes becomes the norm. As a machine learning engineer, you’ll need a keen technical intelligence with excellent software engineering and data analysis skills.
- Business Intelligence Analyst. Allied with AI techniques but more closely attuned to business strategy, business intelligence is an emerging trend that mines data for insights into company performance and strategic planning. For this role, you’ll need top data skills and experience in business processes.
- Cybersecurity Analyst. With the growth of online technologies, there is the unfortunate growth of malicious digital activity too. Cybersecurity analysts are part of teams that continuously monitor systems, networks and software infrastructures for security flaws, find fast solutions when needed and also offer pre-emptive protective measures. You’ll need excellent analytical and problem-solving skills for this job, plus qualifications in IT and/or digital security.
- Cloud Engineer. We are moving further into an era where virtually all digital operations are conducted online. Cloud engineers are responsible for the development and maintenance of the network systems that deliver cloud services for business applications and productivity software, as well as many websites and services. Plus, the burgeoning market for the Internet of Things relies on cloud infrastructures. For a career in cloud engineering, you’ll need skills in systems and network administration and likely some coding skills too.
Recommended article: what is developer experience?