Naked Objects
By Richard Pawson and Robert Matthews

A development process

Our experience of applying the Naked Objects framework to a range of business problems suggests that such projects are best conceived and managed in three distinct phases: exploration, specification and delivery. For the specification and delivery phases it is possible to use a range of existing methodologies.

Although many methodologies prescribe or permit some form of exploration, our version is distinctive. What comes out of this phase is not just a better understanding of business requirements and possibilities, but an outline object model that has been tested against business scenarios, through a working prototype. You will see this in action in the following pages.

Specification and delivery are more conventional. During specification, the business requirements are formally specified and prioritized, releases planned, costs estimated, and infrastructural implications identified. In the delivery phase, the system is developed, integrated, tested and released. You could use any modern methodology for this phase, but if you choose XP, Naked Objects will make some of its disciplines easier to realize. Although no code is carried forward from the exploratory prototype, the complete outline object model gives developers more confidence to adopt the strict 'one story at a time' discipline of XP during delivery, knowing that subsequent refactoring will principally apply to methods, not to the object boundaries. And the Naked Objects testing framework makes it easy to apply 'test-first coding' both to unit testing and acceptance testing.

Within each of these phases the activities are strongly iterative. You could also iterate between the phases of exploration, specification and delivery. However this runs the risk of diluting the power of the approach and we recommend that you treat them as three distinct and sequential phases, at least until you have grown comfortable with the Naked Objects approach.