Hot on the heels of looking at how our specialists are using AI for PPC and paid media, we return with a renewed focus upon the world of AI in development.
Advancements in machine learning have developed in leaps and bounds over recent years. In our AI in digital marketing article, we mentioned how a Forbes Insight report found that 61% of surveyed participants were already making use of AI in their web development processes.
It’s massively shaping how development work is being carried out right now, but it’s also shaping how the industry is going to develop in the future.
As always, there are a lot of good things to delve into, and also some words of caution that we’d like to share. Join us as we muse over how AI and machine learning are reforming the development industry and helping developers bring you a better service.
TL;DR: Developer tools that use AI and machine learning in platforms like Github and BitBucket can assist with code reviews, error monitoring and more. Developers are saved from countless hours of manual work and unnecessary distractions and are instead allowed to focus on writing great code. This means that developers can work more efficiently and more cost-effectively for both their employers and their clients.
Code Reviews
First up, let’s just be clear about what AI in web development doesn’t do;
It doesn’t write 100% clear and accurate code from scratch.
In fact, it often doesn’t even get close.
You cannot ask an AI tool to code you a website from the ground up. It’s simply not going to happen. However, what you can ask it to do is to give your developers more time to write great code by carrying out code reviews.
Version Control offers a greater ability to track and manage changes to source code than ever before, but it’s not without its pitfalls.
Put yourself in the shoes of a developer…
- You spend a lot of time writing your code to make sure it’s as clean and bug-free as possible.
- Having satisfied yourself, you submit your pull request (or merge request, as different tools will use different terminology), tagging one or two of your team members to let them know your code is ready to be reviewed.
- Your teammates review your code, find it just as impressively free of problematic issues as you did (well done!), and they approve it.
Sounds a bit like a dream scenario, right?
WRONG!
What’s not immediately obvious is that your very helpful teammate will probably lose almost 30 minutes of their working day to the distraction of checking that code. Many studies have shown that being interrupted right in the middle of something can cause this level of unproductivity, and unproductivity naturally has a cost.
Now consider this same scenario if machine learning, powered by AI, gets involved:
- It reads the pull request
- It generates a summary
- It spots potential bugs
- It even offers suggestions
With the aid of machine learning tools, the whole process of reviewing code can be automated, almost completely. A platform like Bitbucket offers a code review service. We’ve recently been using this ourselves; automated code reviews mean that our developers can keep on developing and spend less time scanning for code discrepancies. The developer that creates the pull request gets their code reviewed right away without waiting for a peer to look at it, and errors are caught immediately so that they can be fixed. This means that the developer who eventually gets around to reviewing the pull request can focus their expertise on advanced logic and architecture. A much preferable use of time than on more obvious errors that may slip past the human eye, but would never get past the systematic checks of artificial intelligence. Automated reviews therefore save time for both the creator of the pull request and the reviewer.
If they’re effectively integrated into CI/CD pipelines, GPT-based code review tools and static analysis are absolutely a match made in heaven. For those of you who depend on development teams to deliver vital work, you’ll find that your projects are delivered more quickly and cost-effectively without sacrificing quality.
Error Monitoring
But what happens if errors make it to the live environment? After all, issues can sometimes only become apparent after deployment. That’s where error monitoring comes in, and also where AI continues to lend a helping hand.
An error monitoring system (sometimes called “error tracing” and “error tracking”) tracks all the bugs in your applications and software: both from the front end and the back end. Such tools function because of machine learning.
Sentry AI is a great example of an error-monitoring platform. It uses machine learning “under the hood” to hunt down bugs in code. The results are:
- Developers are freed from laborious manual checking and are pointed directly to where any problems are occurring.
- Customer retention is enhanced. When customers encounter errors on a site, they tend to bounce to a competitor site, rather than letting the owner of the original site know that something needs to be fixed. Error monitoring therefore gives a better experience, boosting retention as a consequence.
- Revenue loss is minimised. Both the errors themselves and the time it takes to fix them can be costly, so error monitoring shores up your bottom line.
Once again, AI saves time, avoids unprofitable distractions, and means that the errors on all of our websites are hunted down and fixed as soon as possible. In our book, it’s an invaluable copilot that’s worth having in your corner.
Copilot
On the subject of “an invaluable copilot”, Github have created their own official one!
Github Copilot can essentially generate code for you based on the prompt that you put in (more about generative AI and coding later…). You can ask it to calculate the code you want, and then watch while it produces it in just a few seconds.
It will answer questions about code as well, making it especially helpful for junior developers who are learning their trade, but don’t want to interrupt a senior by asking too many questions.
You can also use it to generate comments for you. In fact, it will use predictive AI to generate prompts for you based upon the initial words that you type (rather like the predictive text function on smartphones). Another benefit of Github Copilot is its ability to block insecure code patterns in real-time. Even the most skilled developers will occasionally make mistakes, so this is a wonderful way to protect against inadvertent system vulnerabilities.
In a recent project, we’ve found that Github Copilot has provided significant time savings when we’re writing tests. Not only has it generated test cases quickly, but it’s also suggested test cases that may not have otherwise been considered. The time saving is therefore twofold. First, there’s less time spent on the writing of the code, but then the resulting written tests are also better at catching bugs and regression. That means less time hunting bugs. Of course, our expertise is still needed to evaluate the suitability of Copilot’s suggestions, but the resulting code is that much more robust.
Github Copilot essentially helps you to focus more on business requirements and less on the nitty-gritty details of code. It fills in the details for you, lifting a substantial cognitive load from developers and allowing them to be more productive. Because they’re allowed to concentrate on how best to meet the needs of their customers, the finished project will be far more likely to not only follow the brief, but improve upon it.
Generative AI & Integrations
Coming back to generative AI and its uses within development, there’s a sense that even the widely accessible chatbots like Chat GPT, Google Bard and Claude have a lot to offer.
Our usual warnings that they shouldn’t be followed blindly remain intact, but we’ve found them to be very useful when taking the role of an assistant.
They are great research tools and – in a pinch – they can even generate code configurations and audit code to find issues.
To give you one personal anecdote, we recently used generative AI to help expand some schema markup. We already had the existing JSON-LD code that we’d written some time ago but wanted to update it to include extra details. If you’ve ever looked at the library of markup on schema.org, you’ll know that it’s vast. It can take a lot of trial and error to establish the best way to incorporate a new detail into your markup. With the help of Chat GPT, a research process that might have taken a couple of hours was reduced to around 30 minutes (a time/cost saving of 75%), and we were able to spend our time instead working to refine that template.
We think that this is the key to AI in development.
It speeds up the process of making great ideas a reality.
Prototypes can be created faster with AI. Designs can be analysed for best practices or accessibility requirements. User behaviour can be evaluated in real-time. AI is a genuine game changer.
Generative AI is also being fully integrated into many development-friendly platforms, including project management solutions. As you’ll know, good project management is vital, but does tend to come with a lot of admin. However, that’s where AI can help; it’s great at admin! For example, we use JIRA as our project management system. It ties everything together at Soap, giving us complete visibility of our (many!) ongoing projects. But did you know that there’s a JIRA Autocomplete integration that will use AI to generate tasks and issue descriptions for you? You could obviously do this via an external chatbot, but an embed function like this means that you don’t even need to leave JIRA. That sounds like an efficient way of working to us, especially if you’re someone that’s relying on a development team. Developers who are spending more time coding and less time on administration make for happier and more productive developers!
However, it’s only an efficient way of working if there’s always a human hand on the lever that steers your AI train. For instance, AI chatbots can allow us to be better at customer communication than ever before, and handily they come in both text and voice-based flavours. So you should just use them wherever possible, right? Well, parcel delivery giant DPD recently experienced some very bad press because of a new AI chatbot that was not only unhelpful but also deployed some creative and “colourful” language! Unfortunately, the solution clearly hadn’t been rigorously tested by a team of experts. It was an embarrassing episode for them, so don’t let a similarly untested level of trust in AI prove embarrassing for you as well.
Remember, it’s much easier to lose credibility than it is to gain it.
Supplementing Your Web Development with AI
We’ve only had time today to scratch the surface of how we’re supplementing web development with AI. For example, we’ve recently used a great little plugin called AccessiBe to make a new build site more accessible to people with disabilities. It leverages advanced AI to add a small widget to the site that can be used to select a profile for a specific disability (e.g. visually impaired, ADHD, seizure-prone, etc). The resulting site controls can alter text sizing, contrast and more. However, we’ll be here all day if we go deeper into the possibilities of using AI for accessible design!
But what about the future of development and the structure of development teams?
Does the inclusion of AI not mean that you simply need fewer developers?!
There’s no denying that, in some cases, this will happen, but we think that this is actually missing the major benefit of an AI helping hand.
As far as we’re concerned, having an AI copilot allows our expert developers to work faster, smarter, and more cost-effectively than ever before. They can now handle even more projects, but dedicate themselves to the areas that actually need their expertise. It means less time spent on repetitive or administrative tasks, and more time spent on ideation and refining something good into something great.
AI doesn’t replace the need for developers; it allows them to spread their wings wider.
If you think you’ve outgrown your current arrangement and need to step up to some bespoke software development strategies that will really take your business to the next level, then we’d love to hear from you. Our own development team has a vast amount of experience behind it and would be delighted to help you to find a solution that not only meets your needs, but that exceeds your expectations.