You need to start thinking about AI

Artificial intelligence is becoming more significant in our everyday lives. A McKinsey study showed developers can complete coding-related work twice as fast when assisted with generative AI. For Copilot alone, 70% of users found themselves more productive. If you multiply this across your entire engineering team, it's a number you cannot ignore. 

With the potential to handle tedious tasks efficiently, free up time and make your team more productive, AI tools, as they have become more mature, now span a wide range of applications. From assisting with code creation to enhancing customer support, ignoring these changes means risking decreased efficiency by undertaking manual tasks needlessly. In this article, I will explore some benefits of integrating this into your team and how to go about it. First, let's look at the two different ways of working.

Comparing AI used with non-AI approach

We have two developers, Bob and Annie. Bob works for a travel-related company, but the company has banned using any AI tooling for now. Annie, an ex-colleague of Bob now works for a company that is building a transportation app, her company encourages the team to experiment with AI. Let's explore how the two workflows differ.

Version control

After three draining hours tracking down a bug, Bob has just completed some work on a new feature. He is relieved to have completed the work, but it took him two days longer than estimated. He commits it to GitHub via the command line. The last pull request he created was called another styling fix; he received some criticism for this being too vague. Taking that on board, he creates his pull request. Jenkins starts a CI process, but Bob knows this will take a while. He will also have to wait for another developer to review the work, so he decides to go for lunch. Before figuring out what to eat, his mind drifts to doubting his implementation. His only feedback so far was from his own manual testing, so he goes for coffee instead.

Annie is also wrapping up some work on a feature. Copilot just helped her catch a bug in the last function she wrote; it even suggested linting changes helping her code become more readable. Assisted by Copilot, she has worked faster while feeling like she has increased the quality of the code. The extra time available has enabled her to take some courses in Python, something she has really enjoyed. She commits the code to GitHub with the help of pre-commit hooks. When she worked with Bob, she once created a commit message, which was a snazzy update. Remembering this makes her shudder, this would probably not have happened with Copilot. It now helps her generate commit messages in Visual Studio. Like Bob, she creates a pull request. Her team uses SonarQube, which helps detect any code smells. This is configured through GitHub actions. She makes some immediate changes, relieved she didn't get a colleague to check the code before the fixes had gone in. She then requests a review and realises she’s starving, so she goes to lunch.

Merging to staging

When Bob returns from lunch, he sees another developer approved his pull request.  He finds the process of merging to staging stressful, so before merging, he gets another coffee. Jenkins handles the deployment. No user interactions are simulated, but the team uses Selenium for end-to-end testing. If something breaks during the process, any change will have to occur manually. Bob checks his emails while keeping an eye on the build logs.

Annie returns, having eaten Pizza in the park, and she sees that her colleague has approved her code. She is enthusiastic about merging her work to staging. This is done through GitHub actions and Circle CI. Once the code is on staging, Mabl and Testim perform testing. They handle covering many edge cases and simulate user behaviour. If issues were to occur, the code could be automatically rolled back. While this is going on, she is able to explore the next ticket she could pick up, using the time to plan.

Merge to production

Once everything on staging is good, Annie will deploy her work to production. The team uses ArgoCD alongside Datadog for monitoring. If there are any issues, a rollback will happen automatically. Once the deployment has finished, she heads home feeling satisfied. 

Bob is ready to deploy to production. The team uses Grafana for monitoring, but the deployment is primarily manual. He almost deployed the wrong branch, so he took a breather and got his fifth coffee of the day before making the deployment. If anything were to go wrong, a rollback would have to occur manually. He knows he has been in the office for a long night. Knowing he won’t get paid overtime for his efforts, Bob wonders if he should be working elsewhere.

We see two approaches undertaken by Bob and Annie. The approach taken by Bob has a much higher dependency on human input and requires far more manual work. Consequently, it is more prone to errors and has a higher cognitive burden for one person.

Areas that integrating AI can help your team

If we explore the main areas that AI can assist, highlighted by the example above, what we really see are:

