The landscape of software engineering is changing, and much of this transformation is driven by Artificial Intelligence (AI).
With the rise of tools like GitHub Copilot and other generative AI models, we’ve seen a dramatic increase in how AI is helping engineers. But what does this shift really mean for developers, and how will it impact the future of software engineering?
This article explores the realities and challenges of using AI in software development, breaking down its strengths, weaknesses, and what engineers need to know to make the most of these powerful tools.
Table of Contents
How Developers Are Actually Using AI
There are two primary ways in which developers are incorporating AI into their workflows: bootstrappers and iterators.
Get Your Linux Course!
Join our Linux Course and discover the power of open-source technology. Enhance your skills and boost your career! Learn Linux today!- Bootstrappers (Zero to MVP): These developers use AI tools to rapidly generate the foundational code of a project. For example, tools like Bolt or v0 can take a design concept (such as a Figma layout) and generate a functioning prototype within hours or days. This approach is about speed—creating a working model quickly to gather feedback and iterate. These tools can be extremely powerful for early-stage prototyping or startups looking to validate ideas fast.
- Iterators (Daily Development): In contrast, iterators use AI for ongoing, day-to-day tasks, such as code completion, refactoring, generating tests, and documentation. Tools like Cursor, Cline, and Copilot become integral to their workflow, helping improve productivity on established projects. These tools are less flashy but are transformative in terms of automating repetitive tasks, offering coding suggestions, and speeding up development.
However, while both approaches benefit from AI, they come with hidden challenges that are often not immediately visible.
The 70% Problem: AI’s Learning Curve Paradox
One of the most common frustrations with AI-assisted coding is the “70% problem.” Early-stage results with AI tools can feel magical—developers can quickly get 70% of the way to a working product. But the last 30% often involves a lot of manual work to make the system production-ready.
The pattern is predictable:
- You use AI to generate a solution.
- It works to an extent, but small bugs or issues emerge.
- Fixing one problem introduces new issues, leading to a frustrating cycle of “whack-a-mole” debugging.
This issue is especially noticeable for non-technical users or beginners, who lack the experience to troubleshoot AI-generated code. More experienced developers can guide the AI’s output, refining it into something robust and maintainable, but junior developers may accept AI suggestions without understanding the underlying issues, resulting in “house of cards” code—fragile and prone to collapse under real-world use.
What Actually Works: Practical Patterns for Using AI
After years of observing teams integrate AI tools into their workflows, here are some practical patterns for making the most out of AI-assisted coding:
- AI First Draft Pattern: Use AI to generate a basic implementation. Then, manually review and refactor the code, ensuring it follows good engineering practices such as modularity, error handling, and testing.
- Constant Conversation Pattern: Treat AI as an ongoing collaborator. Start a new chat for each task to keep the context clear and focused, ensuring you review and refine the code regularly.
- Trust but Verify Pattern: AI can speed up initial code generation, but you must review critical code paths, conduct edge case testing, and implement regular security audits.
In summary, AI is a great tool for speeding up certain tasks but requires significant human oversight to ensure quality and maintainability.
What This Means for Developers: Practical Advice
- Start Small: Begin by using AI for isolated, well-defined tasks. Gradually build up to larger features, always reviewing the generated code carefully.
- Stay Modular: Break down features into small, focused components. This makes it easier to manage code and maintain clear interfaces between modules.
- Trust Your Experience: AI tools are most effective when guided by your judgment. If something feels off, question the code and ensure it aligns with your engineering standards.
The Rise of Agentic Software Engineering
Looking toward 2025, we are likely to see the rise of agentic software engineering, where AI tools become more autonomous. Rather than just responding to prompts, these tools could start taking a more proactive role in the development process, such as identifying potential issues, running test suites, and suggesting fixes.
For example, newer AI models like Claude and Cline are starting to integrate multimodal capabilities, meaning they can interact with not just code but also visual elements like UI screenshots and even web browsers. This opens up exciting new possibilities for how AI could collaborate with developers.
The future will likely see AI acting as an increasingly capable collaborator that can handle more of the routine work while still respecting human oversight and expertise. This shift will require developers to evolve their skill sets, focusing more on high-level system design, architectural thinking, and effective communication with AI.
The Return of Software as Craft
While AI has made it easier to quickly develop software, there is a concern that it may dilute the craft of software engineering. AI tools are excellent at producing functional prototypes, but they may overlook important aspects like:
- Error handling: AI-generated software might not handle edge cases or provide meaningful error messages.
- User experience: Rapid prototyping can result in confusing or incomplete UI/UX.
- Performance: Real-world performance issues, like how software runs on slower devices or in different environments, can be neglected.
This focus on speed may lead to a loss of attention to detail, which is essential for creating polished, production-quality software. Developers may need to balance rapid development with a renewed emphasis on craftsmanship—the art of building software that is not just functional but also reliable, user-friendly, and resilient.
Conclusion
AI-assisted coding is here to stay, and its impact on software engineering is undeniable. While AI tools can accelerate prototyping, automate routine tasks, and provide valuable suggestions, they are not a magic bullet for replacing human expertise. For now, AI works best when used as a tool to enhance a developer’s workflow, not replace it.
The future of software engineering will likely involve a partnership between humans and AI, where AI handles repetitive tasks and helps with prototyping, while developers provide the critical oversight needed to ensure that software is robust, maintainable, and truly innovative.
As the industry moves toward agentic software engineering, developers will need to adapt by strengthening their system design skills, improving their ability to communicate clearly with AI, and embracing the evolving role of AI as a collaborator rather than a tool.
By combining AI’s capabilities with human expertise and attention to detail, the next era of software engineering will likely be faster, more collaborative, and, most importantly, more impactful.