Тодд Варфел
Прототипирование. Практическое руководство

   © Rosenfeld Media, LLC, 2009. All Rights Reserved
   © Перевод на русский язык, издание на русском языке, оформление. ООО «Манн, Иванов и Фербер», 2013
 
   Все права защищены. Никакая часть электронной версии этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, включая размещение в сети Интернет и в корпоративных сетях, для частного и публичного использования без письменного разрешения владельца авторских прав.
   Правовую поддержку издательства обеспечивает юридическая фирма «Вегас-Лекс»
 
   © Электронная версия книги подготовлена компанией ЛитРес ()

rosenfeldmedia.com/books/prototyping) есть ссылки на ресурсы, посвященные прототипированию, со статьями, видеоуроками, инструментами, шаблонами и примерами, упоминающимися в книге.
   Все диаграммы, скриншоты и другие иллюстрации доступны на условиях лицензии Creative Common для загрузки и включения в ваши презентации. Их можно найти на сайте Flickr: www.flickr.com/photos/rosenfeldmedia/sets/.

Часто задаваемые вопросы

   Какой метод прототипирования лучше?
   При выборе метода нужно оценить ряд решающих факторов. Для начала задайте себе следующие вопросы. Какова цель создания прототипа? Кто входит в целевую аудиторию? Насколько уверенно я использую метод? Знаю ли я его (могу ли быстро изучить)? Насколько эффективно он поможет мне показать или протестировать мою разработку? Выбор метода и инструментов прототипирования зависит от ответов на эти вопросы. См. главу 5.
 
   Точность должна быть высокой или низкой?
   Ни то ни другое. Точность прототипирования оценивается по плавающей шкале. Не зацикливайтесь на точности. Ее уровень зависит от того, что именно нужно, чтобы достичь ваших целей при показе прототипа целевой аудитории. См. с. 70.
 
   В чем разница между каркасным проектированием, раскадровкой и прототипированием?
   Прототип, независимо от точности, функциональности или способа изготовления, отражает цели разработки и симулирует ряд ее состояний. Каркасное проектирование и раскадровка – статические представления модели и при всех своих достоинствах не могут отражать множественность состояний. Разница заключается в симуляции и множественности состояний. См. с. 25–26.
 
   Почему в книге не описан инструмент Х?
   Я выбрал инструменты, которые широко используются на практике. На начальном этапе я опросил несколько сотен специалистов, чтобы понять, какие инструменты чаще всего применяются. Результаты опроса приведены в главе 5.
   Некоторым инструментам, например Flash, посвящены целые книги. Это отличный инструмент для прототипирования, но, поскольку он и так популярен, я решил обратить больше внимания на другие.
   OmniGraffle и Balsamiq[1] – отличные инструменты для создания диаграмм в целях прототипирования, но на момент написания этой книги они не занимали внушительной доли рынка. Однако ситуация может измениться. Я буду следить за этим.
 
   Как убедить клиента или босса, что надо прибегнуть к прототипированию?
   Пожалуй, это самая сложная задача, с которой сталкиваются новички. Не потому, что они не хотят этим заниматься или боятся потерпеть крах. Просто они не знают, как заставить своего босса или клиента оценить преимущества прототипирования.
   В главе 1 описывается ценность прототипирования. Вы узнаете, как сформулировать убедительные аргументы для босса или клиента. Фактически отказ от прототипирования обходится дороже, чем сам процесс. Я подтверждаю эту гипотезу примерами из практики, которые станут дополнительными аргументами в пользу прототипирования. См. с. 28–32.
 
   С чего начать?
   Просто начните работать. Не пытайтесь сразу освоить новый инструмент, например Fireworks или HTML-верстку. Начните с простого – прототипирования на бумаге или с помощью PowerPoint. К сложному перейти вы всегда успеете. См. главы 6–11.

