Skip to main content

Essential and Real Use Cases

A use case is a sequence of interactions that a user makes with a product to achieve a goal. When your user interaction designer fleshes out use cases, she has a wide range of choices of how specifically she describes the interactions.

If she chooses abstract language that is relatively free of technology and design assumptions and user interface details, then the use case is essential.

If, on the other hand, she specifies concrete steps that assume technology and design commitments and details about the user interface, the use case is real.

Essential and real use cases are on the extreme points of a continuum. No non-trivial use case is purely essential (often, the very order of steps in a use case represents a design decision), and no level of detail in a use case can render it purely real (there is always some room for developers to make additional technology choices).

Comments

AlanAJ said…
I tend to agree but there are two logical consequences that one needs to assent to if your hypothesis is correct.

1. All purely essential use cases are trivial.

2. All real use cases are ambiguous.

I don't think I agree with either propostition. The first is probably the more interesting, but the second is perhaps easier to address first.

While most people would agree that you should not fully describe the User Interface within the use case, you seem to suggest that you cannot. I believe that it is possible, if perverse, to specify each and every aspect of a UI in a use case, so that the use case fully describes what the UI does, behaviorally, leaving the developers with only the problem of how, technically, to deliver the required systems behavior.

The difficulty with the first proposition, on the other hand, is the lack of a distinction between business process* design and user interaction design. A non-trivial business process might include steps that are optional, redundant, and sequenced-when-not-dependent, for example. Business process re-engineering seeks to identify this sort of "over-real" process step and derive a "more essential" business process. Perhaps you believe that a purely essential business process specification is unattainable, unless it is abstracted to the point of triviality?

In any event, a given business process, how ever real or essential, provides the context for a myriad UI specifications. And, yes, it usually makes sense to iterate between the business process specification and the system requirements specification in search of a better way to achieve the business goals. But... given a defined business process (for the time being) plus general agreement about the scope of automation (how ever premature), is it not possible to characterise the UI simply in terms of the presence of (requirement for) an interaction between actor and system in support of the business process? Is such a characterization inherently trivial? If not, must the elaboration of these points of interaction into steps of a use case inevitably include the addition of technology and/or design?

Of course, if you believe that no use case step can be purely essential, it must follow that no use case can be purely essential. But you suggest that "trivial" use cases may be purely essential, and these must presumably comprise one ore more purely essential step. So the interesting question is: What stops an arbitrarily large number of essential use case steps from being combined into a purely essential, non-trivial use case?

*Since not all systems are intended to operate within a business context, a more general term is required. I use the term "user context" for this.
Roger L. Cauvin said…
Thanks for your considered opinions, AlanAJ.

I actually do accept both of the logical consequences you enumerated.

By "trivial use case", I mean one that contains two steps. The first step states the user's indication of intent to fulfill a functional goal. The second step indicates that the system has satisfied that goal.

The use case is a "black box" in that there are no explicit intervening steps. (There can and should be preconditions and postconditions that contain no design assumptions, however.)

Any intervening steps violate that "black box" and therefore encroach into "real" territory.

I believe the same properties apply to business process specifications. I don't believe a purely essential, non-trivial business process specification is possible.

As for real use cases, I don't see how anyone can possibly (at least in a practical sense) fully specify all of the technology and design assumptions (the definition of "real use case") in a use case.

Popular posts from this blog

Why Spreadsheets Suck for Prioritizing

The Goal As a company executive, you want confidence that your product team (which includes all the people, from all departments, responsible for product success) has a sound basis for deciding which items are on the product roadmap. You also want confidence the team is prioritizing the items in a smart way. What Should We Prioritize? The items the team prioritizes could be features, user stories, epics, market problems, themes, or experiments. Melissa Perri  makes an excellent case for a " problem roadmap ", and, in general, I recommend focusing on the latter types of items. However, the topic of what types of items you should prioritize - and in what situations - is interesting and important but beyond the scope of this blog entry. A Sad but Familiar Story If there is significant controversy about priorities, then almost inevitably, a product manager or other member of the team decides to put together The Spreadsheet. I've done it. Some of the mos

Is Customer Development Pseudoscience?

The “Science” of Lean Startup Lean startup practitioners embrace the scientific method, seeking the "truth" about what business model and strategy will lead to product success. We do so by: Formulating hypotheses Crafting and running experiments to test them Learning from the experiments Iteratively feeding our learnings back into revised hypotheses Sounds pretty scientific, at least in spirit, doesn't it? Yet this process actually neglects a key ingredient in the scientists' mode of operation. To identify what’s missing, let’s examine “customer development”. Customer Development Steve Blank is one of the pioneers of the lean startup movement. He introduced into the lean startup lexicon the term “customer development”. Customer development consists of sessions and interactions with customers to test hypotheses. For example, a product manager might interview a prospect, asking if she agrees with the product manager’s hypotheses about the problem

Interaction Design: the Neglected Skill

Your product development organization has a big, gaping hole in it. (Be prepared to feel defensive as you continue reading.) One of the most important roles in product development is the role of interaction designer. An interaction designer designs how the users will interact with the product and conceptualize the tasks they perform. He decides whether, for example, the user interface will be command driven, object oriented (clicking on objects then specifying what to do with them), or wizard based. The interaction designer decides the individual steps in the use cases. Every company has one or more people that play the interaction designer role. Usually, those people have little or no expertise in interaction design. Sadly, they typically don't even realize how unqualified they are. Let's see who typically plays the role at companies. Engineer . An engineer is an expert on building what is designed. Yes, an engineer may know how to design the internal structure of the hardware