A few weeks ago, I had a chat with my brother. We were discussing the impact of AI on software development, and he suggested that the coding part is basically solved by AI. I agreed, but I also pointed out that software craftsmanship is not just about writing code. It’s about designing, architecting, and maintaining software systems that are robust, scalable, and maintainable.

Honestly, it was never hard to get something working. The real challenge has always been to get it right. To create software that not only works but also stands the test of time. This is where craftsmanship comes in. It’s about taking pride in your work, paying attention to detail, and striving for excellence.

AI has solved the part of the craft which was never the difficult part. The hard part is still there, and it requires human creativity, judgment, and experience. And I think we are wandering into dangerous territory. Seeing statements from the CEO of Anthropic, Dario Amodei, that AI will replace software engineers in the next 5 years, is not only unrealistic but also harmful. It undermines the value of human craftsmanship and devalues the skills and expertise of software engineers.

Also, when the executives or Project Managers can vibe code an application using Lovable in 30 minutes. It makes the playing field unrealistic, creates false expectations of speed and complexity, and devalues the work of software engineers. It also creates a culture of ”move fast and break things” that can lead to technical debt, security vulnerabilities, and poor user experience.

Newsflash: Software development is still difficult in the age of AI. You still have to work with the same constraints, deal with the same complexities and solve the same problems. With good architecture we can have high cohesion and low coupling, reducing the cost of changes. With good design we can create software that is easy to understand, maintain and extend. With excessive unit and integration testing we can prove that our software works as intended.

About developer productivity, the 100x developer is a myth. The 10x developer is a reality between exceptional developer and average developer without AI. With AI, the gap between exceptional and average developer is even wider. Why? Because the AI is an amplifier.

Studies show that the average developer productivity increases by about 50%. Which essentially means that the exceptional developer is even better.

In conclusion, software craftsmanship is not dead in the age of AI. It is more important than ever. AI can help us with the coding part, but it cannot replace the human creativity, judgment, and experience that are essential for creating high-quality software. We should embrace AI as a tool that can enhance our craftsmanship, not as a threat that can replace it.

Now another rant, I am seriously worried about the future of software development. Nothing is worse now than a tactical tornado with AI, that is essentially an AI let loose to fix invididual problems everywhere without any architectural vision. It is like giving a hammer to a toddler and asking them to build a house. They might be able to hit some nails, but they won’t be able to create a solid foundation or a well-designed structure. We need to be careful with how we use AI in software development, and we need to ensure that it is used in a way that enhances our craftsmanship rather than undermines it.

For example, I can increase my productivity by 10x if I do not view the code AI generates and just open pull requests for other people to view. That is reckless and irresponsible. Why can humans only be 50% more productive with AI? Because we are the ones who have to review the code, understand it, and integrate it into our existing codebase. We have to ensure that it meets our quality standards, that it is secure, and that it works as intended. This requires human judgment and experience, and it cannot be replaced by AI.

AI code reviews to the rescue? Not really. AI code reviews can be helpful, but they are not a substitute for human code reviews. AI can catch some issues, but it cannot understand the full context, the design, and the architecture of the software. It cannot evaluate the trade-offs, the performance implications, or the security risks of the code. It cannot provide feedback on the readability, maintainability, or extensibility of the code. These are all things that require human judgment and experience.

And to you, developer, do not lose your craftsmanship. Do not let AI make you complacent. Do not let it make you forget the importance of good design, good architecture, and good testing. Do not let it make you forget the value of human creativity, judgment, and experience.

Lastly some practical suggestions for software engineers to maintain their craftsmanship in the age of AI:

  • Drive stick shift for a while (manual coding)
  • Drive semi-automatic for a while (manual coding with autocomplete)
  • Make the design decisions yourself, do not let AI make them for you
  • Solve the problem blindly with TDD, one case at a time, working from the things you know to the things you do not know, and let the design emerge from the code
  • Read the books, they’re still gold even in the age of AI.

One final note: if you abstract yourself too far away from the code, sooner or later you will lose the ability to reason about it. That is why it is still important to dive into the pool of bits and bytes every now and then. You need to drive stick shift once in a while — to understand how the engine works, how the parts fit together, and what is actually happening beneath the surface.

Software Architect

Hands-on Software Architect with strong AI and cloud expertise