Hard prioritization, or 5 first steps to an excellent application for Windows 8. From characters to scripts

One of the difficulties that, in my experience, almost all developers and designers encounter when working on applications for Windows 8 and Windows Phone, starts right at the door - with designing how the user will interact with the application (UX and UI).

From Idea to App

Often the developer (the author of the application) comes up with some ready-made ideas and tries to directly transfer the familiar desktop, mobile or web functionality to Windows 8. Usually this straightforward attempt to “port” turns into a desire to preserve everything that is in the original solution, including similar templates for solving interface problems and familiar techniques for developing and writing code.

По последнему пункту отмечу только один момент: хотя мы и говорим, что начать разрабатывать под Windows 8 достаточно просто (и это действительно так, если вы знаете JS, C#/VB или C++), это не означает, что разрабатывать нужно (и можно) точно так, как вы привыкли. Так, например, в мире Windows 8 большое внимание уделяется асинхронным сценариям, что накладывает свои ограничения и требования на то, как и какой вы пишите код.

Unfortunately, this approach not only does not take into account the need to rethink existing and familiar application usage scenarios, but also often leaves behind new operating system features that open up new scenarios or offer other (more universal) solutions for familiar tasks.

New original applications face the same problem, involuntarily pulling the established experience of designers and developers. Therefore, let's figure out how to do well. And we will start from the very beginning: planning and designing the application.

As additional literature, I can immediately recommend two articles, on which mine also relies to some extent:


Hard prioritization


Proper design of applications for Windows 8 (I emphasize that the same applies for Windows Phone, although the usage scenarios, form factor and interface solutions will differ) is based on strict prioritization, which should permeate all the decisions you make .

Prioritization (or prioritization) concerns almost every step, starting from defining the target audience and ending, for example, with planning the implemented functionality and its availability to the user.

In this article, we will consider 5 key stages in which you will have to prioritize:

  1. Target audience definition
  2. Application goal statement
  3. Selecting Key Scenarios
  4. Navigation planning
  5. Functionality development


1. Know your user


It all starts with users and ends with them: you make applications for specific users and specific users will or will not use your application.

From a design point of view, it’s important to imagine (with reasonable certainty) who will use your application. The key questions that you should think about (and preferably fix the answer) are as follows:

  • Who is your user?
  • Why does he need your application?
  • When, where and how will he use it?


(Я буду по ходу этого раздела иногда вставлять ссылки на рекламные ролики — и буду говорить, на что в них нужно обратить внимание.)

Think about how your application can change the user's life: why will he feel better with him? What benefit will you bring him? Save time, take time, solve problems, make you think, tell me on time?

In the video below from Nokia, pay attention to the general message - how a particular application transforms the whole picture and makes possible some new solution or a new turn of events:


http://www.youtube.com/watch?v=9OqqSHw7V8Q
Think about how your application integrates into the user's life? What will be the main entry points? Will he use it from time to time, in the morning or in the evening, 1 minute or 10-15 minutes? On the road, at work, at home, in the gym, at the airport?

In the next video, notice how various conditions and occasions can be even for one day in order to use your favorite device. What conditions and reasons are necessary for your application?


http://www.youtube.com/watch?v=2jsLcPFlM9M
Think about how much your users can vary? Does age, gender, social status, children, wealth, habits and addictions matter for your application? How important is it, the user learns or works, prepares eggs for himself or goes to cafes and restaurants, drives his own car, bicycle or public transport?

In another video below (also from Nokia - there are very creative guys;) pay attention to how many different, strange and interesting people can be around you!


http://www.youtube.com/watch?v=I1qTbs8K3go
As you understand, there can be quite a lot of different users and different stories, so it’s important, of course, having in mind the entire population, to select a few basic models (characters) for yourself , on which you can navigate while working on your application.

Come up with characters


Describe 2-3 key characters for your application:

  • How are they unique and different or are they typical and similar on the contrary?
  • Add interesting details and specifics that make sense for your application, for example:
    • How fast do they learn new technologies?
    • Do they like to try new things?
    • Have experience with other applications in your area?
    • How socially active are they?
    • Are there any features and preferences?



Пример . Представьте себе приложение для организации совместного просмотра кино с друзьями. Один из персонажей мог бы выглядеть так:

Пример персонажа


The presence of details or some unique specifics simplifies modeling the behavior of such a character when using your application. You can cling to the features of characters, inventing stories around working with your application. In the example above, it is important for me that this character is actively interested in new applications, has preferences in certain genres and is socially closed, selfish or little initiative.

You need to prioritize , so make 2-3 characters that will cover the main part (core) of your target audience. To make it easier for you, select 3 key characteristics that matter (for example, technical literacy, the presence of obvious preferences, social activity) - and place the different characters according to these characteristics:

Таблица персонажей


After that, add some vital details to revive the characters.

2. Why is your application better than others?


Now that you know who you are creating your application for, it’s important to clearly state what your application will be unique. In a market with hundreds of thousands of applications, you will always have competitors, among which you will have to stand out.

It is also worth remembering that your application, when placed in the store, will definitely fall into one or another category (for example, “entertainment” or “health and fitness”).

Therefore, in order to correctly prioritize, it is important to clearly state what your application is better than others in its category - "best at statement". "Best at statement" is exactly what users will run to you for, bring you their love and money, and why they will tell all their friends about it.

Formulate, write and frame:

“My application is the best in its category for ___ what ___ is for”
or
“My application is better than others in its category ______ what does ______”
This should be 1) one clear sentence, 2) specific in its wording and 3) really distinguishing you from all your competitors. It is important that your statement is fully consistent with reality and your intentions.

