"The status quo has changed." That was the feeling I had a couple of weeks ago seeing AI write code and create a pull request (A pull request is a way for developers to collaborate on code changes in a project). Our jobs are not in danger of disappearing. It's not problematic if you don't change immediately, but eventually, you will be left behind and it’ll become increasingly harder to catch up. At icapps, we are currently examining and modifying our methods while ensuring these new dynamics bring value to our workflows. AI is here and it is here to stay. Let’s share some insights.
There are two main areas where AI will have the biggest impact. Last year GitHub released GitHub copilot which supports developers by autocompleting code. There used to be similar tools available before, but copilot is way more advanced in both length of the proposed code and quality. You can also use copilot to create unit tests for your functions. GitHub is currently experimenting with suggesting code directly on GitHub. You simply create an issue and ask GitHub to suggest code. The algorithm will write the code and submit it directly to your repository. It will then create a pull request so you can review the code and accept it or change it if it's not exactly what you want.
That's not the only way AI will help create code, ChatGPT has only recently been released and it is already finding its way into our way of working. You can ask many different things in order to help you. You can use it to help convert requirements into functional code and ask it to write tests for you. You can also use it to convert between different programming languages and use it to bounce off ideas or troubleshoot issues.
After a developer writes code, a good practice is to have another developer verify it. This is a very important step and AI can help detect and prevent potential bugs. You can use ChatGPT while writing the code to check your work. GitHub is working on an AI algorithm that will check your pull request and mark where there are possible issues. It will suggest how to fix it and supply you with a button to let it submit the fix immediately. Reducing the amount of bad code going into the final product.
Note that code written by AI always needs to be carefully reviewed by a human and not only by other, or worse, the same, AI. This will definitely be an area where we should pay extra attention and not take shortcuts. The current AI platforms are trained on open-source code which may have its flaws and those flaws shouldn't become a part of your code.
Another aspect that we should be careful about is that AI will try to match your coding style. This is something very useful as long as your code actually has a style (so not just a mix and match of online found code/written by AI) and doesn't contain too many bugs. Code that is full of bugs can be interpreted by AI as intentional and AI will match it and purposefully add bugs to the newly created code. We already notice this when using GitHub copilot, so make sure you check your and the AI's work.
I really like the way I work now and I don't want to change it. The short intervals and quality of the latest new AI tools becoming available, make it clear to me that this is not a sustainable way of working. We need to change with it or we will be left behind. Our developer role will change drastically and we will become more of a verifier when it comes to smaller changes and bug fixes, granting us more time and energy to spend on the bigger picture and complex features. As long as we use the existing tools correctly.
This blog is not written by AI, but some parts have been reviewed and/or improved by it. This is exactly how I expect us to work in the future: collaboratively.
Are you interested in AI and do you want to learn more about how you can use it in your business?