How will the practice of software engineering change when the majority of code is LLM generated?
Background
This post was inspired by David Knott newsletter which I recommend very much for its thoughtful and insightful approach.?
In It is about the technology (and all the other stuff too) David says
I believe that those of us in the technology profession do ourselves a dis-service every time we say that it’s not about the technology, because those words simply aren’t true. It is about the technology. If it wasn’t for the invention of computing then everything would be different: the organisation of companies; the way we run our lives; scientific research and exploration; global collaboration, communication and connection. Our world runs on technology, and if we choose to ignore it for the sake of relieving discomfort, then we will make bad decisions.
In this context, I am exploring the question:?
How will the practice of software engineering change when the majority of code is LLM generated?
I am exploring this question as part of our next #universityofOxford course on #AI (Artificial Intelligence: Generative AI, Cloud and MLOps)
This is a complex question and in some ways, its an extension of our #lowcode #AI much deeper into the #fullstack
Before we proceed, to understand whats at stake here, I very much suggest you watch this brief video to see how dramatically the world of the traditional software developer is going to change and also how Andrej Karpathy recently raves on about LLM generated code and also THIS link?
I believe that if LLMs generate a majority of the code in a full stack ecosystem, there will be ? three? implications
The development effort would then shift to a greater emphasis on core software engineering principles themselves (and that is the thesis of this post) - much in like with the understanding and acceptance of complexity as per David’s post..?
LLMs are revolutionising full-stack development by automating repetitive tasks, improving consistency, and speeding up development cycles. However, they would also introduce new challenges related to code quality control, security, and the need for skilled oversight.?
In this context. the role of developers would likely shift from manual coding to a more supervisory and architectural role, focusing on guiding AI-generated code and ensuring that the final product meets all technical and business requirements.
Now, we could break this down in two ways
领英推荐
Impact on full stack development??
Full-stack development encompasses both front-end and back-end development, as well as the infrastructure and operations required to run a complete application.?
This includes
LLM generated code can impact all these areas for full stack development when significant portions of the code are generated by LLMs.?
LLMs can initially be used for rapid prototyping through automated code generation, covering aspects of development, including user experience (UX) and databases. This shift will change the focus of developer skills towards higher-level problem-solving, ensuring code quality and consistency, automated debugging, testing and refactoring, as well as maintaining security and compliance.
Impact on software engineering?
There is also a broader impact and a greater emphasis on software engineering
When? LLMs generate the majority of code, software engineering would shift towards a more high-level, strategic, and oversight-focused discipline. Engineers would become curators and quality controllers of AI-generated outputs.? Automated code generation and testing could significantly alter the software development lifecycle as we know it today.?
If ?LLMs? can generate both code and tests, the iteration frequency (Continuous Integration/Continuous Deployment, or CI/CD) would increase. This capability would enable the generation of multiple versions of code simultaneously, allowing for parallel evaluation and optimization.
We would need new tools, frameworks and more cross functional teams and the ability to think at scale for larger, complex software engineering applications including AI applications where a majority of the code is generated by AI. This is our longer term focus.?
We will see a skillset evolution towards software engineering. Engineers would need to develop stronger skills in reviewing and assuring the quality of AI-generated code, focusing on edge cases, security vulnerabilities, and compliance with coding standards.
Specifically, when it comes to AI and LLM generated code, there would be possibly additional considerations such as ? Ethical and Security Considerations, Bias, fairness, intellectual property and a far greater awareness of security vulnerabilities. Software engineering would also need to consider regulatory and compliance challenges.??
I believe that these developments would both accelerate innovation but also require a reskilling effort to undertake a holistic / systems level approach to help in developing complex systems.?
It would also need a rethink of how software engineering paradigms like separation of concerns apply? as also new metrics like huameval from OpenAI (Evaluating Large Language Models Trained on Code)????
I am keen to see and collaborate with anyone else working in this space
Social Media Analyst at oxygen ites pvt ltd
2 个月This is an interesting discussion! As software engineering improves and much of the coding shifts to LLMs, engineers' roles will likely adapt. I'm particularly interested in how platforms such as SmythOS can help orchestrate AI agents to improve collaboration and efficiency across multiple projects. The ability to utilize AI's capabilities without extensive coding knowledge might greatly broaden the field for many, making software engineering more accessible and innovative.
CEO & Co-Founder @ Rejuven | Medical Doctor, Consultant and Lecturer
3 个月Love this
Principal AI & MLOps Engineer @ Barclays | Author | Visiting Lecturer @ Oxford, Warsaw
3 个月This is great Ajit Jaokar, can’t find anything I disagree with here and I like that you call out how this will mean a required evolution in skills and capabilities and not just “all work goes away”. One of your earlier points cuts off prematurely btw “There should be a greater emphasis on software engineering else we risk deskilling i.e. too much emphasis on code generation and less on understand the”
AI Research Engineer | Research Interests: LLMs, Agentic AI & Reinforcement Learning | Open to PhD Opportunities | Electrical and Computer Engineering Graduate
3 个月You've made some excellent points about the future of software engineering with LLM-generated code. I agree that engineers will need to reskill, focusing on higher-level problem-solving and a deeper understanding of software engineering principles to effectively interpret, debug, and ensure the safety of AI-generated code. Mastering prompting will also become essential. As tools?like Genie, Amazon's Q, SWE-agent, and OpenHands (previously called "OpenDevin"), even smaller, routine software engineering tasks will likely be automated by AI agents. This shift makes reskilling absolutely essential, as developers will need to transition from hands-on coding to roles that focus more on oversight, quality assurance, and strategic decision-making in this new landscape.
AI Services | Doctorate topic : how is AI impacting consulting business models?
3 个月Thanks prof Ajit Jaokar for this enlightening post. In my view, this reminds us that developing complex systems, much like any team work, requires gathering the right set of skills, which most probably will come from AI and humans. It is not conceivable that say, 20 years from now, coding software will remain the same as it is today. From my experience of SW engineering (I'm a former developer), progress came with new concepts or frameworks, all adding additional layers of abstractions, which our minds need to be able to comprehend. In my view, this is one the biggest values of disciplines that help train our brain do so, such as math, music, etc. In other words, being a coder tomorrow will need an open mind.