The book describes one method of writing part of the formulation of the problem, namely the method use case.

What is it? This scenario of user interaction with the system (or business). The system thus acts as a black box (and it gives the possibility to divide the complex task design interaction design and provision of this interaction). If one introduces the notation standards to ensure easy reading including non-participants, and allows to do some checks on completeness and compliance with the objectives of the stakeholder.

An example use case

Looks like the script on the example of login to the site via email:

(System) log on to the website for access to your personal account. ~~ (sea level)

Context: a non-authenticated client is authenticated on the site so that the site recognized it and showed personal information: browsing history, shopping, the current number of bonus points, etc., using email as the username.
Level: user goal
Primary actor: the customer (visitor of our online store)
Scope: the customer’s Interaction with the website of the online store
Stakeholders and interests:

  • the marketer wants the maximum number of visitors to the site have been identified for greater coverage personal mailings
  • security specialist wants to avoid unauthorized access to personal data of the visitor, including attempts at guessing the password for a single account or the account with a weak password
  • the attacker wants to gain access to the bonus victim
  • competitors want to leave negative reviews on products,
  • the botnet wants to get the customer and with the help of attack to achieve the functioning of our site.

Preconditions: the visitor should not be authorized.
Minimal guarantees: the visitor learns the fact successful or unsuccessful authorization attempts.
Guarantee of success: the authorized visitor.

The main scenario:

  1. Client starts the authorization.
  2. The system confirms that the client is not authorized, and not exceeding the number of unsuccessful authorization attempts for this session (search weak password for many accounts) by “security Rule No. 23”.
  3. The system increases the count of the number of login attempts.
  4. The system displays the client authorization form.
  5. Customer enters email and password.
  6. The system confirms the existence of the customer with this e-mail in the system and the coincidence of the password and not exceeding the number of login attempts to the account for “security Rule No. 24”.
  7. The system authorizes the client, puts browsing history and the trash the session with the last session of this customer’s account.
  8. The system displays the message of successful authorization, and proceeds to the step of the scenario from which the client is interrupted for authorization. The data on the page reload with the personal account.

2.and. The client is already authorized:
2.and.1. The system notifies the customer of the fact of prior authorization and prompts you to either abort the script, or you can go to step 4, if step 6 is passed successfully, then step 7 is performed, specifying:
2.and.7. System detectorist client under the old account, authorizes the client under the new account, the browsing history and trash the collaboration session remains in the old account to the new does not pass. Then go to step 8.
2.b the Number of login attempts has exceeded the threshold for the “security Rule No. 23”:
2.b.1 go to step 4, the login form displays a captcha
2.b.6 the System confirms the correct captcha
2.b.6.1 Captcha is entered incorrectly:
2.b.6.1.1. the system increases the counter of failed authentication attempts and under this account
2.b.6.1.2. the system displays the message on failure and returns to step 2
6.and. Account with this email not found:
6.and.1, the System shows a message about the failure and offers the choice of either perehodom to step 2, or a transition to “user Registration” with the e-mail entered
6.b. The password of the account with the given email does not match with the entered:
6.b.1, the System increases the counter of failed login attempts to this account.
6.b.2, the System displays a message about failure and offers a choice of either a transition to “password Recovery” or go to step 2. the Count of login attempts to this account has exceeded the threshold for “Rule of security No. 24”., the System displays a message about blocking of login for X minutes and goes to step 2.

Which is great

Check for completeness and compliance with the goals, it is possible to give requirements for review to another dimension, allowing fewer errors at the stage of formulation of the problem.

Work with the system type, the black box allows you to divide the production and coordination with the customer of what will be automated by implementation methods.

Is part of the Analytics, one of the main parts of usability. The script user sets the basic path of its movement, which greatly reduces the freedom of choice to the designer and the customer and helps increase the speed of production of design.

Very pleased with the description of the place where exceptions are identified each step of the interaction. Holistic it system should include a particular exception handling, part manually, part automatically (as in the example above).