Code generation - This includes the generation of tests. With the help of boilerplate code using tools such as GitHub CoPilot and Tabnine developers can work faster. For testing you can create better test coverage with more edge cases covered. In research recently performed 96% of developers found themselves to be faster in repetitive tasks. 88% perceived themselves as more productive.

Code Review: Tooling can help analyze the code for code smells and bugs, inconsistencies and security issues. This will help the human reviewers ensure the code is thoroughly checked. By complementing the human element, more time can be freed up for the intricate details of the review process. Copilot can assist with the creation of the pull request, DeepCode for analysis and suggestions and SonarQube for code smells.

Debugging and error reduction - By utilising machine learning algorithms AI can assist with detecting errors and debugging. Tools such as SonarQube and Code Climate will scan for potential issues. 

Prototyping: Either through assisting with creating the prototype itself or by analysing data to create a better user experience, AI can help. Tools such as Figma and Uizard can create wireframes and mockups. The latter will even turn images into a design. Both of these can boost UX and innovation.

Reading tip: Spiraling Out: the art of AI optical illusions

Documentation: By assisting with automating, generating, updating and correlating documentation, AI can reduce the amount of manual human effort required. Another benefit is consistency around all your documents. Additional tools are also available to help with code comments and commit messages. Grammarly can help with the grammar, whilst tools such as Mintlify Writer and Document 360 can assist with generation.

Testing and detecting bugs: By improving test coverage through running tests and predicting bugs AI can build productivity and quality here. Humans may miss considering all the different edge cases, which is another place AI can step in. Aside from Copilot to help with the authoring of the tests, other tools to explore include Saucelabs, a platform to help automated testing across browsers, Testim which uses AI to help create and execute tests and Mabl, which uses machine learning to create and update tests.

Communication: Through note-taking, meeting summaries and condensing long discussions, AI can streamline communication. Algorithms can work to prevent common misunderstandings, and chatbots can act as virtual assistants to answer common questions. Otter.ai, Grammarly, and Slack are just some tools you can explore.

It may seem that you are losing human touch, but really we are freeing up human time

How to integrate AI into your current processes

When you look at integrating AI into your processes,  it may seem that you are losing human touch, but really we are freeing up human time. By doing less repetitive tasks, humans can boost their energy for creativity. For a company looking to scale, the ability to optimise resources and automate tasks also allows it to grow rapidly. On the other hand, it also helps if you need to descale.

There are a variety of approaches you can take to integrate AI into your business. Ultimately, these will require a strategy to be led from the top and an overall shift in the mindset of an entire company. It is a good idea to start small. Look at an area where you have a lot of manual work or where you think there is potential to cut costs. This can open the door to where AI can most assist you. 

With the ability to enhance the complete developer experience, it is best to integrate tooling across the entire team. If you have one developer who uses AI and saves time but then depends on another team member who does not, gains will be lost. Equally, when collaborating, if colleagues are not familiar with each other's tooling, the process can become slower. 

Through the use of metrics and insights, you can make better decisions. Key performance indicators will assist with choosing which metrics to monitor. Examples may include code quality, development speed and error rates. Engaging in conversation with your team about the impact of the tooling and performing surveys will provide you with more information. You do not want to be paying for something that you cannot realise the benefit of, or worse, that is slowing down your team 

Can your startup benefit from AI?

For early-stage companies, integrating AI may be dismissed because it requires more resources. This does not need to be the case. With a lack of legacy code and overhead, early-stage companies can often be the best candidates to implement this cultural shift. There are benefits to be gained from using tooling to boost the smaller teams you may have. Seek advice from those who have already taken the journey, external consultancies can help here.

Define the strategy for integrating into the business, align this with your goals, and show the team you are excited by the change. You may need to invest in upskilling your team. Creating a shared literacy around the tooling and an awareness of ethics will help with the cultural shift. You will need to do more than establish the direction. Not everyone is as excited about AI; many still fear it will take their jobs away, so be empathetic. 

Don't feel overwhelmed by making sweeping changes all at once; AI offers an opportunity to be implemented in a phased manner. You are taking part in a change that will affect tomorrow, staying ahead in today's markets and opening doors to unlock new opportunities.