Автор книги: Алан Купер
Жанр: Руководства, Справочники
Возрастные ограничения: +16
сообщить о неприемлемом содержимом
Текущая страница: 4 (всего у книги 32 страниц) [доступный отрывок для чтения: 8 страниц]
Компьютеры распространяют свое влияние не только на кабины пилотов в самолетах, но и на пассажирские салоны, показывая там свой упрямый и своевольный характер, так хорошо знакомый нам. В современных авиалайнерах устанавливают системы развлечений в полете, через которые пассажиры могут слушать музыку и смотреть фильмы. Такие системы представляют собой обычные компьютеры, соединенные в локальную сеть, как те, что стоят в вашем офисе. Системы развлечений с расширенным набором опций обычно устанавливают только на больших самолетах, следующих трансокеанскими рейсами.
Бортпроводники одной из авиакомпаний были так расстроены использованием встроенной системы развлечений, что многие из них настоятельно требовали перевести их на более короткие местные рейсы, лишь бы не изучать ее сложный функционал. И это в высшей степени примечательно, потому что карьерный рост на авиалиниях – это всеми почитаемый процесс, происходящий в порядке старшинства, и именно эти маршруты дальнего следования всегда расценивались как самые лакомые кусочки: это было вызвано продолжительными остановками в экзотических уголках планеты, таких как Сингапур и Париж. Поэтому такое стремление стюардов и стюардесс мотаться туда-обратно на ничем не примечательных и совсем не романтических рейсах из Денвера в Даллас или Лос-Анджелеса в Сан-Франциско лишь для того, чтобы избежать взаимодействия с системой развлечения в полете, говорило о полном упадке боевого духа. Любая авиакомпания, которая когда-либо вынуждала своих самых ценных сотрудников – тех, что проводят с клиентами больше всего времени, – страдать из-за плохого оборудования, делала самую большую ошибку в своей жизни, попусту растрачивая денежные средства и рискуя доверием лояльных потребителей и собственного персонала.
Другая крупная авиакомпания установила еще более несносную компьютерную систему развлечений. К просмотру фильмов через систему этой компании была привязана функция оплаты. Ранее процесс сбора денег протекал в довольно расслабленном режиме: трудно было покинуть замкнутое пространство реактивного самолета на высоте одиннадцати тысяч метров, не оплатив услуги. Бортпроводники выполняли запросы пассажиров в товарах и услугах, а оплату собирали позже, когда их руки не были заняты подносами и когда пассажиры прекращали от них чего-то требовать. Такая процедура уберегала стюардов от беспрестанных хождений туда-сюда по узким проходам салона. Разумеется, случайные ошибки периодически возникали, но это никогда не превышало нескольких долларов. Имеющаяся система была довольно дружелюбной и терпимой; все были счастливы и довольны работой.
Новая компьютеризированная система оплаты услуг доставки медиаконтента привела к тому, что бортпроводникам сначала требовалось получить деньги от пассажиров, потом пройти через весь салон к его началу, где установлена панель управления для стюардов, затем ввести пароль обслуживающего персонала, а затем провести оплату. Только по завершении транзакции пассажир мог начать просмотр фильма или прослушивание музыки. Такой бессмысленный подход к проектированию системы привел к тому, что бортпроводники были вынуждены сотни лишних раз пройти по узким проходам за один только рейс. Вконец отчаявшиеся бортпроводники придумали устраивать короткое замыкание перед каждым рейсом долгого следования ровно через несколько минут после взлета. Далее следовало вежливое объявление с извинениями за сбой в работе системы и сообщением о том, что посмотреть фильмы на этом рейсе не получится.
Миллионы долларов затратила авиакомпания на то, чтобы разработать настолько бестолковую систему, что пользователи были готовы умышленно отключить ее, избегая всяческих взаимодействий с ней. Невинными жертвами этого процесса стали тысячи пассажиров, скучающих во время полета. И все это происходило на трансокеанских рейсах дальнего следования, обычно заполненных важными клиентами, постоянно пользующимися услугами этой авиакомпании. Сложно навскидку определить количество потерянных авиакомпанией денег, но я уверен, что речь шла о катастрофически огромных суммах.
Программное обеспечение в системах развлечений в полете функционировало безупречно, но его провал был обусловлен неумением адекватно взаимодействовать с людьми. Как могла компания не спрогнозировать такой невеселый исход? Как упустила эту взаимосвязь? Цель данной книги – найти ответ на подобные вопросы и показать, как избегать таких катастроф современного высокотехнологичного мира.
Что будет, если скрестить компьютер и военный корабль?Сентябрь 1997 года. Во время маневрирования в Атлантическом океане авианосец Военно-морских сил (ВМС) Соединенных Штатов Америки под названием Yorktown, являвшийся одним из новых крейсеров морфлота с боевой информационно-управляющей системой Aegis[2]2
Aegis (англ. эгида) представляет собой интеграцию средств обнаружения, поражения и управления кораблем, целью которой является противостояние ракетным атакам противника. – Примеч. пер.
[Закрыть], неожиданно прекращает движение.
Во время калибровки топливного клапана техник ВМС ввел нуль в один из управляющих компьютеров, оснащенных процессором Pentium Pro и операционной системой Windows NT. Программа предприняла попытку поделить другое число на это нулевое значение, иначе говоря, выполнить действие, запрещенное в математике. Результатом стал глобальный сбой во всей системе управления бортом. Оставшись без компьютерного управления, двигатель встал, и корабль дрейфовал на волнах 2 часа 45 минут, до тех пор пока его не отбуксировали на базу. Удача, что подобное не случилось в зоне боевых действий.
Что будет, если скрестить компьютер и военный корабль? Адмирал Нимиц[3]3
Честер Уильям Нимиц, главнокомандующий Тихоокеанским флотом США во время Второй мировой войны. – Примеч. пер.
[Закрыть] перевернулся бы в своем гробу! Проигнорировав вышеописанную неудачу, ВМС решили оснастить компьютерными системами все имеющиеся корабли в целях экономии на человеческих ресурсах. Чтобы противостоять возражениям, они возложили всю вину за указанный инцидент на человеческий фактор. Ввиду того, что процесс проектирования программного обеспечения вышел из-под контроля, индустрия высоких технологий должна выбрать один из вариантов: навести порядок в этом процессе либо продолжать обвинять во всех грехах обычных пользователей, в то время как все более масштабные механизмы будут простаивать, намертво обездвиженные.
Как-то в одном из номеров Wall Street Journal вышла статья, в которой был описан анонимный видеоклип, вирусно распространившийся через электронную почту. В этом клипе «…Усатый Обыватель в рубашке с коротким рукавом сгорбился над своим компьютером. Вдруг, в порыве гнева, он наносит удар по монитору. Удивленный коллега заглядывает в его отсек, а человек со всей силы швыряет в монитор клавиатуру, отчего тот валится на пол. Вскочив с места, безумец настигает поверженный монитор и наносит завершающий яростный удар».
Статья продолжалась рассуждениями о том, что данный клип «неимоверно всколыхнул» общественность и что он, по-видимому, вскрыл «мощную скрытую тенденцию к технобезумию».
Удивительная ирония этой ситуации в том, что для просмотра или простой пересылки этого видеоклипа нужно владеть компьютером на достаточном уровне. Человек на видео вполне мог быть актером, но ему удалось задеть струну, которая есть у каждого человека в бизнесе. Разочарование, вызванное сложностью и неприятием программных продуктов, нарастает стремительными темпами.
По закрытым спискам рассылки ходит шутка о «компьютерном синдроме Туретта». В основе этой игры слов лежит упоминание психического расстройства, похожего на нервный тик. Люди, страдающие таким расстройством, склонны бесконтрольно разражаться приступами ругани. Юмор состоит в том, что, окажись вы в помещениях практически любого современного офисного здания, вы услышите, как в целом нормальные люди, работая на своих персональных компьютерах, раздраженно стискивают зубы и непрестанно шепчут бранные слова. Одному богу известно, что вызывает в них такие приступы безумной ярости: утерянный документ, недоступное изображение или то самое взаимодействие, которое выводит из себя. А быть может, программа просто ненавязчиво удалила единственный имеющийся у пользователя экземпляр пятисотстраничного файла просто потому, что его ответом было «Да» в очередном диалоговом окне, похожем на то, где предлагается сохранить изменения, а на деле спрашивающем, желает ли он стереть данные.
Отказ индустрии нести ответственностьМы живем в мире, который заполонили высокотехнологичные инструменты. Компьютеры безраздельно властвуют на наших рабочих местах и в наших домах, а транспортные средства пичкают гаджетами на кремниевых микросхемах. Каждое из этих компьютерных устройств невероятно мощное и оснащено богатым набором опций, но все они столь же грандиозно сложны и демонстрируют запутанное поведение.
Индустрия высоких технологий упрямо не признает тот простой факт, о котором мог бы поведать каждый владелец мобильного телефона или текстового процессора: наши компьютеризированные устройства слишком сложны в применении. Проектировщики программ и высокотехнологичных гаджетов гордятся своими достижениями. Разработчики программного обеспечения[4]4
В индустрии компьютеров под термином «разработчик программного обеспечения» понимается то же, что и под термином «программист»; аналогично следует воспринимать данные понятия и в этой книге. – Примеч. авт.
[Закрыть], также принимающие участие в их создании, прилагают все возможные усилия, чтобы упростить использование этих инструментов, и даже достигли в этом отношении некоторого успеха. Они думают, что имеющийся уровень простоты использования их продуктов настолько велик, насколько это позволяет их техническое устройство. Как истинные инженеры, они безгранично верят в технологии и имеют твердое убеждение, что только новейшие разработки – например, в области распознавания речи или искусственного интеллекта – способны улучшить опыт пользовательского взаимодействия.
Каким бы смешным это ни казалось, но в случае с программными продуктами меньше всего улучшений в отношении их использования принесут именно новейшие технологии. С точки зрения технического устройства сложный и запутанный программный продукт практически ничем не отличается от простой, мощной и приятной в использовании программы. Здесь все дело, скорее, заключается в уровне культуры, подготовки и отношении людей, которые создают эти программы, а отнюдь не в применяемых микросхемах и языках программирования. Червоточина находится в процессе разработки, а не в инструментарии.
Во главе индустрии высоких технологий каким-то странным образом оказались программисты и инженеры, чья сложная инженерная культура теперь превалирует в этой сфере. Топ-менеджеры фактически утратили способность влиять на индустрию высоких технологий, невзирая на занимаемые ими должности. Инженеры – вот кто правит бал. Стремясь наилучшим образом употребить все возможности, открывшиеся нам с изобретением кремниевой микросхемы, мы забыли об ответственности. Психбольница оказалась руках пациентов.
Когда психически больные завладевают сумасшедшим домом, у них нет четкого осознания причин собственных проблем. Глядя в зеркало, проще всего видеть только лучшее в себе и игнорировать недостатки. То же самое происходит и с разработчиками в тот момент, когда они пристально разглядывают результаты своего труда – они упускают из виду его плохие стороны. Вместо этого их взору предстает невероятная гибкость и мощь. Их взгляд направлен на богатство функционала и опций. Они упрямо отказываются признавать, что пользование таким продуктом вызывает страдания, требует множества мучительных часов для его изучения и что пользователи сойдут с ума от безысходности и уничижения, будучи вынужденными применять его каждый день.
Что послужило причиной написания этой книгиЯ занимался изобретением и разработкой программных продуктов двадцать пять лет. Долгие годы проблема запутанного программного обеспечения не давала мне покоя, пока, наконец, в 1992 году я не оставил программирование, чтобы полностью посвятить себя компаниям-разработчикам, помогая им делать их программные продукты приятнее и проще в применении. И тут произошло чудо! Ко мне вдруг пришло понимание, что только после того, как я освободил себя от программистских требований, я по-настоящему осознал, какими мощными они были. Программирование способно настолько захватить ваш ум своей сложностью, что только эта задача будет подавлять все прочие измышления, в том числе и заботу об удобстве пользователя. Я пришел к этой мысли лишь тогда, когда силой разорвал эти программистские узы.
Вместе с этим открытием ко мне пришло также осознание того, почему программы выглядят столь неудачными, по мнению пользователей. В 1995 году увидела свет моя книга[5]5
«Об интерфейсе», первое издание вышло в 1995 году, в 2003 году вышло второе издание, почти полностью переработанное. – Примеч. ред.
[Закрыть], в которой я описал то, что узнал, и которая существенно повлияла на процесс разработки некоторых современных программ.
Чтобы стать хорошим программистом, необходимо обладать неким умением чувствовать природу и потребности компьютера. Вот только природа и потребности компьютера абсолютно чужды природе и потребностям людей, которые будут в конечном счете пользоваться этим компьютером. Процесс создания программ требует от разработчиков так много интеллектуальных усилий и такой степени вовлеченности в задачу, что они вынуждены полностью погружаться в инородный для человека образ мышления. В голове программиста все, что требуется для процесса разработки, получает наивысший приоритет, оставляя далеко позади какие-либо потребности внешних пользователей. Даже языки, на которых говорит каждый из этих миров, противоречат друг другу.
Процесс программирования и процесс разработки простых в использовании программ не согласуются по той причине, что программист и конечный пользователь преследуют в корне разные цели. У программиста есть потребность, чтобы разработка велась легко и непринужденно. А у конечного пользователя потребность звучит иначе – легким и непринужденным должен быть процесс взаимодействия с программой. Создать такую программу, которая удовлетворяла бы потребности и тех и других, не удается практически никогда. В современной индустрии компьютеров программисты наделены возможностями для создания дружелюбных пользователю взаимодействий, но из-за постоянного давления конфликта интересов они просто не в состоянии действительно сделать что-то.
Для процесса разработки программного обеспечения характерна такая особенность, что его результаты можно увидеть только по завершении всей работы. Отсюда вытекает тот факт, что любые прогнозы со стороны человека, не связанного с программированием, уже не смогут что-либо изменить. Использовать программное обеспечение для настольных компьютеров так тяжело потому, что в его создании принимают участие исключительно программисты и нет никого, кто выполнял бы роль посредника между программистами и пользователями. Изделия наподобие телефонов и камер всегда имели изрядную долю механических деталей, что позволяло быстрее изучать их устройство. Но исходя из наших исследований, если скрестить компьютер и любую другую вещь, характер компьютера непременно возобладает в ней.
Ключом к решению данной проблемы является проектирование пользовательского взаимодействия перед началом непосредственно процесса разработки. Нам нужно вырастить новый класс профессионалов пользовательского взаимодействия, которые будут проектировать поведение программ. Сегодняшние программисты осознанно подходят лишь к проектированию кода, а пользовательское взаимодействие отходит на второй план. Они планируют, что будет делать программа, но не то, как она будет себя вести, коммуницировать с пользователем и уведомлять его. Проектировщики взаимодействия, напротив, уделяют максимум внимания именно тому, как пользователи воспринимают программные интерфейсы различных устройств и как взаимодействуют с ними.
Искусство проектирования пользовательского взаимодействия достаточно молодое и знакомо не всем программистам. Но даже если программисты и признают его важность, они обычно фокусируются на нем лишь в завершение создания кода. Только в этом случае поздно что-либо менять.
Специалисты, управляющие проектами по разработке программ и устройств на их основе, либо попадают в заложники к программистам из-за своей недостаточной технической подкованности, либо ведут себя чрезмерно понимающе, так как сами являются разработчиками. Пользователям таких программ и устройств невдомек, что эти продукты могут также обладать необходимым функционалом и при этом обеспечивать приятное взаимодействие, как все прочие качественно спроектированные инструменты.
Программисты отнюдь не являются нашими врагами. Они прилагают массу усилий, чтобы придать своим программам должной легкости взаимодействия. К сожалению, они воспринимают все через призму собственного опыта; в итоге программами с легкостью могут пользоваться только другие разработчики, чего не скажешь о простых людях.
Невозможно даже представить стоимость некачественно спроектированного программного обеспечения. Сколько стоит потерянное время Джейн и Сунила, негодование скучающих пассажиров самолета, жизни людей, летевших роковым рейсом 965? Это нельзя измерить. Но наибольшую цену мы платим за упущенные возможности. Пока мы растрачиваем свое время на раздражение, попытки разобраться, разгребание последствий и несем издержки в смертельной схватке с программами, мы не используем весь тот заложенный в них потенциал обещаний быть более человечными, мощными и дружелюбными созданиями, какие только можно вообразить. На самом деле программное обеспечение невероятно гибкое и способно превзойти самые смелые ожидания. Все, что для этого нужно, – создать условия для разумного сотрудничества между проектировщиками пользовательского взаимодействия и разработчиками программ.
2. Когнитивное сопротивление
Одно дело – понимать, что проблема есть, а другое – предложить план ее решения. Одним из ключевых моментов при решении проблем является тот язык, который мы используем. За годы своей работы я изобрел множество удобных терминов и ментальных моделей. Они доказали свою актуальность при обозначении проблемы, вызванной сложными в применении программными продуктами. В этой главе вы познакомитесь с этими терминами и идеями и увидите, как с их помощью польза от проектирования взаимодействия проникнет в наш дефективный процесс разработки.
Поведение, не зависимое от физических силЕдва оставив позади индустриальную эпоху, мы оказались в преддверии эры информации, но инструменты в наших руках все те же. В индустриальную эпоху инженерам была под силу любая задача. Подчиняя себе сталь и бетон, они воздвигали мосты и небоскребы, создавали автомобили и космические корабли, которые прекрасно работали и радовали тех, кто ими пользовался. Теперь мы осторожно ступаем в век информации, нам все чаще приходится работать с программами, и мы снова задействуем лучших из наших инженеров для решения задач. Но, в отличие от прошлого, все уже не так просто. Конечно, компьютеры обладают несомненной производительностью и скоростью, а на программное обеспечение в целом можно положиться, но теперь мы столкнулись с расстроенными, неудовлетворенными, несчастливыми и непродуктивными пользователями.
Сегодня инженеры обладают не меньшим потенциалом, чем они обладали ранее, поэтому отсюда следует, что перед ними предстала качественно новая проблема, отличная от всего того, с чем им приходилось сталкиваться в индустриальную эпоху. Будь это не так, они успешно решали бы задачи и прежними инструментами. За неимением подходящего термина я обозначил сущность этой новой проблемы как «когнитивное сопротивление». Это такое сопротивление, с которым сталкивается человеческий ум, когда ему приходится разбираться в сложной системе правил, меняющихся в зависимости от поставленной задачи. Процесс взаимодействия с программами обладает высоким коэффициентом когнитивного сопротивления. Процесс взаимодействия с физическими устройствами, даже сложными, обычно имеет более низкий коэффициент сопротивления; это объясняется тем, что у механических устройств, как правило, ограниченный набор возможных состояний относительно количества возможных действий с ними.
Играть на скрипке чрезвычайно сложно, однако это действие обладает низким коэффициентом когнитивного сопротивления. Несмотря на то, что скрипач производит с ней множество различных по сложности манипуляций, извлекая самые невероятные звуки, скрипка никогда не войдет в метасостояние, при котором в зависимости от разных способов игры она будет звучать как труба или колокольчик. То, как поведет себя скрипка, всегда можно предвидеть: это подчиняется законам физики, хотя поначалу бывает не так просто понять ее поведение и научиться с ней обращаться. У микроволновой печи, напротив, высокий коэффициент сопротивления, так как каждая из десяти ее кнопок с цифрами может находиться в двух режимах, в зависимости от контекста. В одном случае кнопки регулируют интенсивность микроволнового излучения, а в другом они же отвечают за продолжительность тепловой обработки. Из-за таких переключений, в дополнение к отсутствию сенсорной обратной связи, по которой можно было бы определить, в каком режиме находится печь, когнитивное сопротивление возрастает в разы.
К примеру, клавиатура пишущей машинки не имеет метафункций. Нажимая клавишу с буквой «У», вы увидите на странице букву «У». Нажав последовательность клавиш из букв «СТЕРЕТЬ ВСЕ», вы увидите на листе бумаги слова «СТЕРЕТЬ ВСЕ». Компьютер же, в зависимости от контекста, при той же последовательности букв может задействовать метафункцию. Он выполнит операцию более высокого порядка и в самом деле что-то сотрет. То есть машина будет вести себя уже не так однозначно.
Когнитивное сопротивление, как и сопротивление в физическом мире, порой даже полезно, если присутствует в небольших количествах, но если оно увеличивается стремительными темпами, то вред от него растет экспоненциально. При этом обычное сопротивление является физической силой, которую можно выявить и измерить, а когнитивное сопротивление – инструмент в некотором смысле «судебный», и не нужно воспринимать его буквально. Но стоит отметить, что такие понятия, как любовь, честолюбие, мужество, страх, истина, при всей их реальности нельзя выявить и измерить. Равно как к ним нельзя применить методы инженерной науки.
Опытные производители микроволновых печей, как правило, привлекают экспертных консультантов по человеческому фактору, чтобы спроектировать такие кнопки, различать и нажимать которые пользователю будет удобно. Однако все, к чему адаптируют кнопки, эксперты по человеческому фактору, – это глаза и пальцы человека, но не его ум. В результате у микроволновых печей практически отсутствует коэффициент сопротивления в отношении физических действий с ними, зато когнитивное сопротивление при попытках разобраться в их поведении остается на высоком уровне. Открывать и закрывать дверцу, физически нажимать на кнопки достаточно легко, но вот добиться от панели управления выполнения нужных вам задач бывает не так просто. При всей сложности управления микроволновой печью мы в целом понимаем, как она работает, и это заставляет нас забыть о прочих трудностях взаимодействия с ней. Вспомните, как часто вы ошибочно устанавливали время разогрева на одну секунду или один час вместо одной минуты? Или как часто вы включали десятиминутный разогрев на пятом уровне мощности вместо пятиминутного на десятом уровне?
Каждый элемент на экране компьютера имеет свой коэффициент когнитивного сопротивления. Даже программы с таким простым интерфейсом, как браузеры, заставляют мозг пользователя работать в разы интенсивнее, чем при взаимодействии с любым механическим устройством. Это происходит оттого, что за каждой синей гиперссылкой скрывается переход к другой странице интернета. Все, что вам доступно, – это кликать по ссылке, но конечная точка, в которую вы при этом попадете, может измениться без каких-либо предупреждений, и вы не можете на это повлиять. В основе гиперссылки лежит метафункция. Из-за наличия подобных дополнительных «гиперсмыслов» объект и обзаводится когнитивным сопротивлением.
Дизайн и проектирование – понятия внушительные.
Суть этой книги в том, что в проектировании продуктов, обладающих интерактивностью, должны принимать участие проектировщики взаимодействия (interaction designers), а не разработчики программного обеспечения (software engineers). Программисты обычно сразу воспринимают это утверждение в штыки, ведь проектирование и дизайн составляют значительную часть их работы. Более того, их смертельно пугает тот факт, что теперь они будут лишены самого интересного и творческого аспекта процесса разработки и обречены писать нудный код, не получая от этого никакой радости. Это совершенно неверно. Их беспокойство произрастает из неясного понимания понятий «дизайн» и «проектирование».
Дизайн и проектирование присутствуют на протяжении всего процесса разработки программного продукта – от выбора языка программирования до подбора цвета фургона, доставляющего коробки с готовым продуктом. Ни в одном другом аспекте этого длительного и требующего полной отдачи процесса так не задействованы дизайн и проектирование, как в программировании. Программистам приходится принимать решения, связанные с дизайном и проектированием, на каждом шаге процесса разработки. Программисту нужно продумать, как осуществлять вызов одной процедуры через другую, как передавать, хранить, изменять и делать доступной информацию и сообщения о состоянии, как обеспечить валидность кода. Все эти решения, как и миллионы им подобных, – это непосредственно связанные с дизайном и проектированием решения, успешность которых зависит от того, насколько хорошо программисты используют свою рассудительность и мастерство.
Все многообразие видов дизайна и проектирования я могу легко поделить надвое. По одну сторону останутся те решения, которые непосредственно касаются взаимодействия с пользователем, а по другую – все, что к этому не относится. Когда вы встретите упоминание «проектирования взаимодействия» в этой книге, знайте, что под этим я понимаю только первую категорию решений. В отношении дизайна и проектирования, не влияющего на конечного пользователя, я применяю термин «проектирование программного продукта» (program design).
Осуществить такое разделение, основываясь исключительно на разнице в технических аспектах, представляется невозможным. Никак не получится выразить его в терминах, которыми привыкли оперировать инженеры, поскольку отличительный фактор здесь базируется на свойствах человеческой личности, а не на технических характеристиках, а инженерные правила неприменимы к людям. Например, проектировщики взаимодействия часто не придают значения выбору языка программирования для разработки программы. Тем не менее, как только от используемого языка будет зависеть время отклика программы, что, несомненно, относится к аспектам проектирования взаимодействия, проектировщику найдется что сказать.
Практически все вопросы проектирования взаимодействия лежат в плоскости выбора того, как будет вести себя программа, какой функциональностью обладать, как информировать пользователя и каким образом все это будет ему представлено. Процесс проектирования взаимодействия конечного продукта – это единственное из того, что я хочу отнять у программистов и передать в руки компетентных проектировщиков.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?