For example, to say that “my application is the best in the category of music and video for watching movies” is either profanity that will not help you in any way, or really means that you have, say, the best technology for delivering and watching movies. It can be unique codecs, compression technologies, adaptive streaming, image quality or some unique experience of involving the user in the viewing (some extended reality).

Or another example: the statement “my application is the largest online movie theater” can, of course, mean that you have the largest (in number) collection of a wide variety of films against other competitors, but it does not guarantee me as a user that the latest and most interesting movie is available to you, or, if I'm an anime lover, that I will find my favorite cartoons there, even if I’m ready to pay for viewing.

In the latter case, by the way, a more focused application would have a great chance of success - with all the consequences: from the target audience to the intricacies of design.

The presence of a differentiating focus is extremely important . Your application may additionally be able to do many, many more things, but it should have something one of the most important, telling me why and why I will use it. Having such a focus and key characters, you can verify all the other decisions made: in particular, check the need and prioritize various scenarios and implemented functionality.

Пример . Возвращаясь к озвученной выше идее, мое приложение могло бы иметь следующий фокус: «самое лучше приложение в категории "развлечения" для планирования и организации совместного с друзьями просмотра кино».

Это приложение должно помочь мне выбрать интересный для просмотра фильм, согласовать его просмотр с друзьям в удобное время и удобном месте и, собственно, организовать просмотр на месте (купить билеты в кино, либо сделать трансляцию дома).


Best == focus . The best application should have a clear focus, transparent to users, obvious and easy to remember.

3. Highlight key scenarios


The next important point is to single out from a possible list everything that your application needs and what the user will potentially do with it, the most important thing that can be emphasized on.

Конечно, за словом «сценарий», особенно с дополнительными атрибутами (вроде «пользовательский сценарий») могут скрываться разные вещи с различной степенью детализации, однако, в рамках данной статьи мы ограничимся простым пониманием.

Answer the question: why will the user use your application? Related and related issues:
  • What tasks will he solve with his help?
  • What will he try to do?


At this stage, it is important not to think about interface solutions and not to focus on specific implementation details. It is possible that you already have a well-thought-out idea and write down key scenarios right away.

If you work in a team (well, even if it’s one / one), you can brainstorm, writing down all the ideas that come to your mind (some of them will probably come in handy later, so don’t limit yourself and boldly expand the list of questions with similar ones).

Пример . Для моего виртуального приложения для просмотра фильмов у меня получились следующие ответы:

Сценарии


As you can see, my list is a big mess of different ideas, also formulated in different forms. Now it is important to single out the most important of them, gradually filtering out the unimportant or secondary.

Separate functionality . Let's start with the functionality - you need to exclude from the list the specific actions that I can do inside the application, and the wording of the application’s capabilities. Although this separation can be very conditional, most likely, the excluded elements imply specific interface solutions and small (including atomic) actions by the user:

Сценарии минус функциональность


Separate secondary / third-party scripts . Now you need to select key scenarios, discarding secondary ones. As I wrote above, the key to verification is positioning your application - its "best at statement".

