News

From Vibe Coding to Requirements Engineering: The New Face of Prompt Engineering

2026/02/13 3 min read

Share
From Vibe Coding to Requirements Engineering: The New Face of Prompt Engineering

Pedro Sousa, Head of Enterprise Architecture at Link by Linkroad
Original Article PT: tek Sapo

 

Drawing from his experience, Pedro Sousa states that the higher the quality of requirements, the simpler, more predictable, and more effective the code generation produced by AI agents becomes.

For decades, application development followed a relatively stable path: it began with defining the intended behavior (the requirements) in natural language and ended with source code written in a programming language — a precise and unambiguous description that a machine could execute.

Over time, we started skipping steps to reach code as quickly as possible, because that’s where value seemed to materialize. Today, with artificial intelligence, the so‑called “vibe coding” has emerged. We describe what we want in a handful of sentences, interact briefly with an AI agent, and — almost magically — source code appears, in virtually any programming language. It works, and it’s impressive, but clearly, because so much remains unspecified — from detailed requirements to analysis and design — this approach is unlikely to scale beyond small personal‑use applications.

Still, it makes us wonder: sooner or later, will natural language become the programming language? On that day, “programming” will mean describing in natural language what we want the application to do, without ambiguity or contradiction — something many argue is impossible due to natural language’s inherent nature. Perhaps. But that is precisely what requirements engineering has always aimed to achieve.

And it is in requirements engineering that, even today, we can benefit most from AI in application development. Let me share our experience modernizing legacy applications — where the goal is to transform old applications into equivalent ones with better technologies, improved user experience, and above all, lower operational and maintenance costs.

Instead of using AI to directly generate the new application’s code from the legacy code — the path many attempt — we chose to follow the classical software development approach step by step, beginning with requirements engineering. With AI agents acting as abundant “workforce,” there is no longer an excuse not to do things properly.

To uncover the requirements of the legacy application, we observe how it is used in daily operations by recording user sessions and cross‑referencing this information with the analysis of the existing source code. Then we validate these requirements by interacting with the legacy application itself, looking for inconsistencies between what was described and what actually happens.

All of this is executed with AI agents working automatically. The generation of the new application’s code — also based on AI — then follows a completely predictable development process.

The experience I want to share is simple: the higher the quality of the requirements, the simpler, more predictable, and more effective AI‑based code generation becomes. We are not yet “programming” in natural language, but we are clearly moving in that direction.

There are no magic shortcuts here. We evaluate the requirements using eight quality indicators and only move forward when they reach a minimum acceptable level. Every ambiguity or contradiction ignored will inevitably resurface later, during code generation or — worse — in production.

Perhaps the biggest benefit of having every step well‑documented appears in the application’s evolutionary maintenance. The exhaustive and detailed traceability between requirements and generated code enables AI agents to focus and minimize their work when requirements change. This makes a world of difference in large applications — far too large to fit within an AI agent’s context window. In fact, with today’s agent technology, documenting all steps is the difference between successfully maintaining large applications with AI or failing completely.

In my opinion, what comes after “vibe coding” is a return to the beginning: Requirements Engineering. Because with clear requirements and AI, everything else becomes easier.