Why did you write this book?

In my career as a teacher and consultant, I’ve seen many good languages, tools and methods adopted. But none had the impact on software we’d hoped for. I came to realize that there’s one thing that makes for great software: conceptual clarity in the design. So I’ve spent the last 8 years developing a practical approach to conceptual design, and this book is the result.

Is this a practical book or a theoretical book?

It’s both. I’ve structured it in two parts. The first is a series of short chapters, focused on examples drawn from familiar apps, which explain the key ideas and principles and show you how to apply them. The second is a collection of free-standing ’explorations’ that delve more deeply into design subtleties and explain how concept design relates to everything from data abstraction to design thinking.

Who should read it?

The book is aimed at anyone who creates software—programmers, software architects, program managers and UX designers; at anyone who guides its development—VCs, CTOs, startup founders, marketers, analysts and consultants; and at all of us who would like to have a deeper understanding of the software we use every day.