The Living Specification

Spec-Driven Development for Product Engineering

Author

Alexander Miertsch

Published

July 17, 2026

Preface

Thank you for picking up this book.

If you’re anything like me, you’ve probably spent quite some time thinking about software engineering. Maybe you’ve gone through different methodologies, experimented with architectures, discovered new modeling techniques or simply learned through years of building software with other people.

I certainly did.

Over the last fifteen years I’ve been fortunate to work with many ideas that fundamentally changed how I think about software. Domain-Driven Design taught me that software should speak the language of the business. Event Sourcing showed me how business events can become the backbone of a system. Event Storming and later Event Modeling demonstrated how quickly people with different backgrounds can build a shared understanding when conversations are structured around those events. Team Topologies reminded me that software architecture and team communication cannot be separated. They continuously influence each other.

None of these ideas exist in isolation.

Each solves a different part of the same problem.

Looking back, I think that’s what fascinated me most. Every time I learned something new, it wasn’t replacing what I already knew. It became another piece of a much larger picture.

This book is my attempt to connect those pieces.

It isn’t a book about Domain-Driven Design.

It isn’t a book about Event Sourcing.

It isn’t a book about Event Storming.

It isn’t a book about Event Modeling.

And despite the many screenshots, examples and workflows, it isn’t really a book about prooph board either.

Those are all important topics and we’ll discuss many of them throughout the following chapters. But they’re means to an end.

The real subject of this book is how software teams can create, preserve and continuously evolve a shared understanding of the systems they build.

For many years, I thought this was simply good engineering practice.

Only recently did I realize that it had become something much bigger.

As AI agents entered software engineering, many discussions started revolving around prompts, context windows and code generation. Those topics are certainly important, but I couldn’t shake the feeling that they were addressing the wrong bottleneck.

Writing code is no longer the difficult part.

Understanding what should be built has become the scarce resource.

That’s where specifications suddenly moved to the center of software engineering.

Not as static documents written at the beginning of a project and forgotten afterwards, but as living artifacts that continuously evolve together with the software itself.

That’s what I mean by a Living Specification.

Throughout this book we’ll explore how specifications can become much more than documentation. They become design tools, communication tools, planning tools and eventually the shared language between humans and AI agents.

This book is written for engineers who enjoy understanding problems before implementing solutions.

It’s for product engineers, architects, Forward Deployed Engineers, technical founders and everyone who believes that software should remain understandable and adaptable long after the first release.

If you’re primarily looking for prompt engineering techniques or the fastest way to generate more code with AI, this probably isn’t the right book.

If, on the other hand, you’re interested in building software that remains easy to reason about as it evolves, I hope you’ll find ideas here that challenge your own way of thinking.

One final note before we begin.

I don’t expect you to agree with everything I write.

Software engineering has taught me to be suspicious of absolute truths. Every system is different. Every team is different. Every organization has different constraints.

Read this book as an invitation to think.

Keep what helps you.

Question what doesn’t.

Adapt the ideas to your own context.

If, by the end of this book, you find yourself asking better questions before writing software, then it has achieved exactly what I hoped for.

Welcome.