4 Ways to Improve Developer Experience With AI
Improve developer experience with AI-powered tools for efficient code delivery, documentation generation, and collaboration.
Join the DZone community and get the full member experience.
Join For FreeAn excellent developer experience correlates to great outcomes.
Traditionally, improving developer experience (also known as DevEx or DX) has been an incremental project and one that takes time and innovation.
The good news? Artificial intelligence heralds the arrival of some much faster, more impactful ways to improve DevEx meaningfully.
In this post, I will talk about four parts of life as a software engineer, which are ripe for refreshment with the help of AI. Then, I'll cover how to improve DX with AI for software developers and how this might look for teams like yours.
1. Code Delivery
Software engineers at most software companies write code every day. But many engineers regularly have to complete relatively trivial tasks that keep them away from the more interesting problems. This isn't usually popular – who wakes up every day to write test suites? Okay – some love it – but you see my point!
So it seems the logical place to start improving the developer experience.
Fortunately, this is also the area I think has the most attention from AI innovators, with tools that work across a range of code editors from VS Code to Jetbrains and across almost all programming languages, including JavaScript, Java, Python, C#, Golang, SQL and many others.
Autocomplete
Let's start with something already in the mainstream of software engineering.
Autocomplete does what it says on the tin. It works the same way it does on your phone, but for code. Autocomplete for engineers is generally codebase-aware, so it understands your current context and coding patterns.
It improves DevEx by making code easier and faster to write.
Tools: GitHub Copilot is an established tool with an autocomplete feature. If you're open to more cutting-edge tools, keep reading.
My View: This may be the least revolutionary implementation of AI for code delivery, but it has been around the longest, is better understood, and carries fewer risks. Great for the risk-averse organization.
Understanding Your Codebase
So, you've inherited a legacy codebase that's as tangled as a ball of yarn.
Understanding and modifying the code is daunting. But AI-driven LLMs can come to your rescue. These models can analyze the code, answer your questions about its functionality, and suggest improvements.
For example, you might ask the LLM, "What does this function do?" It could provide a concise summary or visually represent the code's logic.
Tools: Adrenaline AI specializes in understanding your codebase and allowing you to ask any question to help you understand it.
My view: Tools that do this well are green but improving constantly. Try Adrenaline for a free introduction to this concept with no set-up required.
Writing Tests
Whatever tests you're writing and whether you're doing TDD or BDD, AI is capable of 10x-ing your output.
Let's face it. Most engineers aren't thrilled at the prospect of writing test suites. However, AI can write suites of non-trivial (and trivial) test suites in seconds. What's not to love?
Tools: Codium specializes in test-writing
My view: Specialised tools appear to do a better job of test generation than simply asking ChatGPT because that's what they're trained for. Invest in the right tools. Your devs will thank you.
Intelligent Code Assistance
This is the "next level up." Intelligent code assistance systems aim to have total comprehension of your codebase and context and can write, refactor, or test code.
In practice, that means that AI can suggest substantial snippets of code, detect and fix errors, recommend best practices based on your project's specific context, and more. Pretty powerful.
Depending on your tool, you may be able to ask questions or interact with the codebase through natural language processing (NLP) in the same way that you might talk to ChatGPT.
This is a home run for teams who want to have good developer experience – a type of tool so good that going back to the old ways doesn't feel like an option. This post is about DevEx, but it's straightforward that these leads should lead to far better outcomes across the board.
Tools:
- Tabnine is an established AI code assistant. It benefits from being legally robust and compliance-friendly but runs on the now-outdated GPT-3 at the time of writing.
- GitHub Copilot X isn't out yet, but it will be able to do many things, including explaining code, fixing errors, testing, writing pull request templates, and more.
- Sourcegraph Cody is currently in Beta if you can't wait for Copilot X. They can look at your code graphs and company docs alongside your codebase for richer context.
- Mutable AI is a slimmer version with features like autocomplete, refactoring, and prompt-driven development safely out of Beta.
My view: GitHub Copilot X is the most hyped tool in this category and isn't even out yet. Organizations with a greater appetite for risk may be able to use "greener" AI and significantly speed up development and gain a lasting competitive advantage. Tabnine has been loved by many organizations since 2018, and I would guess that they are working to roll out GPT-4. Watch this space.
2. Writing Documentation and Comments
Documentation is the lifeblood of any software project, providing essential guidance and information for developers, technical managers, and product managers alike.
However, creating and maintaining accurate, up-to-date, and easily digestible documentation can be daunting.
You hate bad documentation, and so do your engineers.
And frankly, most of them aren't enjoying writing it either.
AI-driven documentation and comment generation are ready, and you should never have incomplete, outdated, or confusing docs again.
By harnessing the power of AI, we can automate the process of generating comprehensive and context-aware documentation.
Tools:
- Mintlify analyses the code structure extracts relevant information, and presents it in a user-friendly format.
- Readable AI automates the process of writing code comments.
My view: If it's left to humans (no matter how well-meaning), docs will never be a priority. Give the job to a tool that can do it in seconds, consistently, and that won't hate writing them.
3. Collaboration Tools
You and your engineers are probably sinking hours daily into keeping up with developments in their projects.
Let's think of some examples of places that drain time:
- Catching up with Slack and Teams.
- Searching for where someone shared a link you need.
- Chasing someone to review your pull request.
- Checking for new commits.
- Trying to work out whether you're unblocked yet by checking Jira.
If each person spends two hours every day doing this, and you have ten people on your team, that's 100 hours every week.
As projects grow in size and complexity, the time it takes to catch up and find what you need compounds, leading to miscommunication, duplicated efforts, delays, etc.
This is the kind of frustration that engineers complain to their friends and family about at the end of the day, the kind of annoyance that loosens company loyalty. Unfortunately, that's not something most teams can afford.
AI-powered collaboration tools can help teams overcome these challenges and streamline their workflows.
Collaboration Assistants
Numerous organizations are rushing to add AI to their own platforms.
The idea is this: instead of trawling through messages and threads looking for the salient points, AI will pick them out for you.
My view: Doing this without AI is a massive drain of time. While there are collaboration bots out there (many of which are specialized in one platform, like Slack), none are yet specialized in software engineering. What I mean specifically is that they don't integrate with the likes of GitHub and Jira and aren't able to surface things engineers care about, like pull requests.
4. Code Reviews
By analyzing the submitted code and providing intelligent recommendations, AI can assist developers in identifying potential issues, adhering to coding standards, and understanding complex code snippets.
This reduces the time spent on code reviews and minimizes the risk of human error.
For senior technical managers, this means a more efficient and accurate review process, resulting in better code quality and maintainability.
Tools:
- Codeball AI evaluates pull requests, highlights risks, and can automatically approve low-risk pull requests.
- Planar does something similar.
- What The Diff can create pull request summaries and manage instant code refactoring, to avoid the back-and-forth.
My view: The truth is code reviews can be slow, arduous, and a reliable blocker to progress. Some code review tools claim to be able to 10x your code review process. However, even if they can only 2x it, they're often well worth the investment for DX alone.
Wrapping Up
AI can transform the developer experience by streamlining code delivery, enhancing documentation, optimizing collaboration tools, and more.
By leveraging the power of the underlying neural networks, deep learning, and machine learning algorithms that sit under AI, your team can enjoy a more efficient, engaging, and enjoyable work environment, leading to better outcomes across the board.
You'll get the most out of your great developers and have happier people, better developer productivity, and better development processes.
Your developers, technical managers, and product managers will thank you for making their work lives more satisfying and productive.
Published at DZone with permission of Ruth Dillon-Mansfield. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments