AI Can’t Read the Room: Why Engineering Leaders Still Need to Slow Down
There is a quiet shift happening in software teams, and it is not only about speed.
We can build faster than we could before. Features that once took days can sometimes take hours. Large sections of an application can be scaffolded in one sitting, and problems that previously demanded several rounds of searching and experimentation can be resolved through a well-guided conversation with AI.
That is progress. I use these tools every day, and I have seen how much time they can save.
But speed has a way of making certain parts of the work less visible. The output arrives so quickly that it can look complete before anyone has had time to understand what sits underneath it.
This is particularly obvious in what people casually call vibe coding. Someone without a traditional software-development background can now turn an idea into a functioning application remarkably quickly. That accessibility matters. It gives more people the ability to experiment, build and learn without waiting for somebody else to make their idea real.
The complication begins when quickly generated work needs to become part of a shared, maintainable system.
Something can run perfectly well while carrying problems that are not immediately visible. Files may be scattered across folders without a consistent pattern. The same logic may be duplicated in several places instead of being reused. Responsibilities may be mixed together because the tool was focused on completing the immediate task, not preserving an architecture that a team can understand and extend over time.
Then someone asks the understandable question: if it was built in a day, why will it take so long to make it production-ready?
The answer is that working software and sustainable software are not quite the same thing. A system needs to do more than produce the correct result today. Other people need to understand it. The structure needs to remain coherent as features are added. Security, testing, maintenance and the consequences of future changes still need thought.
AI can compress execution. It cannot compress all the care surrounding it.
I felt this tension clearly while rewriting native mobile applications in Flutter. It was the first codebase where I allowed AI to shape the structure of a real system rather than using it only for isolated assistance.
That was a bigger adjustment than I expected.
I had written code by hand for many, many years. Coding was not simply part of my job. It was part of how I understood myself. I trusted the thinking process I had built through experience: deciding where something belonged, recognising patterns, anticipating what could break and slowly shaping a system into something coherent.
Allowing AI to take on part of that process felt like letting go of something that had become part of my identity.
I worried about quality. I worried that I might stop understanding the code deeply enough. I wondered whether relying on AI would weaken skills I had spent years developing. Underneath all of that was the simplest fear: I was trusting a very different way of doing something that had always been mine.
Even so, I began using it more deeply. The speed was difficult to ignore. Files appeared, features took shape and the code compiled. On the surface, the process was working.
But when I looked more closely, the structure did not feel right.
Files belonging to the same feature had been placed in different folders. Code had been duplicated where shared behaviour should have been reused. Each individual task had been completed, but the codebase was beginning to lose the consistency that would help it survive beyond those tasks.
I caught the problem early because I reviewed every piece of work before committing it. I checked whether the code made sense, whether it belonged where it had been placed and whether the implementation fitted the wider system. Because this was my first heavily AI-assisted codebase, I watched it more closely than I might have watched a familiar workflow.
When I found something wrong, I stopped.
I did not ask AI to repair the entire architecture in one enormous sweep. We worked through smaller tasks. I explained how a part should be structured, corrected where files belonged and showed it which patterns should be followed. Once that section was right, we moved to the next one and repeated the process.
At the same time, I improved the instructions and project documentation available to the model. The goal was not only to fix what already existed, but to make the intended structure clearer so that the same mistake would be less likely to return.
The output improved, but not because the tool had suddenly become more intelligent. It improved because the direction became more intentional.
That experience changed how I think about AI-assisted development. The speed is real, but it does not remove the need for engineering judgement. If anything, faster output makes that judgement more important because weak decisions can now spread through a codebase much more quickly.
AI can accelerate a good pattern. It can also duplicate a poor one with impressive efficiency.
The same tension exists around the humans doing the work.
People do not all adjust to a new way of working at the same pace. I had years of technical experience and was still hesitant to let AI shape production code. That hesitation was not ignorance or stubbornness. I understood what could be gained, but I also understood what might be lost if I stopped paying attention.
A leader cannot assume that immediate output means immediate confidence. Someone may be using the tool while still worrying about whether their skills matter. They may be moving quickly but no longer understand the code they are responsible for. They may agree with a new workflow in a meeting while privately needing more time to trust it.
AI cannot notice those differences.
It cannot hear hesitation in somebody’s answer, see that they have become quieter than usual or recognise when speed has begun to feel like pressure. It does not know the history behind a person’s reluctance, what part of their professional identity is being challenged or whether they feel safe admitting that they are uncertain.
Those signals still belong to the people in the room.
As technical work becomes faster, it is tempting to allow everything around it to accelerate too. More ideas feel achievable. More features can be proposed. Answers arrive sooner, so decisions begin to feel as though they should be made sooner as well.
That is where leadership needs to resist the pace occasionally.
We still need time to ask whether a solution belongs in the system, whether the person responsible for it understands it and whether the team is moving together or simply producing output at the same time. We need review points where the work can be inspected before it becomes the foundation for more work.
That does not mean distrusting AI or slowing every task down for the sake of caution. My Flutter rewrite did not need to stop. It needed deliberate checkpoints. I could use the speed while still looking closely enough to catch inconsistency before it spread.
The same principle applies to the team. Leaders do not need to make everyone adopt AI at one prescribed pace. They need to create enough space to notice how people are responding, where understanding is thin and when a seemingly efficient process is leaving somebody behind.
AI has changed how quickly we can move from an idea to an implementation. It has not taken responsibility for what happens between those points.
It can generate the code, but it cannot decide whether the structure will serve the team a year from now. It can suggest the next task, but it cannot tell whether the person completing it feels confident or quietly lost. It can produce an answer in seconds, but it cannot know when the room needs another minute.
Member discussion