UI logo
The Webzine for Interaction Designers
uidesign.net
 
     
On the soapbox
Oct 99 Editorial
Nov99 Statechart Notation Problematic
Oct99 Use Cases still considered Dangerous!
Sep99 Speed is the essence
Aug99 Architect Designed
Jul99 Legislation - a dream for forced change
Jun99 Sony, offering web access for the masses?
Mar99 Design- in the Kingdom of the Blind
Feb99 Are Use Cases the death of good UI Design?
Jan99 Swinging in the Dark
Use Cases still considered Dangerous!

In February, I concluded that the widespread adoption of Use Cases could lead to the death of Interaction Design. Following the publication of Software For Use, which documents the Usage Centered Design Process, I have decided to revisit the thorny topic of Use Cases and the role they have to play in Software Engineering for the next century.

Constantine and Lockwood have proposed a very simple solution to the key problem with Use Cases which I detailed in this column Feb 99, namely, Use Case analysis leads to premature Interaction Design as a part of the requirements process. Usage Centered Design shows us how to develop first a Scenario describing a Single Path through a work process, abstract that out to a Use Case (the Jacobson definition) then further abstract to an Essential Use Case (the Constantine & Lockwood definition). Essential Use Cases have the Interaction Details removed, thus leaving the UI Designer to interpret them as they please. So everything is OK now?!

Well, NO frankly it isn't!

The second problem I described in February still remains - People! And then you can go on to list another set of identified problems with Use Cases which are more to do with code development and fundamental software engineering than Interaction Design.

People

The problem with people is that there simply aren't enough good ones around to fill the demand for software engineering worldwide. Face it! Its a fact of life. You will work with a lot of people who are out of their depth and very uncomfortable. In an industry that needs professionalism, many of your colleagues will never have read a book since they left college, with the possible exception of API reference materials, or UI Guidelines references.

The importance of People in the Process, Technology, People triad can never be over estimated.

Processes

Use Cases are part of the software engineering process. Processes are developed in order to give humans a framework in which to do their work. A good process is designed to produce repeatable results and will endeavour to save humans for their own humanity. Human beings are not designed to perform repeatedly with reliability. Processes are designed to prevent humans from straying and making mistakes.

Consider for a moment the sport of golf. The world's greatest golfers are the ones who can repeat the perfect shots the most often. Arguably the best golfers are those who are automaton like - the least human. They achieve this standard through constant analysis of their own swing. They spend hours perfecting the swing. They learn to understand all the movements in it and what's involved in repeating it. The swing is the golfers process for hitting a good ball. It is designed to make him perform with reliability and repeatability. To give him that in-human property that can make him win over his more "human" opponents.

Software processes must also be designed to make the industry practitioners perform with reliable and repeatable results. They must help to save them from their own human frailties.

I fail to be convinced that Use Cases can deliver this.

Pick and Choose Methodologies

About 10 years ago, I sat in a church on Christmas night. The minister was giving his sermon when he said, " Christianity is not a Pick and Choose religion". Though arguable, his point was a simple one - you had to follow all the teachings of Christianity to be compliant as a Christian.

You can make this same point about rigorous software methodologies. You can not pick and choose the bits you like from various ones and hope to have a reliable and repeatable solution.

So for example, you may find that your colleagues are advocating Use Cases because Constantine & Lockwood have shown them to be "OK", but if you're not practising Usage Centered Design then it clearly isn't OK. Essential Use Cases are designed to be used as the input to an Interaction Analysis and Design process as part of the whole Usage Centered Design methodology. If you're not doing all of this, then my argument from February still holds true.

Analysis is still difficult

The people problem is even more acute with Analysis. How many truly great Analysts have you worked with in your whole career? How many do you work with now? If its more than a handful then you are truly lucky. Analysis is hard and good analysts are rare.

It is obvious from reading "Software for Use" that Essential Use Case analysis is a difficult task, requiring skill and experience. I believe that teams could learn and develop these skills, particularly if they hire a guru such as Larry Constantine to help. However, for many teams around the world, this will not be possible. The chance, then that their Essential Use Cases are properly developed, is slim.

Use Case is vague term

The term Use Case has now been over used in the industry. Many authors have produced their own variations. Consider the writings of Jacobson, Fowler, Cockburn, Mayhew, Schneider and others. All offer a slightly different definition of Use Case. All offer slightly different claims for what can be done with them.

If you are following the Usage Centered Design methodology and using Use Cases as the requirements for your Interaction Design, then it will be all too tempting for others to hijack this effort and use the expensive to develop Use Cases, for more traditional purposes.

At this point things go awry! All the identified problems with Use Cases will start to haunt your project.

Traditional Problems with Use Cases

  1. Understanding the problem, the business and its rules must happen first. Defining business process, system operating procedures or lines of communication is secondary. Use Cases lead to definition of procedures without proper understanding of the problem domain.
  2. Developing Use Cases with a User Group or Business Analyst group leads to premature interaction design by unskilled practitioners
  3. Its hard to determine the completeness of Use Cases because of their "single path" nature. This can lead to developers using their imagination to complete exception handling cases or rarely taken paths. This can quickly ruin a good Interaction Design.
  4. Use Cases do not lend themselves to OO development due to their nature as procedural descriptions of functional decomposition.
  5. The User Group defining them are required to second guess the future system operation. They find this difficult or even impossible. This leads to new systems which don't make an adequate improvement in operations procedures and can miss the opportunity to simplify a process and remove unnecessary people.
  6. Use Cases because of their procedural nature lend themselves to action-object User Interface designs. If you need or want to have an object-action UI Design (aka OOUI) then Use Cases are a poor foundation.
  7. Use Cases can end up as the repository for the whole requirements. Everything goes into the Use Cases and the Business Analyst group will claim, "the design is done already, now write the code". This is very very bad for Interaction Design.
  8. Use Cases are poor input for Object Modeling. They can lead to poor definition of classes from noun extraction as you may otherwise be hoping to eliminate some of the domain terms used within the object model.

Summary

Usage Centered Design is a rigorous methodology for Interaction Design. I was impressed with the approach of Essential Use Cases. However, be warned! Essential Use Cases are NOT Use Cases as you may have known them. With sufficient skill in Essential Use Cases and following the Usage Centered Design methodology entirely then I believe that they can be useful. Applying Essential Use Cases within more established approaches will almost certainly lead to some or all of the problems listed above!

David

Acknowledgments

Jeff de Luca and Stephen Palmer contributed their thoughts to this article which draws on published work and Usenet postings by Ben Kovitz www.manning.com/KOVITZ ), K. Alexander ( www.ksiinc.com ), Peter Coad, Don Firesmith and Bertrand Meyer.

Feedbackdavid@uidesign.net

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