Product Marketing teams have been in overdrive for the past 12 months, talking loudly about the latest artificial intelligence (AI) advancements that will vastly improve developer experiences. And it’s working. Atlassian recently partnered with GetDX to survey 2,100 developers and their leaders; 100% of the leaders surveyed said they believe AI will improve their company’s developer experience within the next two years.
The CTOs I regularly speak with confirm this statistic. They all plan to invest heavily in AI products to improve DevEx. One CTO mentioned going “all in” on AI, allocating 90% of their developer experience budget to AI tools.
It’s fantastic to see so many CTOs focused on improving DevEx and investing in the latest technology to help their developers, but what if AI doesn’t improve developer experience? In our survey, two out of three developers say they aren’t experiencing significant productivity gains using AI tools.
AI Capabilities for Developers
Scanning the landscape for Developer AI tools reveals four standard AI capabilities for developers:
- Code generation: using AI to write or help write code.
- Documentation generation: using AI to write code or procedural documentation.
- Pull request summaries: AI creates a summary of the changes contained within a Pull Request.
- Unit test generation: AI automatically suggests or creates unit tests for changes in a Pull Request.
The above list of capabilities is quite impressive! The fact that 18 months ago, these capabilities weren’t available is a testament to the rapid innovation we’re seeing in AI. Developer adoption rates have been phenomenal, a clear indicator that these capabilities are helping developers daily.
These capabilities have one thing in common: They primarily relate to the coding part of a developer’s role — the part of the job they like. What gets in the way of a good developer experience?
Coding is the part of a developer’s role they enjoy. Yet, most of the AI capabilities available for developers aim to automate or drive efficiency in this part of their role. While this isn’t necessarily bad, it’s like telling a chef you’ve automated the cooking part of their role, and now all they need to do is the dishes. If we’re interested in improving the experience for developers, we should prioritize addressing the part of their role they don’t enjoy.
A generally accepted statistic for the time developers spend coding is 30%. Most of the AI technology available for developers is squarely focused on that 30% rather than the 70% of developers doing other, less desirable tasks. No one is suggesting developers should be spending 100% of their time coding, but if you ask a developer what gets in the way of a good experience, most items will come from the 70% of the time they’re not coding.
Studying industry surveys reveals some common complaints that are worth exploring:
Wait time is one of the most common complaints from engineers, who often talk about being blocked by other people or teams. This usually involves waiting for someone to review a Pull Request or to clarify information before they can proceed.
Cognitive load is another primary source of developer dissatisfaction. The need to look for information is a crucial source of increased cognitive load. According to the 2023 Stack Overflow Developer Survey, 25% of developers spend over an hour daily looking for information. This is enough to drive even the most stable of us loony. Imagine spending an hour every morning looking for your car keys before you could leave the house.
The top complaint in almost every developer survey is technical debt (tech debt). This stems from the eternal battle between Product Managers, who often prioritize releasing the next feature, and developers, who want to maintain a clean and healthy code base. It’s not a surprise that high levels of tech debt contribute to a poor developer experience.
Applied correctly, AI has the potential to improve DevEx in all of these areas significantly. If improving DevEx is the goal, we should remove the friction developers tell us they are encountering.
Developer Experience Can Be Improved by Using AI
Coding assistants and the other developer-focused AI capabilities I mentioned will likely enhance rather than improve DevEx. To be clear, developers should be given access to these tools; they want to use them, find them helpful, and, most importantly, expect access to them. However, these tools are unlikely to resolve the existing DevEx issues within your organization.
Improving DevEx starts with asking your developers what needs improvement. Once you have this list (which is likely to be extended), you can identify the best way to solve these challenges, which may include using AI.
For example, there’s a misconception that developers actually like removing tech debt, but this isn’t entirely accurate. Developers generally prefer problem-solving and delivering new features, but piles of tech debt slow them down and increase the likelihood of an incident. Atlassian has developed a capability called AutoFix, which scans source code repositories for common problems like stale feature flags. Once identified, developers are asked if they would like AI to fix the tech debt, in this case by removing the feature flags, or if they would like to schedule a time to fix it themselves.
Using AI to remove the developer toil associated with resolving tech debt improves one of the common challenges to a good DevEx. It allows developers to commit more time to tasks like releasing new features. We’ve had great feedback on AutoFix internally, and we’re working on making this available to customers later this year.
Get Started With Developer Experience
The currently available AI capabilities for developers are pretty impressive. Developers expect access to these tools to assist them with their daily tasks, which is a good enough reason to provide access to them. However, as impressive as they are, these capabilities don’t address existing challenges in developer experience.
If your goal is to improve developer experience, your first step should always be to ask your developers how things can be improved. If you ask them, they will tell you.
Once you know where improvements can be made, find the best solution to each problem, which may include using AI. As with any tool implementation, you should circle back with your developers and ask them if the solution actually improved things for them or if you need to iterate on it.
Also Read: How can developers secure LLMs and mitigate the risks associated with it [Interview]