UI logo
The Webzine for Interaction Designers
uidesign.net
 
     
Page 1
Book Reviews
Feb 99 Book Review
Object Oriented Project Management with UML
buy this book now
by Murray Cantor, Wiley, 1998
ISBN 0-471-25303-0
Practical Analysis & Design for Client/Server & GUI Systems
buy this book now
by David A. Ruble, Yourdon Press, 1997
ISBN 0-13-521758-X

Read the Author's Feedback to this review

UI in the Bigger Picture

This month we take a look at two recent books about building large software systems which both discuss User Interface Design and how it fits into the bigger picture of software development.

The books in question are not directly competitive. The first, Object Oriented Project Management with UML, by Murray Cantor is a book about building a project: a team and a process in order to build a large software system. The second, Practical Analysis & Design for Client/Server & GUI Systems, by David A. Ruble, is much more about system architecture. So in effect these two books are complementary. One tells you how to manage the analysis, design & construction and the other tells you how to go about analysis & design for front and back end systems.

Both books talk about User Interface, thankfully. So there is at least recognition that User Interface Design is important to the delivery of large software systems. So do these books arm you with what you need in order to deliver an attractive, intuitive, usable piece of software which meets functional requirements and minimises defects in User Acceptance Testing?

Object Oriented Project Management with UML

by Murray Cantor, Wiley, 1998

Cantor, we are told, has 10 years experience managing software development and after reading this book, I have no reason to doubt it whatsoever. This is as good a book on project management generically as ever I have read. Cantor walks us through the task of building a project: a team of people with diverse skills and a set of processes which will deliver a large software system. Early reference is made to Fred Brooks, "The Mythical Man Month" - always a good sign.

Despite the title referring to "Object Oriented", he quickly moves on to use the phrase Object Technology. A good indication that he's been doing this for real. We are walked through the basic principles involved in an OO system and warned of some of the dangers. We are introduced to UML as a common language for communicating the design as the first chapter bounces between technology issues and psychology issues. We hear about communication problems and about Product Teams of developers led by a chief programmer. There is an excellent section on team formation and the phases of behaviour - Forming, Storming, Norming, Performing.

The second chapter takes us into the land of UML and Rational Unified Process (RUP). We are introduced to Use Cases and Use Case Diagrams as a form of describing the requirements. As we move into the area of User Interaction, however, we hear nothing about UI Design. In fact UI Design doesn't get a mention until page 156. Half way through the book.

Architecture

In the first half of the book we hear about basic packaging of sub-systems. According to Cantor, this has to be done first, before you write the first schedule and before you start to properly analyse the requirement. We hear about design patterns for OO Modelling and attributes of a good OO Design. This is a pretty sound section and he correctly points out that keeping the code and design in synch is a real problem which needs solving.

Chapter 3 moves onto problem solving and gives us a description of the 4 basic phases which he uses to structure the book: Inception, Elaboration, Construction and Transition. An analysis of life cycle models is given and controlled iterative life cycle is chosen as the way to go forward. All good stuff. On page 100 we get a gant chart displaying the controlled interaction model, including User Level Use Cases, High Level Package Diagrams, Development Level Use Cases, Class Diagrams and so on. "Where is UI?", I hear you ask.

Process

Chapter 4 takes us away from architecture and into process. We hear about Capability Maturity Model (CMM), Software Development Plans (SDP), Work Breakdown Structure (WBS), scheduling, planning and Product teams. Superficially, this all seems very sound stuff, but I began to wonder. It all began to get a bit fuzzy. Product Teams are assigned to packages and product teams are given tasks from the Work Breakdown Structure, which we are told should be of around 3 months duration and tracked on a Gant Chart. But what is the basic unit of work? The Use Case. We also heard that Use Cases are no respectors of packages and that they often span packages. We also heard that a Scenario is a single pass through a Use Case and that several Scenarios can come from a single Use Case. So how are we tracking these smaller grained tasks and how do we resolve the issue of the Use Case across the packages? There is some mention of Product Teams to solve this problem using the Chief Programmer from each of the Package Teams but it is never totally clear.

Throughout the book, we are guided by a worked example of a Military Flight Simulator problem. It would be nice to think that such a system had been built with the process described. Realtime systems like the one described are a hard problem for OO Design and a hard problem to describe in Use Cases. However, I failed to be convinced.

Inception

