The central argument of this book is that the flexibility and extensibility - the freedom from doing things in one specific way - offered by object orientation should not be for developers only, but should be extended to the end user of the information system. A system created in this way - an expressive system - not only allows, but encourages the user to experiment and increase what the system, and the user, can do.
In the first of its five chapters, the authors take a critical look at object orientation, showing its history and arguing that much of the expressiveness offered by the early implementations (such as Smalltalk) has been hidden from users - and that systems now are written to automate deterministic processes. The authors, building on long experience, builds an argument for a different approach, and illustrates this with a detailed and very informative case of a real, fairly large-scale system. The second chapter outlines the Naked Objects framework - detailing the philosophy of defining a few core objects and the role of the user as a creator of relationships between them. (The implementation of this framework is freely available from the authors' web site. In fact, the whole book is available there.) A detailed example of a travel booking system is used to demonstrate how to develop with the tools and the philosophy proposed.
The third chapter, aimed at programmers, goes into more detail about the framework and how to work in it. The casual reader may skip this chapter but a developer will find enough meat here to create a real system. A short case study at the end of the chapter gives a "how to" on how to define the central objects of a new system, and how the interaction between developer, users, and requesters can be done.
The fourth chapter is about the development process, going into detail about how to recognize which objects are important (there are seldom more than a few), providing excellent advice and relating this approach to other current tools and techniques. Again, a short case at the end illustrates the concepts.
The final chapter discusses how the Naked Objects framework can be extended and gives a final case study of an energy trading system for a Fortune 500 corporation. Three appendixes provide technical detail and some "clichè code" to cut and paste.
I find this book to be an extremely important contribution to the field of information systems and systems development, particularly for systems for people whose job it is to "solve problems". The book provides not only the argument for building systems that encourage creativity and imagination in problem solving, but also the tools to do it. It does for systems development what Stewart Brand's "How building learn" does for architecture: Shows you how to build artifacts that allows and encourages new ways of doing things, safely, rather than force you to adapt your way of working and living to the notion of the architect at one specific point in time.
Shoshana Zuboff, in "In the Age of the Smart Machine", distinguished between systems that automate and systems that informate - make the users smarter. Naked Objects is a recipe and a toolkit for building informating systems. Read this book, use its concepts - and build systems where the user controls the system rather than the other way around.
Disclaimer: I have known one of the authors, Richard Pawson, for some years, and worked with him until 1999, when he took an interest in systems development and I did other things.