AI Makes Coding Cheap. Requirements Are Now the Bottleneck
A recent article by Geoffrey Huntley argues that software development is becoming extremely fast and cheap because of AI. That observation is correct. Code that once took days can now be produced in minutes. Entire features can be scaffolded almost instantly. But this is only half of the story.
A Chief Engineer’s Intuition: Why “Build Integrity In” Is Still the Standard for Excellence in 2026
In my article series, we have now journeyed quite a great deal through the tactical and strategic landscapes of lean software development. In my previous articles, we explored the discipline of “Eliminating Waste,” the curiosity of “Amplifying Learning,” the strategic patience of “Deciding as Late as Possible,” the operational imperative to “Deliver as Fast as [...]
Use Cases vs User Stories – Same Content, Different Outcome
In many discussions, I hear the statement: “Use Cases and User Stories can contain the same information.” At first glance, this sounds reasonable. Both describe requirements. Both describe behavior. Both are used in modern software development. But what happens if we take a real, non-trivial example and try to express it in both forms?
Why Self-Contained Systems Are a Perfect Fit for AI-Driven Development
AI is rapidly changing how we build software. Many teams already use AI to generate code, write tests, or analyze changes. Yet, despite all this progress, there is often a feeling that AI does not fully deliver on its promise. It helps, but it does not feel reliable. It accelerates some tasks, but slows down [...]
How I solved SMTP Timeouts with Mailpit and JavaMail
When I started testing email sending in my Spring Boot app with Mailpit and Testcontainers, I ran into a frustrating problem: sending mail locally to localhost often hung for many seconds before failing.
A View Is Not a Table: It Is a Controlled Integration Contract
The recent article “Your Database Table is an awful API” claims that exposing database tables (or database-derived structures) as integration boundaries between systems is a bad idea. It warns about tight coupling, hidden dependencies, scalability bottlenecks, and unclear semantics. (innoq.com)
Two Flavors of Spec-Driven Development and Why I Clearly Prefer One
Spec-Driven Development is becoming popular, especially in the context of AI-assisted software development. But when I look at what people mean by it, I see at least two very different interpretations. Both use the word “spec.” Both integrate AI deeply into the workflow. And yet they optimize for very different things. Over the last months, [...]
Why Vaadin and jOOQ Are a Natural Fit for AI Driven Development
Over the last two years, I have been working heavily with AI-assisted and agent-based development. One observation keeps coming back: the choice of technology stack matters far more than most people think.
Component Models Matter: Why UI Development Gets Faster with the Right Abstractions
When developing business applications, the discussion around productivity often focuses on backend frameworks, persistence, or architecture. Yet one of the biggest productivity factors sits in a different place: the UI layer. In practice, the speed and quality of UI development depend heavily on one thing: the component model provided by the framework.
Business Use Cases vs System Use Cases
The term “use case” is widely used in software development, but not always consistently. Teams often mix different abstraction levels when writing them, which leads to confusion and weak traceability. To clarify the discussion, it helps to start with the formal idea of a use case and then distinguish two important variants: Business use cases [...]
Why Spec-Driven Development Can Be Iterative, Incremental, and Agile
Whenever I talk about AIUP and Spec-driven Development, I often hear the same concern: “This sounds like Waterfall.” That reaction is understandable. For many developers, words like requirements, specifications, and process are emotionally loaded. They remind us of big documents, long phases, and software that was already outdated before it went live.
The Age of ReDevTest: Why Requirements Matter More Than Code
For many years, software development was code-centric. We wrote requirements, then quickly moved to implementation. Tests helped, but code was the real source of truth. AI changes this completely.