Chapter 5 is titled - "Managing the Inception Phase". So we are finally ready to start, after 165 pages. User Interface gets an early mention as we begin to talk about requirements.

Cantor correctly observes that most customers give you a design rather than a requirement. How often have you heard, "We need a workflow system." or "We need a Lotus Notes system."? He fails to state the obvious which is - make the Customer state the requirement - don't accept a design as the requirement. Though he does say that suggesting alternative designs is a good idea.

He fails to point out that the requirement is to be written as Use Cases and they are a design - they describe the User Interaction with the System. They are the User Interface Design.

Although he doesn't say so, he does know that this is a problem and suggests the solution is to introduce the UI Designer early and to prototype the UI. The prototype UI is then used to refine the UI design before the requirement is signed off by the customer.

Suddenly I began to phase out again. Is it truly possible to design the whole of the UI for a big system and get it signed off before development starts? Surely not. Maybe we are talking about small systems - but this is a book about big projects!

I found his next suggestion surprising. He proposes putting a UI Designer in each Product Team which has a UI requirement for their package. Good work for all us UI Designer, I hear you cry. Then he suggests that a committee of all of these guys plus a Domain Expert and the lead Architect co-ordinate the UI Design so that it is consistent across the project. Hmmm. This breaks one of the golden rules from Fred Brooks, "The Mythical Man Month" - only one Architect!

The definition of Usability on page 179 is surprising to say the least.

  • Is usable. Can the use cases be executed, and have the stated performance requirements been met?
  • Promotes user efficiency. Does the system meet unstated but essential performance requirements?

A little lightweight for my taste.

There is some excellent stuff on leadership in Chapter 6. Have your manager read it. The one that I thought was missing is

  • A development manager needs to absorb the uncertainty which exists around the project and insulate the team from it.

Elaboration

Around page 210 the book moves into elaboration of the Use Case design and we hear about top-down and bottom-up UI Design. CRC cards are used for bottom-up design. They have been shown not to scale to large system, so again I was left wondering, if we are talking about small projects

During this phase, we again hear about refining the User Interface and refining the Use Cases to keep them in synch with the UI. But what if the Use Case concerned has been built already?

Next we hear about packaging and class files. Earlier we had heard suggestion that the UI be prototyped in Java but Cantor shows that he knows little about it when he fails to point out that in Java every public class has its own file.

Elaboration concludes with a Design Review. Strangely User Interface comes almost at the end of the review but we earlier heard that it was the input to the Use Cases. This just didn't make sense.

Construction

Chapter 7. moves us onto construction and talks about managing scope and assigning development priorities. It talks about features without clearly defining it. Is a feature a Use Case? Surely a feature is a Scenario - a path through a Use Case. We are told that we should prioritise Use Cases using a 2x2 grid. This is an excellent technique for defining the Risk vs Priority. We are not really told how to define the customer priority for a feature. Nevertheless, this is an excellent section and there is some sound advice.

Finally Cantor comes back to Leadership and describes how to be a "Low Pass Filter" to absorb that uncertainty I was talking about.

On page 259, we finally read about User Interface Development. It takes him all of 10 lines to say all that there is about this topic. It's far too light. Are we building Use Cases, Scenarios, Features, Classes? How do we go about it? How does it fit with the other parts of the system? How do we get incremental build testing? How do we model the UI Plumbing and connect it to other classes? None of this is addressed. MVC or Model-View separation doesn't get a mention.

Transition

That's it for UI. The book finishes with a sound discussion on User Documentation, Testing and Rollout issues.

Summary

320 pages, 1" thick. An excellent book on Software Project Management, Team Leadership, Psychology in both software development teams and customer to team relationships. An insufficient book on how to manage a big OO project and too vague on how really to deal with Use Cases. The book gives me the impression that Cantor has managed some large projects but none of these were OO. He tries in the book to scale small size OO techniques up to large projects and the whole thing fails to gel together. It's also a very poor book on how UI fits into the big picture. Gives me the impression that the pieces on User Interface were grafted on later and that the author doesn't fully understand it. No surprise there.

Recommendation

3/5 - Don't waste your own money. If you're a developer, get your boss to buy it. If you're a UI Designer, forget it.

Page 2 >>

uidesign.net
hosted by likk.net
           
 
Copyright uidesign.net, 1999 - 2003.
The UI logo device and uidesign.net wordmark are trademarks of uidesign.net