A feature started with an AI-generated prototype that already worked and covered most requirements. Despite this, it was not used further due to limited transparency and trust in the implementation.
A manual rewrite followed. It improved structure and integration, but took longer and initially lacked functionality that had already been present in the prototype. Missing parts had to be rediscovered and reimplemented.
As development continued, AI was used again for additional components. These worked as expected, but manual refinements introduced regressions. Improvements in one area caused issues in another.
Closer to the deadline, AI-assisted coding accelerated progress significantly. The feature was completed on time, but testing revealed multiple issues. The implementations were mostly correct—the underlying assumptions were not.
The key lesson is simple: humans introduce errors in requirements, design, and decisions—and AI cannot fix what is fundamentally defined incorrectly. It can only execute those mistakes more efficiently.
Traditional manual development has an important side effect: while implementing, inconsistencies and gaps in requirements are often detected naturally. This friction acts as an implicit validation step. With AI reducing that friction, these issues can remain hidden longer and surface later.
At the same time, AI can support more than implementation. It can be used to verify requirements, challenge design decisions, and validate assumptions across all artifacts early in the process.