When the first GenAI coding tools emerged, there was a great sense of excitement among developers that their jobs would become significantly easier. This feeling, however, quickly gave way to enormous pessimism, with developers becoming skeptical about the effectiveness of these flashy new tools, raising concerns about the quality of, and number of bugs in, AI-generated code.
Fast-forwarding a couple of years, such concerns have largely subsided, as GenAI is widely viewed as an essential coding companion by more than 90% of software engineering teams. By automating routine tasks and debugging, improving code quality and freeing developers from the mundane to focus on the logic, “vibe coding” tools like GitHub Copilot, Cursor and Devin can dramatically boost productivity.
The question is, however: how is productivity measured? As GenAI pumps out unprecedented amounts of new code, organizations are seeing new problems emerge. Misalignment between teams is causing untold friction, with code replication and regressions undermining progress, leading organizations to adopt a new type of skepticism towards GenAI.
Increased Productivity, More Confusion
These problems were recently highlighted by Tammuz Dubnov, CTO and co-founder at AutonomyAI, a company utilizing contextual AI agents to increase team productivity as a whole through coordinated frontend development.
“While GenAI helps individuals code faster, it doesn’t help teams work together better,” Dubnov wrote. “In fact, without coordination, GenAI can amplify misalignment — increasing inconsistency, duplicating logic, and obscuring architecture.”
The misalignment caused by the rapid adoption of GenAI is not inconsequential. Dubnov cites a study by Arc that shows how developer teams using such tools report a 39% increase in code churn – or the frequency of changes made to a codebase – which suggest problems regarding the stability of software. Moreover, a GitClear report found that code duplication has increased by ten-times since 2023, and declined in overall quality.
The statistics raised by Dubnov argue that while GenAI helps developers create code significantly faster, it does little to aid communication or coordination, leading to significant friction that ultimately undoes the individual productivity gains it delivers.
Dubnov also notes the shortcomings of “vibe coding”, arguing that while it generally works well for new projects, as there’s no existing code to integrate with and no test suites to break , it only works until projects grow in complexity, creating new bottlenecks. For instance, bug reports could reveal that users are accessing admin-only functionality, which would mean that the generated logic failed to include authorization checks, and no tests were written to catch this, meaning no one inspected the generated code closely enough.
“As the team investigates, more cracks appear,’ Dubnov explained. “Naming is inconsistent. Business logic is tangled with UI glue code. Reusable components were rewritten from scratch. One patch breaks another. Confidence in the feature drops, and trust in the AI workflow erodes.”
This is why Dubnov stresses that AI can be a powerful lever, but it’s not a silver bullet.
PACT: A Framework for GenAI Transformation
According to Dubnov, this friction can be overcome by GenAI itself. Employed correctly, GenAI can improve coordination across teams by streamlining how they communicate and providing insights that can aid in faster decision-making.
To achieve this, team leaders must to adopt an “AI-native” strategy, which Dubnov outlines can be done through “PACT” – a framework for integrating GenAI into every step of the software engineering workflow
PACT stands for “Product-facing work, Architecture hygiene, Communicating logic, and Task definition improvement”, and provides a detailed blueprint for organizations to eliminate the friction caused by rapid GenAI deployment.
“The PACT model breaks down how GenAI can enhance every phase of engineering,” Dubnov explained. “Not just coding, but planning, collaboration and delivery. In the frontend, this means reusing consistent components — not rebuilding buttons or modals from scratch. This improves visual consistency, simplifies QA, and accelerates delivery.”
By using GenAI to communicate logic in natural language, developer teams can explain their backend flows and map complex behaviors to help stakeholders better understand their applications and systems. This reduces the amount of mistakes made from miscommunication, enables faster onboarding of new team members, and shows QA teams exactly where they need to focus their efforts. Task definition improvement relates to how GenAI can be used to “detect edge use cases, surface validations and break down implementation into testable steps”.
Dubnov argues that each of these aspects reinforces one another. For instance, improved logic visibility will enhance the process of task definition, resulting in better tickets that translate into features that are safer and shipped out faster. Stop Vibing, Start Engineering
Implementing GenAI into development workflows requires a shift from vibe coding to “vibe engineering” – not only generating code, but also defining its behavior, specifying its constraints and orchestrating specialized agents.
According to Dubnov, vibe engineering enables AI to go much further and understand the architecture and reuse components in a more intelligent way, so that the newly-generated code doesn’t just work, but also fits, with tests bundled in from the start, patterns respected and secure defaults assumed.
“The result is software that evolves cleanly, and a development process that scales without breaking,” Dubnov says. “This is the core of vibe engineering: moving from improvisation to orchestration. You’re not writing every line — you’re designing the system that writes it, checks it, and future-proofs it.”
Doing this requires developers to become more of an “orchestrator” than a code author, and that means changing the way they think about the overall system. For example, rather than just solving tickets, they need to ask what part of the system should evolve to support the changes they’re making. And instead of just generating code, developers should first codify the rules they want the AI to follow, which is done by defining the architectural standards, style conventions and workflow expectations.
As orchestrators, developers should also direct the AI towards component reuse whenever possible, while also encouraging it to evaluate and improve whatever it touches and track these changes. “If it identifies duplication, tight coupling, or outdated logic in reused components, it should flag and upgrade them accordingly,” Dubnov explained.
Final Thoughts
GenAI has transformed the way developers go about producing new code, dramatically accelerating their productivity, with both positive and not-so-positive outcomes. But if organizations want to harness the power of coding automation efficiently, they need to stop thinking about how GenAI accelerates work, and focus on how it impacts the way teams are structured and coordinated.
With approaches like PACT and vibe engineering, organizations now have a blueprint for adopting a truly AI-native software development framework, which is key to realizing the full benefits of GenAI.