In the ever-evolving landscape of software development, one term has grown in prominence — Developer Experience (DX).
At its core, DX encompasses the ease, efficiency, and overall experience a developer encounters while building, deploying, and maintaining software. Akin to User Experience (UX) for software users, DX is all about streamlining the developer’s journey, ensuring they can bring their visions to life without getting bogged down by tedious, time-consuming processes.
In recent years, the domain of software development has seen exponential complexities. As our digital landscape expands, developers grapple with an increasing number of platforms, frameworks, and build systems, each layering atop the other. This intricate mesh often presents a multifaceted challenge, requiring an adept understanding and constant upskilling to stay relevant and effective.
Enter Generative Artificial Intelligence (AI). This technology, which crafts content based on provided data and parameters, is exploding as a means of not only producing directly-consumable content, such as news articles and images, but also helping developers write, troubleshoot, and manage their code.
A recent GitHub survey reveals that “Almost all developers (92%) are using AI coding at work—and they say these tools not only improve day-to-day tasks but enable upskilling opportunities, too.”
Here are some of the top AI tools every developer should be using to enhance the Developer Experience in the modern software development landscape.
Programming is not a single skill, but requires logical problem solving, memorization and understanding of syntax, semantics, and frameworks, and even communication skills to write code that can be read easily by other members of your team, future maintainers, and even yourself possibly years down the line. With all of these facets to juggle all at once, it can be easy to get stuck.
GitHub Copilot is a generative AI tool that helps developers write code by using its vast training set of public Github repositories, and the developers current project, to give context-aware text completion suggestions.
This can help developers by helping them resume their train-of-thought after interruptions, filling out common yet tedious boilerplate implementations, and indicating interfaces that a developer might not be aware of.
GitHub recently announced plans to branch Copilot out from a code completion tool to an entire suite of tools, including Chat, Pull Request, Documentation, and Command Line tools.
General natural language generation tools like ChatGPT can be great resources of information for programming tasks, but many of them rely on only the information they were trained on. This means that these tools may be making use of years-old information.
That may be perfectly fine for many purposes such as summaries of text and learning about events before the model’s training date. But for questions about software, this may lead to the tool giving recommendations for using deprecated libraries, giving inaccurate instructions due to interface changes, or being entirely oblivious to newer frameworks.
To combat this, two ex-tech-giant engineers created Phind, an AI-powered search engine and pair programmer designed specifically for developers. To give up-to-date responses about any given topic or technical issue, Phind browses the web on each query, and even answers with wikipedia-style references, so that developers can check the accuracy of the source for any claim, or to learn more about a specific topic.
In August, Phind announced a new VS Code Extension, allowing developers to start a search that includes their code in the context of the session.
What The Diff
Software engineering isn’t all about writing code and troubleshooting bugs, but also maintaining it through version control, code review, and documentation.
For many software projects, when a developer wants to edit the source code of a project, they don’t do so directly. Instead, they create a branch (copy) of the project, make edits on that branch, commit these changes, and then create a Pull Request (PR). This PR acts as an intermediate stage where project maintainers can view what specific changes (diffs) were made to the project, test and discuss them, and eventually approve or reject them before folding those changes back into the project.
A common problem in this process is that these diffs are often difficult to understand at-a-glance, as the changes are presented with minimal context surrounding them. This leads to the maintainers merely skimming these changes for logical and syntactical errors, without considering how these changes impact the project on a feature-level.
What The Diff is an AI tool that acts as an assistant, overseeing the PR process by analyzing the changes made to the project and generating documentation in natural language about what changes were made at a high-level. WTD can also generate changelogs for the project’s documentation, and weekly progress reports for management and stakeholders.
As of April, What The Diff supports both GitHub and Gitlab support.
It’s important that developers stay on top of the latest frameworks and development tools to maintain a competitive edge and prevent burnout. As software engineers navigate the intricate maze of modern development, Generative AI tools promise to alleviate some of the pressure, offering smart solutions to enhance DX by streamlining the writing, troubleshooting, and management of code.