If you’ve been brought up in the software development industry in the past 10 years, you will have heard of the famous quote by Martin Fowler:
There are only two hard things in Computer Science: cache invalidation and naming things.
As a developer you have the responsibility to come up with names for the functionality and every little variable in the thousands of lines of code that make up a product. Especially if you are a developer in a bigger team, or if you work open source, these names should already be very speaking and sharing the intent of the code you write. It is a well-known fact that as a coder you spend more time reading code than writing it. So making your code easy to read and understand is a big time saver, especially for other people.
What if this responsibility can be taken away or easily shared?
Imagine your work of developing features without always interrupting your train of thought to come up with the perfect name. Imagine just yourself, writing features and what they should do and another developer will observe your wokr and propose names to you. They will learn from you and will be able to even support you in writing the code itself? Hence introducing:
I am surprised that I still talk to developers, who have never even heard of Github Copilot. Here is a quick summary to get you up to speed in case you don’t know it: Copilot is a tool by Github, built on top of the OpenAI Codex AI which is specifically trained for code. Github used this AI and trained it further on their massive database of Open Source code. It knows a lot of coding languages as well as project structures and environments. (Have a look at their website for more insights)
I have been using Copilot for four months now and I do not want to miss it anymore. My job experience totally changed. It went from coding to actual problem solving. I became much faster than I was before and was even able to work in contexts I never worked in. I never studied informatics, so I also never had contact with PHP in my life. A few weeks ago, I started a project in Laravel and was able to fully build authentication flows, model connections, database queries, basically a whole app in PHP — while learning the language listening to Github Copilots prompts. I did not need to sit down, get courses on PHP, learning all the basic syntax and nitty gritty details. I could focus on adding features and thinking about solutions. If you are interested in the result, have a look here.
So why do I tell you this story? Overall I was really amazed by the whole process:
No more Choosing Variable Names.
No more Choosing Function Names.
No more Writing Documentation.
No more Design Patterns.
No more Testing.
No more Debugging.
It impressed me so much, that I brought it into my leadership work. As a sucessful leader, my job is to enable my colleagues and bring them to their best selves. Working with developers, obviously their focus is on growing to write good code and being able to deliver great products. From my experience, to be a great, experienced developer, soft skills are more important than expertise. Gaining experience in the technology will come automatically with time and can be sped up more easily than soft skills. So I thought of Github Copilot as a tool for my employees, especially less experienced ones, to free up their mind from having to learn all the details of code and syntax. I want them to be able to focus on the actual core skills needed in an agency as a developer: being able to solve problems and communicate these solutions in a solid way.
Taking everything into account, it was easy to take a decision and enable Github Copilot in our company organisation, enabeling our developers to use Copliot in our client projects, speeding up their work and taking some mental load off of them. Reducing the hard things in development to only one thing. So let’s rephrase Mr. Fowler to take the evolving AI world into account:
There is only one hard thing in Computer Science: cache invalidation. But I guess AI will soon be helping here too. — Marc Emmanuel, 2023