Психбольница в руках пациентов - [86]

Шрифт
Интервал

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

Вежливая программа дает мгновенное удовлетворение

Компьютерное программирование – это сказка про белого бычка. Компьютеры не способны ровным счетом ни на что, пока вы не приложите гигантские усилия для написания программы. Разработчики программного обеспечения медленно усваивают этот принцип отложенного удовлетворения и потому склонны писать программы, ведущие себя таким же образом. Программы заставляют пользователей вводить все возможные сведения, прежде чем сделать даже самый крошечный объем работы. Веди себя подобным образом какой-либо человек, он бы вам очень не нравился.

Мы можем сделать программы намного более вежливыми, предположив, что они работают на пользователя и предоставляют ему информацию, не требуя единомоментно значительных усилий. Возьмите хоть телевизор Теда – Тед должен иметь возможность смотреть программы без необходимости настраивать режимы.

Вежливой программе можно доверять

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

* * *

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

Пример: Drumbeat от Elemental

В числе интересных для нас проектов можно упомянуть небольшую начинающую компанию из Сан-Диего, компанию Elemental Software. Продукт компании, названный Drumbeat, представляет собой инструмент для создания динамических веб-сайтов, основанных на базе данных.

Набор персонажей, разработанный нами для Elemental, оказался незаменимым, хотя и состоял всего из двух очень простых персонажей, не имевших даже фамилий33. Создав их и поняв их цели, мы получили понимание, полностью изменившее философию проектирования этого продукта.



Elemental с самого начала захотела многого. Компания намеревалась создать программу, существенно превосходящую по мощности все конкурирующие приложения. Кроме того, программа и в простоте применения должна была превосходить все прочие. Эти цели вполне совместимы. Большинство наших проблем можно отнести на счет приобретения компанией Elemental существующего продукта, на основе которого нам и пришлось работать. Наши желания постоянно вступали в конфликт с уже существующим кодом.

Уже созданный продукт обладал мощными возможностями, но создавался на основе размытых воззрений на конечных пользователей. Имеющимися функциями было трудно воспользоваться, и поэтому продукт получился не слишком мощным. Эд Форман (Ed Forman), новый вице-президент по разработке, сделал ставку на Cooper Interaction Design. Он сам был человеком достаточно новым и еще не до конца завоевал доверие программистов, поэтому наше присутствие могло стать источником переворота. Однако Эд отлично выступил в роли защитника и дал нам достаточно времени, чтобы пообщаться с его командой, узнать их, познакомить их с нашими методами.

Расследование

В своем расследовании мы опросили несколько человек, в основном веб-мастеров. По мере продвижения у нас стала складываться ясная картина. Область разработки для Всемирной паутины удобно делилась на два лагеря. Разумеется, мы создали типичный персонаж для каждого лагеря, и эти два персонажа стали ключом к головоломке Drumbeat, хотя и не совсем так, как мы ожидали.

Через несколько дней после начала проекта мы смогли дать имена и приближенные описания двум веб-разработчикам – Бетси и Эрни.

Бетси – дизайнер. Она носит черное и пьет эспрессо. Раньше была художницей, но потом ее укусил паук Web, и теперь она создает макеты экранов вместо макетов страниц. Она прочла достаточно книг, чтобы понять, как создавать симпатичные, хотя простые и статические, страницы для Всемирной паутины. Она овладела основами HTML, но не понимает и не хочет понимать в программировании ровным счетом ничего. Собственный сайт Бетси – мешанина модного дизайна, с размытыми шрифтами, лоскутами пастельных мазков, а также цитатами из Патти Смит и Эстер Дайсон.

Если Бетси требуется сложная обработка данных, ей приходится просить помощи у Эрни. Эрни – программист-спец нового поколения. Обожает компьютеры, компьютерные игры, компьютерные языки и компьютерное оборудование. В сравнении с программистами предыдущего поколения он пока немного легковесен: не знает языков С, C++, ассемблера, но невероятно умело обращается с инструментами вроде CGI, Perl, JavaScript и Visual Basic. Он знает сотни компонентов ActiveX и JavaBeans. Он способен создать достаточно функциональный модуль из сложных компонентов всего за несколько дней – та же работа в восьмидесятые годы заняла бы у программиста на C года четыре. Собственный сайт Эрни – случайная подборка цитат из «Звездного пути» и «Симпсонов». Здесь кричащий красный текст на черном фоне, восемь различных шрифтов, мигающий текст, потоковый звук, дергающиеся пиктограммы, кнопки Submit и ссылки на самые классные Quаkе-сайты.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.