Why Software Developers Won't Be Replaced by AI
Dimitar Bakardzhiev
Software Product Developer | Agile & Kanban Expert | Exited Founder | Author & Publisher | Inventor of KEDE;
There has been increasing speculation about AI potentially replacing programmers. Newspaper headlines claim that AI is coming after the tech bros and their easy money and statements from industry leaders such as Nvidia CEO Jensen Huang, claiming “Anybody can be a programmer with AI” fuel this narrative. Investors, too, are pouring millions into companies promising to automate human developers, driven by the lucrative prospects of reducing the high salaries of skilled developers. This speculation could have even influenced career decisions, with some pivoting away from tech in fear of obsolescence.?
However, the notion that AI will completely replace software developers is misguided.
The Limits of AI Learning
AI learns tasks based on specific criteria: it needs a method to perform the task and a way to be evaluated on its performance. Currently, AI training revolves around two main tasks:
** Next-Word Prediction:?
AI is given a text document and tasked with predicting the next word.
** Short Response Generation (Reinforcement Learning from Human Feedback - RLHF): AI responds to prompts, such as coding queries, and human evaluators score the responses on helpfulness and accuracy.
These training methods have produced long-tail of well-funded and scaling companies, such as Github Copilot , Tabnine , Magic.dev , Augment , Poolside , Cursor AI , OpenDevin , Cognition’s Devin , and Supermaven , which offer tools to significantly aid developers with generating source code.?
This progress leads some to believe that AI might soon surpass human developers.
The Nature of Software Development
In software development, the actual work is the cognitive effort to close the gap between what is known and what needs to be known in order to create robust, innovative, and efficient working software. Closing this gap entails knowledge discovery.
Software developers are engaged in a knowledge discovery process that transforms invisible knowledge into visible, tangible working software
Knowledge is the most important resource of an organization. It encompasses the collective personal knowledge of the team - the insights of the Product Owner, QAs and Architects; the available documentation; the Customer, and impersonal sources of existing knowledge such as books articles, videos, open source projects, StackOverflow ?
AI serves as another impersonal source of existing knowledge—aggregating insights already discovered by other software developers.
By leveraging AI, developers can utilize this collective wisdom effectively, shifting from toiling in alleged “creativity” to riding the momentum of existing knowledge. This reuse of collective wisdom has the potential to transform the approach to software development.
Refactoring
Code refactoring is another significant example of AI’s impact on the developer workflow and ecosystem. Modern engineering teams often spend only a small portion of their time writing new code. For many, the real challenge lies in understanding existing code. In large organizations, a significant amount of software engineering time is dedicated to maintaining, securing, and testing code. These tasks, such as code refactoring, require a deep knowledge of the codebase and are often seen as daunting by senior engineers. As AI accelerates the pace of coding, human readers may struggle to keep up, potentially leading to a buildup of technical debt.
AI has clear potential to address these challenges. Startups like Gitar , Grit, ModelCode assist developers in interpreting code structures, fixing technical debt, and delivering high-quality code. By aiding in these essential but less glamorous tasks, AI allows developers to focus more on innovation and new development, further transforming the software development process.
The Complexity of Software Development
Software development extends far beyond writing code. Crucial elements include making long-term technical decisions, such as software architecture and project prioritization, which have impacts spanning from six months to several years. Training AI for such tasks would require a method for making these complex decisions and a way to judge their long-term outcomes, which is currently beyond our capabilities.
Evaluating long-term technical decisions involves subjective criteria and complex trade-offs, making it impossible to create a vast dataset for training large AI models. While next-word prediction can be quickly evaluated in numerous iterations, assessing the success of a long-term technical decision might take years, making such training impractical.
The Human Element in Long-Term Planning
Human decision-making in software development benefits from millions of years of evolutionary shaping, enabling us to navigate complex, long-term planning with no immediate feedback loop. AI lacks this evolutionary advantage. Some suggest AI could self-assess its responses to improve autonomously, but this only works to a limited extent. Self-improvement requires interaction with external data and feedback signals, which are crucial for genuine learning and adaptation.
领英推荐
Coding Efficiency: A Narrow Focus
Enhancing the speed at which developers complete tasks, while valuable, addresses only a fragment of the broader system. In most scenarios, the bottlenecks and challenges at the system level extend far beyond individual task efficiency. Issues like organizational structure, communication breakdowns, and strategic misalignment often play a more significant role than the speed of coding.
The AI Magic Bullet: A Cautionary Tale
The allure of AI as a quick fix for deep-rooted systemic issues is strong. However, it's a seductive trap. AI can undoubtedly aid in various ways, but it's not a cure-all.?
The integration of AI, particularly in the form of AI like GitHub Copilot, demands a nuanced understanding of its capabilities and limitations. It's not just about automating tasks; it's about enhancing decision-making, streamlining processes, and, importantly, fitting into the human context of an organization.
The Revealing Tide of AI
As AI technology evolves and becomes more pervasive, it will, like a receding tide, expose the underlying issues that impede system-level improvements. It's a moment of reckoning for many organizations. Those previously hidden inefficiencies, structural flaws, and strategic gaps will become glaringly apparent.
A Call for Holistic Improvement
This scenario underscores the need for a holistic approach to organizational development. It's not just about how fast we can code; it's about how effectively we can integrate people, processes, technology, and strategy into a cohesive system. As AI technology advances, the focus should shift from mere task completion to systemic transformation.
Integrating AI as a Tool, Not a Replacement
As we pointed out, AI helps developers efficiently bridge the knowledge gaps. Bridging this gap involves discovering and applying new knowledge. Efficient knowledge discovery is critical for unlocking the full potential of both individuals and teams, which naturally leads to high productivity. Furthermore, this efficiency in knowledge acquisition and application enhances the developer work experience and overall well-being
AI can contribute to improved collaboration, increased productivity, reduced waste, decreased cognitive load, and foster an environment where developers can achieve a state of Flow.Integrating AI as a Tool, Not a Replacement
The future of AI lies in progressing within tasks it can effectively train for and falling short in those it can't. Rather than fearing replacement, developers should focus on integrating AI tools into their workflows. AI can excel in specific, repetitive tasks, enhancing productivity and efficiency. Meanwhile, high-level, strategic decisions remain within the purview of human intelligence, where nuanced judgment and long-term vision are essential.
The future of AI lies in progressing within tasks it can effectively train for and falling short in those it can't. Rather than fearing replacement, developers should focus on integrating AI tools into their workflows. AI can excel in specific, repetitive tasks, enhancing productivity and efficiency. Meanwhile, high-level, strategic decisions remain within the purview of human intelligence, where nuanced judgment and long-term vision are essential.
Evaluate impact of AI on productivity
The AI revolution is a game-changer that demands new paradigms to understand and maximize developers’ impact. This is our golden opportunity to lay a more robust foundation for metrics and modeling.?
A key shift here is the focus on bottom-up improvement. Unlike top-down initiatives, input metrics can validate improvements of both kinds, while top-down unit metrics falter in this respect.
Traditional metrics in technology development emphasize outputs and focus on lagging indicators such as the number of commits, story points, bugs, feature velocity, throughput, and lead times.?
However, AI tools primarily impacts the quality of the process, affecting areas like predictability, efficiency, rework, developer happiness and cognitive load.?
In a perfect world, Engineering Leaders would be able to evaluate AI tools with leading indicators? that:
Conclusion
In conclusion, while AI will undoubtedly transform aspects of software development, the role of human developers remains indispensable.
Embracing AI as a powerful tool rather than a replacement will drive innovation and success in the tech industry.