How to boost developer productivity


The Tackling the software skills crunch study from Freeform Dynamics recently found that a fifth of organisations consider their development tools, processes and methods not fit for purpose. A further 22% anticipate these will become problem areas going forward.

The majority of the 50 senior IT leaders and managers surveyed for CIO WaterCooler employ software developers on a traditional in-house model. Organisations with teams comprising more than 20 software developers were found to be more focused on improving the speed of software delivery and getting new features and functionality to market faster (73%) than those with smaller software development teams (27%).

Freeform Dynamics says the implication of this is that it is easier to get things “out of the door” quickly when teams are smaller.

Rolling out enhancements faster – as in having a high software release cadence – is also more achievable in organisations that have focused on delivering a good developer experience.  

In April, Gartner found that over half of software engineering leaders now see high-quality developer experience as a critical priority in software delivery. The survey of 142 software engineering leaders from large enterprises across industry verticals in North America, EMEA and Asia-Pacific reported that 58% of software engineering leaders rated developer experience as “very” or “extremely” critical to the C-suite at their organisations.

What makes a good developer experience?

Developer experience tends to centre around productivity. According to Bola Rotibi, chief of enterprise research at CCS Insight, it is about focusing on what developers want to do. “They want to be able to code, pull in new features, deliver what the business wants and develop software that is at the right level of quality. They also want to deploy their code quickly,” she says.

One way software development team leaders can improve productivity and help to speed up software development work is by encouraging reuse. This may be as simple as pulling in an open source library to avoid having to reinvent the proverbial wheel.

But increasingly, enterprises will be drawing on external services that are made available through internal or public application programming interfaces (APIs), or a commercial off-the-shelf product that may provide a set of external APIs for developers to use to extend its functionality.

Explaining the benefits of reuse in enterprise software that can be extended, Claus Jepsen, chief technology officer (CTO) at Unit4, says: “We will always need software, but we don’t always need to write it. Software extensibility provides the tools for third parties, such as vendor channel partners, to add to programs in a fast and elegant way. It’s not new, but it is certainly coming of age, as the uber-trend for many years now has been away from customers generating unique custom code and towards a more building-block approach.”

“We will always need software, but we don’t always need to write it. Software extensibility provides the tools for third parties to add to programs in a fast and elegant way”
Claus Jepsen, Unit4

But a good developer experience is about more than just coding. The Gartner survey of software development team leaders found that several of the technologies considered to have the highest value for developer experience focused on streamlining processes.

Gartner’s data shows that for many of the software team leaders surveyed, enhanced developer experience or productivity is the top value factor for adopting several technologies and practices across the software development lifecycle. The technologies cited include internal developer portals, performance engineering, the continuous integration/continuous delivery (CI/CD) toolchain and container management.

Along with improving developer experience, Gartner found reducing cost and delivering superior capabilities to be among the numerous value factors driving software engineering technology adoption.

Gartner discovered that, despite citing “high or unpredictable costs” as a top risk factor, software engineering leaders are currently deploying several platform technologies, including API management platform as a service (PaaS), integration platform as a service (iPaaS) and cloud management platforms – all of which are perceived as high value.

Gartner reported that additional platform technologies currently in the pilot phase include innersource platforms, value stream delivery platforms, value stream management platforms, serverless function as a service (FaaS) and internal developer portals.

Organisations are also buying technologies to manage what Gartner describes as “increasingly complex application architectures”.

Performance engineering and API management PaaS are both rated as being high value among the organisations Gartner spoke to, and are currently in deployment. Platform engineering, design systems and container management are also in deployment.

Gartner found that other technologies that organisations are currently piloting to enhance developer experience include software composition analysis, GitOps, browser-based integrated development environments (IDEs), innersource platforms, artificial intelligence (AI)-augmented software engineering and internal developer portals.

Discussing the study, Philip Walsh, principal of research at Gartner, says: “Software engineering teams’ workflows and technology needs are changing as organisations continue to shift to cloud-native, modular and API-centric application architectures.”

Walsh says a platform offers a place where developers can go to select tools they need to do their job. It is used, he says, to enforce code consistency and quality.

“All the documentation and the resources are organised, curated and there is built-in automation to set up the development, testing and deployment environment,” he says, adding that this should mean a new developer can start committing code right away.

“You want this one-stop shop where someone who’s been onboarded can get to work straightaway, without having to ask where to go to find templates,” he adds.

The next level of developer experience

Artificial intelligence (AI) is one of the new and novel ways now available that promise to improve developer productivity and enhance the developer experience.

AI offers another way to simplify software development tasks, according to Stefan Sigg, chief product officer (CPO) at Software AG: “Whenever a developer is doing something, the question that should be asked is, has somebody else done that before?”

Sigg says developers can do a manual search on a developer resource like stack overflow to check, but points out that such a question is perfect for large language models (LLMs). An LLM is able to build a collection of code in a large neural network. He says the developer’s next question is likely to be to ask for an example of how the code is used.

For instance, Sigg says that with integration middleware, it is notoriously difficult to achieve what is often referred to as “field mapping”. This is where a developer who wants to integrate one system with another needs to figure out how fields in one system relate to those in another. The two IT systems are likely to use different data formats. He says: “You wonder, how do I connect them?”

A large language model can propose a suitable mapping, which the developer is then able to verify. During a recent user group meeting, Software AG demonstrated the idea of how a conversational iPaaS could be used to help developers solve complex integration issues.

Why developer experience matters

In March 2022, VMware commissioned Forrester Consulting to evaluate the connection between developer experience and business value metrics and outcomes. Forrester reported that improving developer experience could impact the quality of software, its velocity and, ultimately, its profitability. An improved developer experience can also lead to higher developer job satisfaction.

Developers want to be able to do the best job they can and deploy high-quality code as quickly as possible. Gartner sees a developer platform as something worth investing in, even though such platforms are often costly. Using LLMs to augment software development is at a very early stage, but its use could simplify complex programming tasks and potentially minimise errors.



Source link