UI logo
The Webzine for Interaction Designers
uidesign.net
 
     
Book reviews
Sep 99 Book Review
Software for Use
Inmates Cover  
by Larry Constantine & Lucy Lockwood, Addison Wesley, 1999
ISBN 0-201-92478-1
Methodologies for the Millenium - Part 2

So on to another heavyweight book to appear this year advocating a complete lifecycle methodology for UI Design. As I stated in July, I would be reviewing this book and here it is. It takes a different approach from the Mayhew book. The background of the authors is different. Larry Constantine already enshrined his place in the software hall-of-fame when he co-authored the seminal text Functional Design in 1978 which represents a milestone in the software engineering discipline. 7 years in the making would this new book be setting another such milestone? I had to find out!

Software for Use

a practical guide to the models and methods of usage-centered design

by Larry Constantine & Lucy Lockwood, Addison Wesley, 1999

Before I got around to reading this book, one of my colleagues - a big fan of Alistair Cockburn's Goal Oriented Use Cases, borrowed it over a weekend. He came back with a glowing review, "Must have for all software engineers. The first book to persuade me that UI Design is important." I knew that we must be on to something but my first glance through wasn't encouraging. 532 pages with not as many diagrams as I might like. Quite a lot of Use Case Diagrams and with the authors background, I expected that I was in for a weary read about system plumbing and a slightly Interaction glazed version of OOSE/RUP/UDP.

My expectation was to prove wrong. This really is a book about Requirements Modeling and Interaction Design coupled with the engineering lifecycle and its a good book too.

Usage-centered Design

You immediately realise that this is an unusual book when you see the acknowledged list of reviewers. It includes top names from both the OO and UI worlds such as Meilir Page-Jones and Rebecca Wirfs-Brock from OO and Hugh Beyer, Ian Graham and Karen Holtzblatt from UI.

The theme of the book is to document the process used by the authors in their consulting practice. This process known as Usage-centered Design has evolved over the last 10 years or so. The first 60 pages sell the business case for the process and good Interaction Design in general, along with an overview of the technique. The rest of the book then goes into the detail. It was this first section which my colleague found so compelling.

Models and more Models

As the preface suggested, I skipped to section 2 and started to read about the real detail. The first impression is that there is a lot of modeling going on and several new terms for different models. The User Role Model, the User Role Map, then classification and structuring of them. This is basically Actor analysis for those familiar with Use Cases. We then move on to Task Modeling, using Essential Use Cases. This is key leading edge stuff. The authors recognise, as I did in my February IMHO that conventional Use Cases lead to premature Interaction Design. They have solved this problem by developing an abstract style of Use Case called an Essential Use Case. They demonstrate that it is possible to define the requirements for a system in an Interaction neutral fashion by iterating through Scenario description, to Use Case to the abstract Essential Use Case. Groundbreaking stuff!

However, I am not totally convinced. The problems of rigorous design and specification are not addressed and there is no attempt to link Essential Use Cases with Functional specification. It is unclear how a rigourous and complete UI Design can be built from a set of Essential Use Cases. There is still no attempt to document exception cases for example.

This is followed by a section on Use Case Analysis which looks at inheritance, composition and affinity within Use Cases. This is really pre-Interaction Design analysis which is aimed at picking out the requirements (from Use Cases) which must be grouped together on the screen. A useful interim stage, if you have time. If I had a criticism of this section, its that it is all over too soon. Not enough time is spend explaining and teaching how to do all of this. There are few clues on how to pick out the initial Use Cases and insufficient examples on how to perform the subsequent analysis. That's it for the Requirements and its perhaps just a little disappointing. Now onto the Interaction Design.

Another two models are introduced. The Content Model and the Context Model. These lead to a Interaction Design which can be used to present to the client and for early usability testing but they aren't quite suitable for coding. Later, we here about Implementation Model which is the final link to coding. I really struggled with the terms Content Model and Context Model and I found myself reading this section slowly several times. Then it clicked! Content Model is similar to my UI Analysis stage, and Context Model is what Laura Arlov calls Navigation Model. How you get from one to another is poorly explained but my tip is, UI Patterns might make the ideal link.

