Generative AI tools like OpenAI’s ChatGPT, Google Bard, and GitHub Copilot have burst onto the scene this year, upending various industries and altering the business strategy of the biggest technology companies on the planet, from Google to Microsoft.
Based on large language models (LLMs), these tools can ‘generate’ human-like text and imagery based on natural language prompts, opening up a whole range of possibilities and use cases for curious developers.
Those possibilities have meant that coding assistants like Copilot and Amazon’s CodeWhisperer have quickly found a home in the workflows of software engineers, who have been busy testing their limits and finding interesting ways to leverage a new addition to their toolbelts.
Below, we asked five engineering leaders: “What does generative AI mean for the future of software development?” and the answers may just surprise you.
When answering this question, there’s an Archimedes quote that immediately comes to mind: “Give me a lever long enough and a fulcrum on which to place it, and I shall move the world.”
I like to think that I am a technological optimist and that great innovations can be a rising tide for the whole of society, making us all more productive and efficient. That’s specifically my view on generative AI.
Generative AI has given us a lever that our industry has never had access to before. It will dramatically increase the speed of development, reduce repetitive toil, lower the barrier of entry for new developers, and, most importantly, will become an expected feature of any of the software that we build and interact with.
As we’ve already seen with GitHub Copilot and Replit Ghostwriter, AI can be the pair programmer that we’ve always wanted sitting next to us, giving more people the tools to become developers, an outcome that can only make our society and economy better.
Of course, a skeptical counter-narrative could be that it will put software engineers out of a job, and distribute wealth to the few, rather than the many. I don’t personally subscribe to that view. Instead, I see it as an opportunity for software engineers to move up the value chain, spending less time on repetitive boilerplate code and tasks that have already been solved, allowing them to move faster and spend their time on solving the real problems at hand. I’m excited for us all to go faster and create more.
The current state of generative AI is a milestone in our technological development. The rise of LLMs has enabled us to communicate with machines in ways we haven’t been able to before and is bringing monumental changes to the way software engineers and, more broadly, knowledge workers complete various tasks. Through the use of AI tools, a new prized skill set is likely to emerge – the ability to identify and describe the most pressing problem to solve.
On the flip side, generative AI is capable of ushering in a great deal of harm. After generations of productivity optimization, software engineers and, more broadly, knowledge workers are experiencing symptoms of burning out. It’s worth questioning the incentives of any newly identified productivity gains and asking if the system incentivizes solving the most pressing societal problems, or as a tool that only brings about increased financial gains and profit.
Another area of concern is the decreasing originality of content. LLMs are trained on content created by humans. If a significant portion of the population starts relying on generative AI to produce new content, we could unleash a famous bias in recommendation systems en masse, where what you recommend is what people would click on. Done at AI scale, our collective thinking would eventually converge to what the model gives us.
What’s more, LLMs often succumb to “hallucinations” by generating incorrect context and outputs. Most recently, a lawyer cited fake court citations generated by ChatGPT without realizing it. Fact-checking and risk management are crucial to ensure the correctness of the output presented by an LLM.
I don’t think we’ve yet seen the application of generative AI that will significantly transform how software is made. What we’re seeing now are the initial waves of learning. There will be a short-term impact, but I have yet to see anything truly transformative.
In the short term, I see two areas that generative AI will improve the daily lives of software developers. First, is taking care of routine tasks, such as adding an endpoint to your back-end service that already has patterns set up. I’ve experienced this benefit firsthand from using GitHub Copilot for the past year.
Secondly, AI can help developers keep a ‘flow’ state by allowing common questions to be answered right in their IDE. Switching between multiple browser tabs, an IDE, and your Slack history takes developers out of flow. The more time developers can stay focused in their IDE, the better.
AI is not a silver bullet. It’s a new tool that we don’t quite know how to best use yet. As an industry, we’ll get there. Until then we’ll be trying, and failing at, a wide variety of things. Innovations are always built upon learnings, especially from failures, so I’m very excited to see what evolves.
AI is not a silver bullet. It’s a new tool that we don’t quite know how to best use yet.
AI capabilities have been quietly rising during the past few decades, and now we have reached another inflection point with the arrival of generative AI. This technology has the potential to redefine how we work, unlock opportunities for more efficiency gains, automation, and create innovation.
Many of these tools are still in their infancy, but they have already solved common logic problems by generating code in multiple languages. There’s ample opportunity for a straightforward productivity increase by leveraging AI tools on boilerplate code and automation of test cases, or just getting a second opinion on a certain problem. This frees up time and resources for developers to focus on more creative and high-value work, such as designing new features and improving the user experience.
However, we shouldn’t overlook the limitations of generative AI, and an eventual productivity increase shouldn’t be taken for granted. While these tools can automate many routine tasks, they are not a replacement for human creativity and expertise. Similarly, we can’t expect AI to have all the answers. We must be responsible with how and when we rely on it.
Overall, I believe that generative AI has enormous potential to transform software development and open up new opportunities for innovation. We will see our industry change quickly in the coming months. We have to stay tuned and continuously adapt to the new environment. How will it impact the hiring process in tech? Which skills will be appreciated in the future? Change will continue to be a constant in our professional lives.
Check out more Huddles:
-
5 software engineering predictions for 2024
As we hope for a clean slate in 2024, what do engineering managers expect the year to hold?
-
How can you measure and improve engineering velocity?
Five brilliant engineering leaders to share their thoughts on how they understand and measure engineering velocity, and how to improve it.
-
LeadDev Advent Calendar
The countdown to Christmas is underway!
-
What makes a great developer experience?
We asked five engineering leaders what developer experience means to them, and how they’ve put it into practice in their own orgs.