В моем случае это выглядело бы так:

  • Например, может показаться, что прямо в этом же приложении было бы здорово заодно узнать, где можно потусоваться с друзьями на выходных (сходить на концерт, матч, вечеринку или в театр), однако, фокус нашего приложения на кино, поэтому этот сценарий является посторонним.
  • Поделиться впечатлениями о фильме, вроде, выглядит неплохой идеей, однако, это действие, выходящее за временные рамки того, что мы описали в нашем позиционировании (спланировать — организовать — посмотреть), поэтому это также сторонний сценарий.
  • С точки зрения организации кажется, что выбрать и купить еду/напитки прямо в приложении, является подходящим сценарием, однако, он очевидно вторичен, так как может быть решен более фокусным приложением.
  • Наконец, с точки зрения общих целей компании друзей, найти интересный фильм кажется более заманчивым, чем найти что-то конкретное — первое обычно шире.


Сценарии минус вторичные и лишние


Formulate 3-4 key use cases for your application . We are close to the goal: discarding all that is superfluous, we came to three candidates for key scenarios that tell us why the user will use our application.

I repeat, it is quite possible that you can formulate them right away. The main thing is to make sure that they correspond to the positioning of your application and are consistent with your characters.

Пример . В моей истории у меня получились следующие сценарии:
  • найти интересный фильм для просмотра,
  • договориться о совместном просмотре с друзьями,
  • получить массу впечатлений от просмотра.


Для моего виртуального приложения важно, чтобы пользователи могли найти что-то отвечающее их интересам, произвести некоторое коллективное действие и, наконец, приятно посмотреть кино с друзьям (здесь я виртуально предполагаю, что устройство может помочь сделать этот просмотр еще более приятным).


By the way, in this context, “scenarios” are more likely the names of scenarios that in practice can be more or less detailed or visualized down to the specifics of ping-pong actions between a person and a machine. We will come to this a little later, although in a less formalized form than is usually assumed by an ideal theory.

Test your scripts on characters. Let me remind you that in the first step we came up with 2-3 typical characters who will (we hope) use our application. As you may have noticed, the selected scripts obviously cover different time periods (stages) of working with the application. (By the way, if the essence of your application also involves different stages, this must be reflected in the scripts.)

To drive characters through scripts, try writing or telling small stories about your characters and working with the application. In this aspect, I like the combination with comics - small visual (drawn) stories.

Пример . Для моего приложения история одного из персонажей выглядит следующим образом:

Дима Т., гуляя по улице, увидел афишу нового крутого фильма «Рембо 7». «Как было бы круто в эти выходные собраться с друзьями у меня и посмотреть новую киношку,» — подумал Дима. Сфотографировав плакат (или набрав название фильма), Дима быстро нашел информацию о фильме в Movie Meeting, выразил свое желание его посмотреть и предложил своим друзьям собраться в субботу у него и посмотреть всем вместе.

Димины друзья радостно отреагировали на новый анонс и предложение собраться у Димы и в ходе непродолжительного обсуждения договорились встретиться в 8 вечера. Несколько приглашенных отвалилось, так как не разделяли Диминой страсти к боевикам и кровавым сценам.

В пятницу Дима Т. проверил список собирающихся к нему в гости друзей и предложил всем заказать заодно пиццу с ананасами и Тархун.

В субботу Дима вместе с друзьями подключили планшет с установленным клиентом Movie Meeting к телевизору — и в назначенное время они все вместе начали просмотр кино. В отдельных сценах на планшете можно было посмотреть интересные детали (карты с местами боевых действий, характеристики оружия), планшет и телефоны, соединенные в сеть также создавали дополнительный эффект присутствия, вибрируя, распространяя звуки стрельбы и подсвечивая экранами в такт основной картинке.

Комикс

Хотя я рисовал картинку для телефона, думаю, вы легко представите на его месте и планшет или ноутбук. Это, как говорится, уже детали.


If all scripts easily translate into user stories, this is a good sign. In any case, I will say it again, it is important that your scripts help support your positioning ("best at statement") . Do not be afraid to discard excess.

If something does not help your application to become better, it prevents it.

By the way, in a sense, a look at the application through usage scenarios and stories also implies a shift in focus from providing functionality and content to providing experience of interaction (content / features provider ⇒ scenario provider).

To be continued...


In the next part, we will consider the task of designing navigation.


Key resources
Design for Windows 8
Development for Windows 8
Application development on the Microsoft platform