Предисловие

   Вчем разница между теорией и практикой? Альберт Эйнштейн однажды сказал: «В теории это вещи одинаковые. Но на практике разные».
   Практика дает отличные результаты. Спортивные команды – чемпионы тренируются постоянно. Мастера дзен скажут вам, что просветления можно достичь, если регулярно тренироваться. Практика – корень обучения. Когда вы практикуетесь, вы учитесь, а когда учитесь, то совершенствуетесь.
   Прототипирование – деятельность людей, которые занимаются разработкой и созданием вещей. Это не просто один из инструментов дизайнера, это философия дизайна. Когда вы разрабатываете прототип, то даете возможность на практике оценить достоинства и недостатки вашего продукта. И как создатель прототипа вы узнаёте о своем детище больше, чем могли бы узнать любым другим способом.
   Проще говоря, прототип отличается от других плодов воображения тем, что он реален. Он существует независимо от представлений о нем. А значит, его можно тестировать: придумывать различные сценарии, чтобы попытаться разрушить модель, и создавать экспериментальные условия для проверки своих предположений.
   Без прототипа вы не сможете протестировать свой продукт, пока его не создадите, и в нынешней изменчивой деловой среде, где новые компании могут стать лидерами на рынке всего за несколько лет – например, Google была создана в 1998 году, Facebook в 2004-м, Twitter в 2007-м, – выпускать на рынок продукт, не протестировав его, – просто безумие. Это все равно что отправлять спортсменов на соревнование, не дав им возможности потренироваться. Это прямой путь к краху.
   Создавайте прототипы и пытайтесь сломать их, проверяйте их и извлекайте из этого уроки, моделируйте свои идеи, когда они еще в зачаточном состоянии, и продолжайте изобретать и ломать в течение всего процесса разработки. Пробы, ошибки и непрерывное совершенствование – естественный путь обучения и для детей, и для взрослых. И если он подходит для нас, почему бы не использовать его для наших продуктов и плодов нашего воображения?
   Книга о прототипировании сама не более чем прототип, фиксация состояния в некий момент времени. Ведь прототипирование – непрерывный и бесконечный процесс, как и процесс обучения.
   И не забывайте: прототипирование – это весело! Это возможность развить ваши идеи в игровой форме, прямая противоположность дизайну «в вакууме». Это разработка вместе с людьми и для людей. Это игра. А игра, как и тренировка, помогает учиться. Это репетиция жизни.
   Но прототипирование больше чем тренировка или игра. Для многих оно оказывается серьезным препятствием. Оно требует смелости, терпения и заинтересованности. Нужно не бояться неудач и анализировать ситуацию, когда хочется пойти на попятный. Нельзя пугаться, когда ваше «дитя» оказывается в грубых руках посторонних, не понимающих, что это такое и для чего оно нужно. Иногда придется отбросить результаты нескольких недель работы и опробовать новый подход. Прототипирование сродни воспитанию детей. Вы приносите в мир новые вещи и помогаете им «вырасти».
   Тодд Заки Варфел написал книгу о практических методах, проверенных на личном опыте. Он делится своей философией дизайна, инструментами своего ремесла и лучшими известными ему методами, которые помогают создать работающие вещи. Ему можно доверять. Он постоянно занимается прототипированием. Он бесстрашен. Он умеет слушать. Он умеет играть. И он дважды отец: не только этой книги, но и настоящего биологического прототипа – маленького мальчика по имени Элия. Поэтому преодолейте себя. Начните читать эту книгу. Испытайте ее, проверьте, сломайте. Прототипируйте, практикуйтесь и играйте с идеями. Расскажите автору, что книга полезна вам, когда что-то идет не так, помогает понять, как что-то можно улучшить. Он будет вам благодарен.
Дэйв Грей
Основатель и председатель совета директоров компании Xplane

