Years ago, who would have imagined telling me that one day I wouldn’t have to debug my code while talking to a yellow rubber duck, or that I wouldn’t need to go to Stack Overflow to find solutions to my bugs? And what about all that time spent sitting next to a novice developer, explaining that writing all code in one single function might not be such a good idea, and that you need to have assertions in a unit test?
It looks like AI can do all of that and more, and sometimes it can do it better than me! I wish we could all have someone at our side to ask for help and guidance, someone to show us our mistakes and help us improve our solutions. That’s exactly the vision of companies like GitHub and Salesforce as they offer us developers their AI copilots.
In this article, we’ll explore what it means to be a Salesforce developer in the age of AI, and how AI, even in its early stages, can enhance our day-to-day tasks.
Recap: Salesforce DevOps and Generative AI Webinar
On May 10, 2023, I had the privilege of discussing with other thought leaders the present and future of Salesforce DevOps and quality in the context of all the new AI capabilities becoming available to us. Here are some key takeaways from the session that will be useful for Salesforce Admins and Developers alike.
AI as Your Technical Consultant
Firstly, Vernon Keenan from SalesforceDevops.net introduced the concepts of generative AI and LLMs which have given rise to tools like ChatGPT and Einstein GPT. Whereas these tools are meant to be used in a conversational style, GitHub Copilot focuses on generating code for the developer.
Vernon went on to show how he had a lengthy conversation with ChatGPT about the ways in which to improve the architecture of the Salesforce org that he uses to manage his business. Not only did ChatGPT provide possible architectures to connect Salesforce to his website, but it also provided all the necessary Apex code to implement it, using various well-known patterns, and was able to explain and document what it did.
Takeaway for admins: ChatGPT can help you understand what a piece of code in your org is trying to do – this comes in handy when you are trying to debug a specific error and don’t have a developer on hand.
Takeaway for developers: Having a discussion with ChatGPT (especially GPT-4) about what you are trying to build (or have already built) can offer alternative perspectives and improvements that you wouldn’t have thought of otherwise.
AI as Your Pair Programmer
After an initial explanation of how easy it is to sign up for GitHub Copilot and GitHub Copilot Labs, and how to install their extensions in VS Code, I went on to explore the various ways in which they can be used.
The main purpose of GitHub Copilot is to suggest or write code for you, and your job as a developer is to explain, using comments, exactly what you want. This may seem easy, but it can prove harder than choosing the perfect name for a variable.
Takeaway for developers: Learn to structure and express your thoughts clearly and in a way that makes sense to the AI. You’ll surely go back and forth until you get what you want – you will get frustrated at times, but you’ll eventually learn what works and what doesn’t.
With experimental add-ons like GitHub Copilot Labs, developers can also apply “brushes” to selected snippets of code. These brushes can make your code more readable, robust, and easier to debug. You can also add comments to it and refactor into smaller modules. However, my experience – as of now – is that it’s a bit hit-and-miss, but it’s interesting to see what it tries to do nevertheless.
On top of that, the upcoming GitHub Copilot X promises to apply GPT-4 to more aspects of a developer’s day-to-day life, like pulling requests, documentation, testing, working with CLIs, and – more importantly – having conversations about code.
Takeaway for developers: Familiarize yourself with AI tools and find out how they can improve your workflow. Don’t discard them because of their infancy or novelty, but be ready to embrace what they can offer to you as a professional. This will set you ahead of those who aren’t increasing their productivity with AI.
AI as Your Testing Partner
Finally, Richard Clark from Provar talked about the value of using intelligent algorithms to solve problems, and how to not end up giving the label “AI” to everything that seems like magic.
Richard also provided some examples of the ways in which AI could potentially be used in the area of software quality. Here are a few:
- Generation of tests and test data
- Mutation testing
- Image recognition and comparison
- Virtual assistance and recommendations
Takeaway for admins, developers, and testers: Leverage AI and smart solutions to increase your company’s maturity around software quality by testing better, testing more, and testing often.
Regardless of all the hype around AI these days and all the ways in which some of its applications fall short of our high standards as developers, let’s not ignore the revolution that is happening before our eyes. Instead, let’s dedicate time to understanding what it can do for us, where it is going, and which aspects of our current jobs (that may not be the most joyful) can be delegated to an AI so that we can focus on the areas where our skills can shine brightest.