In total section 2 covered 80 pages. It contains the foundations of the technique for Usage-centered Design. Be warned this is dry, dry material that will need intense concentration, and a vivid ability to develop the correct mental model of the authors abstract models. Its hard but worth it, if you can make the breakthrough.

Interaction Design, Graphic Design and Guidelines

Section 3 is a pretty straightforward look at Interaction Design. You will recognise much of it from other sources. Its all fairly good though specialist books are better in places. For example, Mullet & Sano will give you more on Graphic Design but there was much to savour here. Chapter 7 had a good argument for text and against icons in amongst some other weaker advice on visual communication. Chapter 8 took a brush through widget libraries and looked at usage of each in turn. This is similar sort of fair to that which I wrote for the Swing book and on the whole its very good. The authors use the opportunity to take a swipe at existing "Guidelines" publications. This has been long overdue. This website is no friend of these books e.g. The Essential Guide to User Interface Design by William Galitz.

Chapter 9 takes a look at innovation in Interaction Design and continues the digs at guidelines books. This is truly a remarkable chapter. I have never seen anyone try to discuss the process of innovation and what makes good and bad innovation, before. One or two claims about experimental interfaces were rather surprising. The ViewFinder example which they claim to have devised circa 1992, is something which I recognised from games circa 1984 ( and I wasn't the first guy to program one of these ). However, that should not detract from what was really an excellent opening discussion on this topic. The UI community needs to discuss innovation a lot lot more.

Completing the Design

Section 4 takes us to the Implementation Model where we learn how to turn our prototype Context Model into something that can be coded. I found some of the argument a little cluttered and I felt that Laura Arlov said it better in GUI Design for Dummies. Chapter 11 offers us 34 pages on writing, specifying and incorporating usable help. This was the first thorough stuff I've seen on writing help requirements and it uses Use Cases too. Chapter 12 is a long a thorough discussion on skill levels and dealing with the issue that most users are perpetual intermediates. Again there is a lot of new stuff here. Chapter 14 looks at applying all that we have learned so far, first to Web Site design and then Embedded System design (e.g. kiosks). This chapter goes a long way to dispelling a lot of myths and many points are well made. Not least that Web Site design is still software engineering, however you want to dress it up. Chapter 15 finally gives us a worked example. This is a relief because the running example, an extended character set selector, throughout the early part of the book is obscure and hard to follow.

Section 5 looks at continuous improvement and quality assurance by introducing the idea of inspections throughout the design process. This will be nothing new to programmers. The concept is that as each of the many models evolves, they are reviewed by a diverse team of peers from each of the areas of expertise. Then there is a section on metrics which includes Constantine introducing a measure on Interaction Cohesion, just as David Ruble did.

Most of the remaining 80 pages or so looks at Usability and testing and writing test plans. With a final discussion on integrating it all into the culture of the business you are working within.

Summary

This is a book about Interaction Design and the Engineering Lifecycle. Surprisingly, it really doesn't attempt to bridge the gap to existing software engineering methodologies. There is no content about hooking UI to Problem Domain or Business Objects. There is nothing about business modeling from the Essential Use Cases and nothing about delivering functionality and functional testing. Much more could be added in these areas.

There is however a wealth of new material and astute observations. Essential Use Cases are interesting if not completely compelling, as is all the analysis and modeling around the topic. This significantly advances the art of requirements engineering but is by no means a final solution to problems in this area. There is some great stuff on help systems and a lot of good well made points about web design and how many misconceptions currently exist about it. This book dispells many myths including those on guidelines.

I also like the material on inspections which is thorough and the metrics such as Cohesion.

Be warned, this is a tough book, its wordy and it talks to a technical audience. That is a double edged sword. The technical audience, Alan Cooper's "homo logicus" are indeed the people who need to read and buy-in to this material. If they do then software systems will get better. Others (Interaction Designers, Usability professionals) may find it too heavy going.

Its a book which had a profound effect to the better, on one of my colleagues, whilst another one finds its disappointing and not recommendable. I believe that it should be given a chance.

Recommendation

5/5 - perseverence is required. There are too many leading edge ideas to score it other than full marks. Advances the state-of-the-art in systems engineering by promoting Interaction Design as an integrated part of the lifecycle.

Order this book...

 

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