Введение

   Ниже я расскажу, почему решил написать книгу о прототипировании, причем именно для издательства Rosenfeld Media. Правда в том, что это одно из моих главных увлечений. Я не помню, как все началось: то ли Лу обратился ко мне с таким предложением, то ли я к нему. Но я помню, как он заявил что-то вроде: «Несколько человек сказали мне, что я должен поговорить с тобой о книге. Ты хотел бы о чем-нибудь написать?» Тогда начались переговоры: я пытался «продать» Лу одну из нескольких тем, которыми я интересовался, а он старался убедить меня написать книгу для Rosenfeld Media.
   Две другие темы Лу не впечатлили, хотя я на это надеялся. Однако идея книги о прототипировании привела его в восторг, и этого было достаточно. Он верил, что я смогу написать ее.
   В то время молодое издательство Rosenfeld Media (RM) еще не стало крупным. Я верил в выбранное издательством направление: книги для практиков, проверенные в «полевых условиях». И как человек, руководивший небольшим консультационным дизайнерским агентством (Давид среди голиафов), я был рад поддержать тех, кто выбрал эту область.
   Почему прототипирование? Эта тема актуальна. В то время не существовало книг, адресованных дизайнерам или практикам в области пользовательского интерфейса. Имелись книги о прототипировании для промышленности и разработки программного обеспечения, но не было книг для специалистов по программным системам. Единственная книга, более-менее близкая по теме, – написанная Каролин Снайдер «Прототипирование на бумаге: быстрый и простой способ разработать и отшлифовать интерфейс пользователя»[2]. Отличная книга. У меня она есть. И хотя я активно выступаю за прототипирование на бумаге – это по-прежнему мой любимый метод обучения, – я знал, что необходимо описать различные методы и инструменты для нашей отрасли.
   Конкуренции практически не было.
   Кроме того, я постоянно занимался прототипированием в своем агентстве Messagefirst. В то время мы разрабатывали системы, все чаще основанные на транзакциях, где успешно использовались взаимодействия в духе AJAX. Мы достигли потолка во всем, что можно было сделать методом каркасного представления[3], но не получили желаемых результатов. Этот метод стал неэффективным в нашей работе. У нас имелась хорошая модель, но мы тратили слишком много времени на объяснения. Я не люблю рассказывать, что я делаю: если приходится этим заниматься, значит работа неудачна.
   Все мои знакомые в курсе, что я постоянно ищу пути развития своего ремесла, улучшаю процесс разработки и нахожу более рациональные и эффективные решения. Наш метод был плох, его следовало исправить. Это проблема дизайна, и я знал решение: создать прототип.
   До того как я начал работу над книгой, мой опыт в этой области ограничивался прототипированием на бумаге, использованием PowerPoint, Keynote, Flash и HTML. Я не хотел писать о тех инструментах, которые сам не опробовал. Книга не для меня, а для вас.
   Поэтому, как и в любом дизайнерском проекте, я решил осуществить небольшое исследование, которое в результате заняло девять месяцев. Я беседовал с десятками практиков, провел несколько опросов, опробовал множество инструментов для прототипирования и только потом вздохнул с облегчением.
   Я даже пытался обучать прототипированию с помощью новых инструментов. До этого я использовал Visio и Fireworks, но в других целях. И я никогда не имел опыта работы с Axure RP Pro.
   Во время написания книги я многому научился и приобрел немало опыта. Я освоил новые методы и инструменты. Я услышал множество советов и узнал много приемов от коллег-практиков. Они рассказали мне об успешных и провальных случаях применения прототипирования, и я сам получил опыт и в том и в другом.
   Я хочу, чтобы из моей книги вы узнали, как прототипирование изменит процесс разработки. Я стремился поделиться своим опытом и опытом других, показать ценность прототипирования и рассказать об инструментах, способных убедить босса или клиента, что в следующем проекте без прототипирования обойтись не удастся.

Глава 1. Ценность прототипирования

   Миллионы людей могут мельком заглянуть в будущее. Вспомните концепт-кары. Изготовители тратят годы и миллионы долларов на эти своеобразные творения. Большинство из них не попадает в серийное производство. Те, которые все же выпускаются, часто мало чем напоминают оригинал.
   Автомобильная промышленность высококонкурентна. Инновации здесь – не только движение вперед, но часто одно из обязательных условий выживания. Каждый концепт – упражнение в дизайне, исследованиях. Разработчики выясняют, что можно сделать и что можно будет продать. Так и создаются прототипы.
   Этот метод был важной составляющей автопромышленности многие годы. Концепт-кары обходятся дорого, но гораздо дороже переоборудовать все производственные линии и запустить модель, которая не найдет спроса на рынке. Риск слишком велик.
   Сформулировать аргументы в пользу того, что прототипирование необходимо при разработке автомобиля или системы наведения ракет, несложно. Однако доказать, что создание прототипов программных средств даст выгоду при реализации проекта, гораздо труднее.
   Фактически это одна из самых сложных проблем.
   В данной главе я опишу некоторые проблемы, которые возникают при попытке встроить прототипирование в существующие процессы проектирования и разработки. Я дам совет, как показать, что прототипирование поможет в раннем выявлении проблем, снижении рисков и экономии времени, усилий и денег.
   Клиенты и менеджеры, не слишком хорошо знакомые с прототипированием, часто воспринимают его как затратное мероприятие, приносящее мало выгоды (или не приносящее ее вовсе). Чаще всего мне приходится отвечать на такой вопрос: «Как мне заставить босса или клиента заняться прототипированием? Они говорят, что у нас для этого нет ни времени, ни денег».
   Если вы занимаетесь (помимо прочего) созданием сайтов, программных приложений или систем, в число компонентов которых входят как оборудование, так и программное обеспечение, без прототипирования вам не обойтись. По мере увеличения сложности системы соотношение цены прототипирования и получаемой выгоды резко растет.
   Прототипирование стоит денег. Но если вы его не используете, то упускаете возможности инноваций и существенной экономии. Выгоды перевешивают затраты.

