One Query, Complete Object Graphs: Nested DTOs with jOOQ MULTISET
In my previous post about Open Session in View, I explored how this default Spring Boot setting can hide serious performance problems. The N+1 query problem sits behind a system that looks correct in development, but breaks down under real production load. Suddenly, you see 701 queries where 1 would be enough. Today, I want [...]
The Hidden Performance Killer: Understanding Open Session in View in Spring Boot
If you’ve ever wondered why your Spring Boot application feels sluggish under load despite appearing to work perfectly during development, there’s a good chance you’ve encountered the Open Session in View (OSIV) anti-pattern without even knowing it.
An AI-Ready Architecture for Business Applications
Agentic AI is changing how we build software. AI is no longer just a helper that writes small code snippets. It can reason about requirements, generate larger parts of a system, validate behavior, and keep code consistent over time.
Spec-driven Development is not Task-driven AI
Spec-driven development is suddenly everywhere. Many AI tools claim to support it, and many teams say they are already doing it. But when I look closer, what I often see is something very different. The typical flow looks like this: requirements -> plan -> tasks The requirements are quickly translated into a plan, and the [...]
Why User Stories Are a Poor Fit for Spec-Driven Development
User stories are popular in agile teams. They are short, readable, and focused on user value. For many teams, they help with planning and coordination. However, when the goal is Spec-driven Development, user stories show serious limitations. They push teams to create plans and task lists before the real requirements are clear. This makes them a [...]
The Human Perspective: Why “Empower the Team” is a Definition of Success in 2025
The fifth chapter, Empower the Team, is arguably the linchpin upon which all the other Lean principles depend. In the conclusion of my previous exploration of rapid delivery, I noted that a team’s speed is not achieved by working harder, but by systematically designing a process for the team that flows. But who designs that [...]
SPAs Are the New Client/Server Applications
Single Page Applications promise modernity. But in reality, they bring back all the classic client/server problems. With Vaadin, we can avoid them.
Deliver as Fast as Possible: Why this Imperative is more Critical than Ever
In their book, Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck present rapid delivery not as a reckless rush to the finish line, but as a strategic capability that unlocks immense business value for you and your team, and enables the other principles to function effectively.
Why Vaadin Is Perfect for AI-Driven Development
AI-driven development is changing how we build software. Instead of writing every line of code by hand, developers increasingly use AI tools and agents to generate, test, and even maintain applications. But to turn this into real business value, you need a secure technology stack.
The Power of Intelligent Patience: Why We Should “Decide as Late as Possible”
In today’s world of software development, the pressure to make fast decisions can significantly weigh on you and your team. And conventional wisdom often dictates that early decisions lead to clear plans and predictable outcomes. However, in their groundbreaking book, Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck challenge this notion with their [...]
Spec-Driven Development with AI: A New Approach and a Journey into the Past
The software development world is buzzing about AI-assisted coding. Tools like GitHub Copilot and Claude Code promise to make us more productive. But most approaches focus on generating code faster – they’re still code-centric. What if we took a different approach? What if we made requirements the source of truth and let AI handle everything downstream?
Amplify Learning: An Up-to-Date Look at an Important Principle of Lean Software Development
Every project is different: Software development, at its heart, is less like assembling a predictable machine on a factory line and more like navigating uncharted territory. The inherent uncertainty in software development journeys is addressed by the second principle of Lean Software Development: Amplify Learning.


