Методики для прототипирования
ОБЗОР
Прототипы в различных формах и видах существуют с тех пор, как люди начали использовать технологии для решения проблем. Как говорил известный ученый в области теории вычислительных систем Фредерик Брукс: «Сразу планируйте что-то выбросить — все равно придется».
Эти слова актуальны сегодня не меньше, чем тогда, когда впервые были опубликованы (аж в 1975 году!), но многое с тех пор все же изменилось. Нельзя не отметить значительное повышение эффективности инструментов и методик для создания прототипов и их тестирования, которые имеются в нашем распоряжении.
Тем не менее мне все еще встречаются команды, и даже люди, которых я назвал бы лидерами мнений, на удивление узко интерпретирующие смысл термина прототип. Когда я прошу их пояснить свою позицию, как правило, оказывается, что они ассоциируют этот термин с образцом, который им показали первым. Если первым вы видели образец, использовавшийся для тестирования технических возможностей, вы считаете его прототипом. То же самое с образцом для тестирования юзабилити. На самом деле существует много разных форм прототипов, каждый со своими характеристиками, предназначенных для тестирования разных свойств. И конечно же, пытаясь использовать для решения своих задач неподходящий вид прототипа, люди сталкиваются с серьезными неприятностями.
Далее я кратко расскажу об основных классах прототипов, а в последующих главах мы обсудим каждый из них подробно.
ПРОТОТИПЫ ДЛЯ ТЕСТИРОВАНИЯ РЕАЛИЗУЕМОСТИ ИДЕИ И ПРОДУКТА
Эти прототипы программисты пишут для устранения рисков технической реализации на этапе исследования продукта — еще до того, как решается, осуществима ли идея. Иногда инженеры-программисты тестируют таким образом новую технологию или алгоритм. Часто речь идет об оценке производительности. Суть в том, что разработчик должен написать минимально достаточный код, чтобы устранить или хотя бы снизить этот риск.
ПОЛЬЗОВАТЕЛЬСКИЕ ПРОТОТИПЫ
Пользовательские прототипы — это симуляции. Таких прототипов много — от тех, что намеренно разрабатываются подобно вайрфреймам (в общих чертах набросанные на листе бумаге, или так называемые пользовательские прототипы малой детализации), до тех, которые выглядят и воспринимаются как готовый продукт (их называют пользовательскими прототипами высокой детализации).
ПРОТОТИПЫ НА РЕАЛЬНЫХ ДАННЫХ
Суть прототипов на реальных данных объяснить несколько сложнее, но это чрезвычайно важный инструмент, полезный сразу в нескольких ситуациях. Главная их цель — в сборе фактических данных, чтобы мы могли что-то доказать или хотя бы подтвердить, а чаще всего выяснить, работает ли идея (относительно фичи, дизайнерского решения, рабочего процесса). Как правило, это означает, во-первых, что такой прототип требуется для доступа к своим источникам данных, а во-вторых, что мы должны иметь возможность направлять в него реальный трафик — в достаточном для сбора информативных данных количестве.
И главное, для этого не приходится создавать, тестировать и развертывать жизнеспособный с коммерческой точки зрения продукт. На это ушло бы слишком много времени, стоило бы слишком дорого и, скорее всего, привело бы к огромным напрасным тратам времени и сил. Прототип же обойдется неизмеримо дешевле коммерчески оправданного продукта, что, собственно, и делает методику такой полезной и эффективной.
СМЕШАННЫЕ ПРОТОТИПЫ
Существует также целый ряд прототипов, сочетающих разные аспекты разных образцов. Например, при работе над механизмами поиска и рекомендаций с фокусом на актуальности данных нам может понадобиться прототипный доступ к источникам реальных данных, но настоящий трафик будет не нужен. В этом случае мы ничего не пытаемся доказать или подтвердить, но путем наблюдения и обсуждения полученных результатов с пользователями можем узнать много нового и полезного.
Помните: главная цель исследования продукта — найти максимально быстрый и самый дешевый способ тестирования идей. Так что вы должны выбирать тот вид прототипа, который лучше всего обеспечивает эти потребности применительно к вашей идее и ситуации. У вас могут быть фавориты среди прототипов, но для успешной конкуренции с хорошими продуктовыми командами необходимы навыки и опыт в использовании всех их видов.
Глава 45. Прототипы
Как вы убедились, читая предыдущую главу, прототипы бывают разных видов. Выбор зависит от типа риска, который необходимо устранить, и продукта. Но все они имеют ряд общих характеристик и преимуществ. Далее перечислены пять ключевых принципов, из-за которых мы используем этот инструмент.
1. Общая цель использования любого прототипа — узнать что-то новое и полезное, затратив меньше времени и усилий, чем требуется для создания реального продукта. На разработку любого вида прототипа должно уходить как минимум на порядок меньше времени и сил, чем на конечный продукт.
2. Одно из преимуществ любого вида прототипа — это то, что его создание заставляет продумать проблему намного глубже, чем в случае, если бы мы просто обсуждали ее или даже формулировали свои мысли письменно. Вот почему этот акт часто выводит на поверхность важные проблемы, которые в противном случае всплывают гораздо позже.
3. Прототип служит действенным инструментом для совместной работы команды. Члены продуктовой команды и бизнес-партнеры могут вместе испытать его и выработать общий взгляд на проблему.
4. Прототипы различаются по степени детализации. От этой характеристики зависит, насколько реалистично выглядит прототип. Надо отметить, что такого понятия, как правильная степень детализации, не существует. Иногда нам вовсе не нужно, чтобы прототип выглядел реалистично, в других случаях он должен быть именно таким. Важно обеспечить нужную детализацию применительно к его предназначению, и помнить о том, что малая детализация достигается быстрее и дешевле высокой, поэтому мы нацеливаемся на высокий уровень только тогда, когда это действительно необходимо.
5. Предназначение любого вида прототипа состоит в устранении одного или нескольких рисков, связанных с продуктом (риск ценности, юзабилити, реализуемости, жизнеспособности), на этапе его исследования. Но во многих случаях этот инструмент дает нам еще одно важное преимущество: помогает максимально четко донести мысль о том, что нужно создать, до инженеров-программистов и других сотрудников компании. Обычно эту задачу называют прототип как технические спецификации. Чаще всего бывает достаточно прототипа, но иногда, особенно тогда, когда программисты работают удаленно или продукт очень сложный, его нужно дополнить информацией — как правило, сценариями использования, правилами делового регламента и критериями приемки.
Глава 46. Прототипы для тестирования реализуемости
В большинстве случаев, проанализировав новые идеи продукта, инженеры-программисты скажут, что у них нет особых причин беспокоиться об имеющихся технических возможностях. Ведь они, скорее всего, уже создавали нечто подобное много раз. Однако в нескольких ситуациях существует значительный риск технической реализуемости. Их разработчики довольно часто выявляют в связи с решением проблемы, над которой работают. Чаще всего причины для беспокойства связаны: