Getty Images
Tips for improving software developer productivity
Developers tend to enjoy solving problems and coding, but only with the right tooling can they produce their best work
Imagine the prospect of the first day in a new job as a software developer. Beyond the meetings with HR, managers and team leaders, there is also likely to be a stack of training material and documentation around company policies to get through. These things precede the really hard stuff, which is around getting to grips with the tools and procedures used to develop and release code into a production environment.
In an ideal scenario, a developer should be productive from day one, committing code for production as soon as possible. This becomes more important as enterprises ramp up in-house software development efforts, which means hiring new developers.
Philip Walsh, a senior principal analyst in the software engineering practice at Gartner, says there is an overall trend towards building more software and buying less.
One of the techniques software teams are using to ensure developers can find everything they require to get coding is to use some kind of developer platform, which serves as a one-stop shop for tools, software libraries, documentation and sample code. It can start out simply as a Wiki page or intranet, but there are a number of platforms that help to pull together everything a developer needs to remain productive.
On GitHub, Microsoft has provided a template for onboarding developers. According to Microsoft, onboarding documentation should contain details of engagement scope, team processes, codebase, coding standards, team agreements, software requirements and setup details.
How EDF helps its team prioritise software development work
Over the past three to four years, EDF has been building out its internal engineering capabilities. “At the moment, it is basically a mixture of internal developers and partners,” says Steve Bowerman, principal software engineer at EDF. The company has organised the 100 or so developers into product teams that work directly within particular business areas, such as the mobile app or energy trading.
Bowerman says this reorganisation of the software development teams means each team “owns” the application they build. They use DevOps. “Each sprint is a conversation about a bunch of tech debt like patching libraries and fixing bugs versus delivering new features,” he says.
To inform these conversations, the company uses Dynatrace, which provides metrics for the teams to use to understand the impact of the bugs, in terms of prioritisation.
While developers like to build new software, Bowerman says it is quite rare that they get to work on an entirely new project. “Dynatrace is one of many enabling tools that we’re using to allow our teams to spend more time doing the fun stuff, solving the big problems, and less time digging around looking at log files.”
From a developer experience perspective, he says: “As engineers, the thing that sort of gets us out of bed in the morning is our desire to solve problems. The things that demotivate us are solving issues that require a lot of digging around.”
EDF uses site reliability engineering, which effectively treats issues with IT operations as if they are software problems. This is supported by Dynatrace. The company uses league tables with various metrics that, according to Bowerman, offer some friendly rivalry between the product teams to see who is doing the best in terms of site reliability engineering.
From what software engineering leaders told Gartner in a recent survey, it can be really valuable to provide an app store-like experience for developers, where they can select the tools they think will be most useful.
One example of this approach can be gleaned from a document Google published as part of its Apigee API (application programming interface) management tool, discussing how IT teams can create a great developer experience. In the document, Google recommends that IT leaders build a developer community, offer a developer portal and APIs that are crawlable by search engines, and provide self-service onboarding for new users. It says the developer portal should include role-based access control, a registry of available APIs, documentation and tutorials, plus sample code and a sandbox environment where developers can begin experimenting.
Lessons from the open source community
Gartner has also looked at the role of having open source programme offices in large enterprises.
“Organisations are starting to see the value of having a dedicated open source programme office in-house and an open source programme director or leader to coordinate their open source strategy,” says Walsh.
He believes enterprise software team leaders can learn a lot from the open source community, in terms of how to collaborate at scale and coordinate activities in an efficient way to achieve the desired end result. “Gartner recommends adopting the principles of open source development internally in your organisation,” he says. Gartner calls this inner sourcing.
It involves establishing clear standards and guidelines for code contribution and documentation requirements, to ensure developers are on the same page. Gartner also advises software engineering leaders who want to create an open source-like culture to implement shared backlogs and asset repositories to drive a collaborative approach to software development.
Developing in the data era
RedMonk analyst Stephen O’Grady points out that while the explosion in database, development and infrastructure tooling in recent years has put more resources into the hands of developers, it has also led to a heavily fragmented and inefficient developer experience.
“Enterprises are focusing on opportunities to thoughtfully retool their workflows to make them faster and more integrated,” he says. “The C-suite is making these investments not just because it benefits developers by delivering a higher-quality and lower-friction experience, but because having more efficient developers that are able to iterate more quickly is the single best mechanism for improving an organisation’s overall velocity.”
This is one of the long-term visions of MongoDB, as Sahir Azam, chief product officer at MongoDB, explains: “Building modern, intelligent applications that take advantage of application-driven analytics requires harnessing insights from application data and incorporating those insights back into applications to adjust business logic in real time.”
AI for developer experience
One of the more exciting areas of developer experience is the role of artificial intelligence (AI) in supporting software developers and helping to reduce their workload.
Computer Weekly previously spoke to Software AG about how large language models (LLMs) can be used to solve the complex problem of field mapping when integrating different IT systems.
Another example of how AI is being used is Robin AI, a tool that was initially developed for internal use at software firm Integral, to assist its engineers in writing performant and robust code. Powered by GPT, Robin AI uses natural language processing (NLP) capabilities to review code changes. Integral has recently made Robin AI open source.
According to Integral, Robin AI performs best in JavaScript repositories and offers human-like feedback. With the code review process automated, engineering teams can streamline their workflows and focus on creating high-quality software.
John Kuhn, co-founder and CTO at Integral, says: “Robin AI has served us well in boosting product velocity and reducing production bugs for Integral’s engineering team. By open sourcing the software, we hope that developers worldwide can automate and optimise their code change reviews, increasing quality and productivity.”
Make a case for improving developer experience
Developer experience is about reducing cognitive overload to make it easier for software engineers to build and operate applications.
The idea of teams of developers spending more time looking for the right information just to get started drove Spotify to build a developer portal, Backstage, powered by a software catalogue. According to Spotify, the goal was to centralise and simplify end-to-end software development with an abstraction layer that sits on top of all of the company’s software infrastructure and developer tooling. The internal Backstage tool has now been donated to the Cloud Native Computing Forum (CNCF) as an open source framework.
Developer experience is undoubtedly going to play an increasingly important role as IT departments are forced to do more with less. Al Gillen, group vice-president of software development and open source at IDC, says: “The high demand for software development, further expanded by the pandemic, has put substantial stress on developers that already were in short supply.”
Given that organisations typically spend as much as two-thirds of their time and money on maintaining existing applications (see EDF example of developer prioritisation), Gillen believes the IT industry will increasingly add AI, automation and discoverability to software development activities. These technologies will not just be limited to new projects, but could also be used to support the time-consuming task of modernising existing applications.
Read more about developer experience
- The Tanzu Application Platform will include support for Red Hat OpenShift, air-gapped installations and other capabilities to improve developer productivity and code security.
- As enterprise IT shifts from full-stack DevOps to platform engineering, IT automation tools reinvented for the Kubernetes era can reduce toil for operators.