Experience shows that well-thought-out exception handling can easily convert the system into a terribly inconvenient system. Remember history when in Soviet times to obtain a solution was required to obtain several approvals from different services and how painful it is when the last service says — and you have a statement for the wrong name, or even what the error in prepinani, alter all pericolosita all.

Often faced with situations where not designed for the exceptions logic system required a significant rework of the system. Because of this, the majority of the work of the analyst is spent on exception handling.

Notation in text form, unlike the chart, you can identify and reach more exceptions.

Addition to the method of practice

Use case is not independent prioritizirebas a part of the statement, unlike a user story.

In the scenario, consider the the exception of “6.and. Account with this email not found.” and next step “6.and.1, the System displays a message of failure and proceed to step 2”. What of the negative left overs? For the client any refund is equivalent to saying that all the work he did introducing the data discarded in a landfill. (In the script that just cannot be seen!) What can I do? To rebuild the script so that this did not occur. Is it possible to do so? As an example, look at the login script in Google.

Optimization of script

The book tells the story of the formalization, but says little about the methods of optimization such scenarios.

But it is possible to enhance the method by using optimization scenarios and the way of formalizing use case allows to do it. Specifically, on each occurring with the exception of the need to consider to determine the cause and rebuild the script so to get rid of the exceptions, or to minimize the path of the client.

In ordering an online store, you need to enter the delivery city. It may well be that for the selected customer city store is unable to deliver the goods because there does not shipping due to dimensional limitations, or because of the lack of goods in the relevant warehouse.

If you just describe the scenario of interaction at the stage of registration, you can write “to inform the customer about the impossibility of delivery and to offer to change the city or the composition of the basket” (and many novice analysts at this stop). But if a lot of these cases, it is possible to optimize the script.

The first thing to do — you need to give choose only the city where we can make the delivery. When to do it? Before the moment of choosing a product on the website (auto-detect city by ip address, specifying).

Second, we need to give a choice of only one item that we can deliver to the client. When to do it? In the moment of choice — the tile of the goods and the item card.

These two changes significantly almost rid of this exception.

Requirements on measurement and metrics

Considering the problem of minimizing exception handling, you can put the task on reporting (not described use case). There were so many exceptions, in which cases they occur, plus how many scripts passed successfully from the Inbox.

But alas. Experience has shown that requirements for reporting to the scenarios in such a form is not enough, you need to consider requirements for reporting on processes, which are largely in the form of a use case.

The yield on Usability

In our practice, we have expanded the descriptions use case description of the specific entity attributes and data for decision-making by the client, which increases the subsequent usability.

To design usability we have added an input section data to be displayed.

In the scenario with authorization — it’s a fact of authorization of the client in the system. If the client is pre-authorized, then display a warning that the navigation history and the recycle bin on a new account after successful authorization.

In the General case, this mapping needs information for a customer so he could decide on his further actions in the script (you can ask — but rather whether the client of these data, what else is needed, what information is needed for decision-making to the client).
It is also worth to divide the input information on the input fields, if they are processed separately and produce different exceptions.

In the example with the client’s authorization if you select input information for username and password, you should change the login script with the allocation of the steps of entering separate login and separate password (and this is done in Google, Yandex, but not done in most online stores).

The output for the required data transformation

From a script you can also get requirements to algorithms of data transformation.


  • The client for making decisions about buying goods in the online store on the item card you need to know the opportunity cost, terms of delivery in his city this product (which are computed by the algorithm on the fact of availability of goods in warehouses and parameters of the supply chain).
  • When you enter a phrase in the search box to the customer according to the algorithm shown search suggestions (which are formed by the algorithm …).


Overall, after reading the book, unfortunately, it is not clear how to go all the way Analytics from business problems to a formalized terms of reference for the developer. The book tells only part of the process with vague and unclear outside shows a further steps. In itself complete use case statement for the developer often is not.

However, this is a very good way of formalizing and processing of scenarios of interaction of object and subject, when the interaction occurs change anything in the subject. Is one of the few ways of entry allow check the requirements with a clear point exceptions.

The book is required reading for analysts, so they began to write a check the performance.