|
The Naked Truth About Business Systems
The following is an abbreviated version of an article that appeared in the Spring/Summer 2002 edition of CSC World.
By Richard Pawson
Object-oriented software has not lived up to its promise.
Object-orientation was supposed to give us business systems that were much more agile, allowing organizations to enhance their day-to-day operational agility as well as their ability to make strategic adaptations to market changes.
Over the last decade, object-oriented techniques have been gradually working their way into business systems development, and some of the promised benefits are slowly beginning to show.
Several of us involved in object-oriented design, however, have speculated that the reason these benefits have not been as substantial as promised, or as quickly realized, is that the principles of object-orientation were being diluted with traditional techniques and technologies.
Three years ago I set out to prove not only that a purer form of these principles would do a better job of fulfilling their original promise, but also that this could be a practical approach for commercial IS organizations. The result of this work is an approach called "naked objects."
Naked objects
The name naked objects has raised a few eyebrows, but it accurately describes how object-oriented systems development treats business objects. The naked objects approach requires a 1:1 correspondence between the business objects -- such as customer, product, and order -- that users manipulate on the screen and those in the middle tier of the architecture.
That is, business objects must show directly through to the user, instead of being "clothed" in the menus, scripts, and dialogue boxes of a conventional user interface.
Using the Naked Objects framework, the screen representation is automatically generated from the core business objects, without writing a single line of code for the user interface. All the programmer does is specify the business objects themselves: their attributes, their associations with other objects, and the business methods they can fulfill.
When the object definitions are compiled and run, a part of the toolkit known as the viewing mechanism automatically translates an object’s specification into its screen representation. Individual objects show up as icons, which can be dragged and dropped, or "opened." This viewing mechanism is truly business agnostic.
With the Naked Objects framework, there is simply no way to provide the user with any functionality except as a behavior encapsulated into an object. When developing a system, designers would learn which behaviors to encapsulate into an object by asking questions such as, "What actions would you want to take with this object?" and "Where might you want to drop this object, and why?"
Business rules are written into the business objects themselves. If Object A cannot be dragged onto Object B, it will instantly flash red to indicate that the action is not permitted. Holding the cursor there for a moment longer will bring up an explanation of why it is not permissible. Right-clicking on an icon brings up a menu list of the actions the user can take.
Several of the actions may be grayed out, indicating that they are not permissible with the object in its current state. Again, holding the cursor on the menu for a moment will bring up an explanation.
The result is a user interface that better matches the way most people think about the tasks they are performing. It empowers them to solve problems rather than follow procedures.
Increased agility
The naked objects approach leads to more agile systems development and more agile business systems. The approach improves communication between user and developer, because the naked objects themselves form a genuine common language between the developers and the actual end users of the system.
This common language makes it a lot easier for users to become involved in the design of the system, which is one of the tenets of most modern development methodologies. It also helps speed up development, as does the reduced time required for writing code and the reduced need for documentation.
Systems built from naked objects promote business agility in two senses. They enhance operational agility by giving users the ability to solve the problems that arise in the day-to-day running of a business.
Over the long run, these systems also increase strategic utility by making it easier to accommodate future business changes: changes to product specifications, the organization chart, internal rules and external regulations, business processes, and relationships with other organizations.
Most of us find that those changes are becoming increasingly frequent, which makes strategic agility increasingly urgent.
Richard Pawson is a research fellow at CSC Research Services.
Related Information:
Contact Us and Let Our Experience Help You Produce Results.
Read about CSC’s Enterprise Solutions offerings.
|