Прототипирование продуктивно

   Одна из основных ценностей прототипирования – его продуктивность. В процессе создания прототипа появляются сотни, если не тысячи идей. Некоторые из них блестящие, другие не очень. Я обнаружил, что даже идеи, на первый взгляд не кажущиеся блестящими, могут стать катализаторами отличных решений.
   Процесс прототипирования часто приводит к инновациям и значительной экономии времени, усилий и денег. Он помогает материализовать идеи, создать нечто, что вы можете ощутить, испытать, проработать, протестировать (и просто поиграть с ним).

Прототипирование – возможность показать, рассказать, получить опыт

   Если картинка лучше тысячи слов, то прототип лучше десяти тысяч. Он значительно расширяет возможности показа и рассказа, дает возможность испытать разработку.
   Одно дело рассказывать и показывать раскадровки, и совсем другое – видеть в реальности.
Роберт Хокман-младший
   Есть ряд способов документирования дизайна, включая описания требований, метод каркасного представления, визуальные компоненты и прототипы.

Стандартные модели документирования

   Техническое задание. Обычно это документ, где объяснены технические и функциональные требования к системе.
   В технических заданиях обычно много слов и мало иллюстраций. Они много говорят, но мало показывают. Недостаток визуальной симуляции часто приводит к неправильному пониманию задания. Чтобы снизить этот риск, в документ можно добавить изображения, но только статичные.
   Каркасные представления. Вы видели архитектурные чертежи зданий? Это примерно то же, что и каркасное представление для программного обеспечения. Каркасные представления – изображение структуры функциональных страниц. Они показывают, какие элементы есть на странице и как они соотносятся друг с другом. Каркасные представления обычно выполняются в черно-белом варианте или в оттенках серого.
   Каркасные представления в сочетании с подробным описанием поведения элементов лучше решают задачу, чем технические задания. Однако часто остаются пробелы, что приводит к пропуску деталей или неправильному толкованию.
   Прототипы. Прототип – модель или симуляция, представляющая финальный вариант системы. В отличие от технических заданий и каркасных представлений, он дает возможность испытать разработку.
   Некоторые технические ограничения, например на размер страницы в 100 КБ, могут быть незаметными в прототипе. Их можно зафиксировать во вспомогательном документе, гораздо меньшем по размерам, чем 60–200 страниц.
   По сути, технические задания и каркасные представления недостаточны для того, чтобы показать сложную систему и рассказать о ней. Их можно использовать для простых систем, но в случае сложной системы возникнут серьезные трудности. Нередко эти два метода применяются вместе для создания «полной картины». Однако испытания в таком случае часто заканчиваются неудачей.
   Сочетание аннотированных каркасных представлений с техническим заданием может представить исходное ви́дение с точностью 70–80%. Остается слишком много возможностей для ошибок.

AJAX и Monkey Wrench

   Что произойдет, если добавить AJAX[4] или другое приложение RIA (Rich Internet Applications – многофункциональные интернет-приложения)? Все начнет разваливаться на части, причем быстро. Ни техническое задание, ни аннотированные каркасные представления не могут отразить правила взаимодействий и переходов.
   В основе традиционных взаимодействий лежат страницы. В AJAX и RIA часто используются состояния. Страница или экран могут содержать несколько слоев или виджетов, которые работают независимо друг от друга (и в то же время взаимосвязаны). Например, обновление канала RSS на странице не требует обновления всей страницы. Обновляется только виджет RSS, все остальные элементы остаются прежними.
   Это дало многим разработчикам повод заявить, что парадигма страницы мертва, а новая парадигма – экран или состояние.
   Переходы и анимация – еще одна проблема. Пытались ли вы описать самоисправляющийся переход в AJAX?[5] Мое самое удачное описание, дополненное пассами фокусника и взмахами воображаемой волшебной палочки, вызвало удивление и непонимание у публики.
   AJAX и другие технологии RIA используются все чаще; потребность в прототипах и их ценность как средства взаимодействия при разработке существенно возрастают. Я бы сказал, что прототипы становятся крайне важны для достижения успеха.

Прототипирование снижает вероятность неправильного восприятия

   Возьмите 60-страничное техническое задание. Посадите в комнате 15 человек. Раздайте им документ. Пусть они его прочтут. Спросите у них, что именно вы разрабатываете. Скорее всего, вы получите 15 разных ответов. Теперь представьте, что в документе 200 страниц. Результат будет еще хуже.
   Прототипы – гораздо более конкретное и осязаемое представление системы, которую вы разрабатываете. Они дают ощутимый опыт.
   Когда мы перешли от технических заданий к прототипированию, то сразу заметили сокращение количества необходимых уточнений и переделок. Когда-то доля совпадений в интерпретации задания составляла 60–80%; теперь она достигала 90% и даже больше.