A Deep Dive into AI SWEs and the Role of Human Developers

Given these advancements, the central question posed by the talk – "will these LLMs make coders obsolete?" – felt particularly pertinent. I could sense a slight anxiety among the attendees.

A Deep Dive into AI SWEs and the Role of Human Developers
Photo by Lukas / Unsplash

The air in the conference hall at Deep Tech Week was crisp with a unique energy, a blend of strong innovation and a touch of unease. I was there for a session on "Democratic AI," a topic that immediately piqued my interest, especially when the conversation veered towards the rapidly evolving capabilities of Large Language Models (LLMs). 

One particular question hung heavy in the air: could these increasingly sophisticated AI models, seemingly adept at processing and generating human language, also master the intricate world of code and, in doing so, render human programmers obsolete?

My mind immediately jumped to the sheer volume of code publicly available. Platforms like Github, Codeberg, SourceForge, RhodeCode, and GitLab serve as colossal digital libraries, housing potentially tens, hundreds of billions, maybe even trillions of lines of code. It's a plethora (my word of the week, and quite fitting for such an abundance) of data for an AI to learn from, and all freely accessible. Moreover, code possesses a structured syntax, a rigidity that contrasts with the often-fluid nature of human language. This inherent clarity, one might assume, would make it easier for machines to learn and mimic.

Label Your Data

The discussion then touched upon the fascinating concept of bringing multiple LLMs together to tackle complex projects. These coordinated efforts, often referred to as "agents" or "agentic structures," are demonstrating an impressive ability to construct relatively large applications. It’s akin to orchestrating a team of highly specialized, albeit artificial, collaborators. You can read more about it here.

Given these advancements, the central question posed by the talk:

"will these LLMs make coders obsolete?"

felt particularly pertinent. I could sense a slight anxiety among the attendees, many of whom were recent graduates and seasoned professionals in the coding and AI sectors. The fear that their hard-earned skills might become redundant was real. Many seemed to anticipate the panel of experts to confirm their deepest concerns. However, the panelists offered a more nuanced and ultimately reassuring perspective, tempering fears and suspicions.

man wearing white top using MacBook
Photo by Tim Gouw / Unsplash

The Human Touch Still Reigns Supreme

Their arguments, grounded in the realities of software development, provided a much-needed dose of pragmatism:

  • The Devil is in the Details (and Debugging): While LLM agents could generate code, the initial output rarely met the specific requirements without significant human intervention. The first attempts were often riddled with errors or simply didn't function as intended. This highlighted the crucial role of human oversight in defining, refining, and debugging the AI-generated code. Most of the time, the model would need a few tens of prompts to get code that works correctly and expectedly.
  • Optimization Remains a Human Art: The code produced by these agents, even if functional at a basic level, often lacked optimization. While individual functions might appear efficient, the seamless integration of these functions into a cohesive and performant program (akin to an orchestra of programs communicating effectively) proved to be a significant challenge for the AI.
  • Understanding the Landscape is Key: Even if an AI could create a program, diagnosing issues or adapting to new requirements still necessitates human expertise. Someone needs to understand the existing codebase and the underlying logic to pinpoint where problems might lie before instructing the AI on how to fix them. The AI can't independently develop the intuition and contextual understanding that experienced developers possess.
  • Security and Privacy: Blind Spots for AI: Perhaps the most concerning limitation highlighted was the AI's lack of awareness regarding security vulnerabilities and privacy implications. The panelists shared anecdotes, met with nervous laughter, about LLMs inadvertently leaving sensitive information like passwords, encryption keys, and API keys exposed in the code. These are fundamental security blunders that any competent human programmer would avoid.

Therefore, the resounding answer from the panel was a clear "no," developers and software engineers are not on the brink of being replaced by AI. However, this doesn't mean that AI won't play an increasingly significant role in the software development lifecycle.

photo of girl laying left hand on white digital robot
Photo by Andy Kelly / Unsplash

AI as a Powerful Ally for Developers

The panelists emphasized the potential of AI to augment and assist developers in numerous ways, freeing up their time to focus on more complex and creative tasks:

  • Enhanced Code Clarity: AI can be invaluable in automatically generating comprehensive comments and refactoring code to improve readability and maintainability.
  • Streamlined Bug Reporting: The ability of AI to analyze code and automatically generate detailed bug reports can significantly accelerate the debugging process.
  • Facilitating Onboarding: AI tools can help new team members quickly understand existing codebases by providing explanations and insights.
  • Rapid Prototyping: LLMs excel at generating simple proof-of-concept applications, such as basic mobile or web apps like restaurant websites or calculators. This allows developers to quickly validate ideas and assess their feasibility before investing significant time and resources. If they don’t like it, they can throw it away. If they do like it, they can hire developers to iterate and improve it into an actual product.

These AI capabilities will significantly improve code quality and documentation, making developers more efficient and enabling them to learn codebases faster.

Made by Gemini - "Can you make an image of a kind and a robot solving sudoku together in a realistic art style?"

The Enduring Importance of Learning to Code

Despite the advancements in AI-powered code generation, I strongly advocated for the continued importance of learning to code. This is my way of saying:

LEARN HOW TO CODE!!!

The benefits extend far beyond securing a job in the tech industry:

  • Sharpening Problem-Solving Skills: Coding inherently involves breaking down complex problems into smaller, manageable steps, a universally valuable cognitive skill. Some people have even proven these cognitive benefits
  • Fostering Creativity within Constraints: The structured nature of programming, with its rules and limitations, paradoxically fosters creative thinking as developers seek innovative solutions within those boundaries. Restrictions breed Creativity.
  • Cultivating Technological Literacy: In an increasingly digital world, understanding how computers and software operate is a fundamental skill, regardless of one's profession.
  • Ubiquity of Code: From the smartphones in our pockets to the algorithms optimizing garbage truck routes, code underpins countless aspects of modern life. It can be found in all aspects of almost all industries. Understanding its principles provides a deeper understanding of the world around us.

My experience at Deep Tech Week left me with a renewed sense of optimism. While AI is undoubtedly transforming the landscape of software development, it appears poised to be a powerful tool that empowers human developers rather than replaces them entirely. The "democratic" aspect of AI, making powerful tools more accessible, will likely lead to new forms of collaboration and innovation. The human element (creativity, critical thinking, nuanced understanding of requirements and security) remains indispensable.

You can read more about what people think with these links

  1. AI Won’t Replace Programming [Medium]
  2. Will AI Replace Programmers? [Coursera]
  3. This video will change your mind about the AI hype
  4. Navigating the Future of Coding [USCD]
  5. Illuminating LLM Abilities on Language and Code [arxiv]

What are your thoughts on the evolving relationship between AI and software developers? Do you see AI primarily as a threat or an opportunity for those in the field? And for those considering learning to code, has this discussion shifted your perspective in any way? Share your opinions and experiences in the comments below!