• Главная
  • Оглавление
  • Обратная связь
  • Лента RSS
  • Правила
Что здесь уже нашли

Пользовательский интерфейс

26 февраля 2008, 04:44

Сегодня, благодаря совершенно неожиданным (по меркам 5-летней давности) применениям компьютеров, пользовательский интерфейс привлекает все больше внимания. К сожалению, как всякое модное слово (искусственный интеллект, мультимедиа, Internet) термин пользовательский интерфейс незамедлительно начали использовать в качестве рекламного аргумента в результате чего его смысл стал куда менее определенным. В этой ситуации было бы странно претендовать на истину, однако некоторыми соображениями автор этих строк хотел бы поделиться с читателями.

Во-первых, в понятие пользовательского интерфейса (ПИ) входит не только, и даже не столько, картинка на экране - трехмерная, анимированная, просто выполненная в модном дизайне, - а способы взаимодействия пользователя с системой. В этом контексте очень интересно сравнить материалы по пользовательским интерфейсам в российской компьютерной прессе (напоминающие мне рецензии искусствоведов на художественные выставки) и классическую книгу Дональда Нормана "Психология повседневных вещей" ("The Psychology of Everyday Things"), где основным примером книги оказался дизайн дверных ручек.

Еще одна книга, очень популярная среди американских специалистов по пользовательским интерфейсам, анализирует развитие столовых приборов в средние века. В обеих книгах дизайн имеет подчиненное положение. Его главная цель - облегчить пользование предметом.

Этот взгляд кардинально отличается от широко распространенного мнения, что пользовательский интерфейс - это набор "интерфейсных элементов" и их расположение на экране. Сама номенклатура принятых в среде Windows интерфейсных элементов вызывает большие сомнения в том, что на ее базе можно создать действительно удобные интерфейсы.

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

Нам, конечно, не привыкать к тому, что неестественные вещи объявляются самыми правильными, но все-таки никакие уговоры и маркетинговые ходы не сделают правильным и удобным то, что противоречит человеческой природе.

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

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

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

Вы скажете, что люди все же учатся. Это неправда, поскольку сегодня практически нет пользователей-любителей. До последнего времени на компьютерах любители могли только играть в игры. (Кстати, у популярных игр интерфейс очень хороший и совершенно не оконный.) Сегодня Internet стал для обыкновенных людей мощной побудительной причиной покупать компьютеры. И уже раздаются критические голоса об интерфейсе, трудно понимаемом простыми пользователями. Можно с уверенностью предсказать, что дальше станет хуже. Прирастать пользователи будут только любителями.

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

Отправной точкой всякого хорошего интерфейса является метафора.

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

  • Во-первых, пользователю легче понимать и интерпретировать изображение на экране.
  • Во-вторых, ему не нужно каждый раз заглядывать в руководство, чтобы узнать, как выполняется то или иное действие. По крайней мере некоторые действия должны "естественно" следовать из метафоры.
  • В-третьих, у пользователя возникает чувство психологического комфорта, характерного для встречи с чем-то хорошо знакомым. (В этом, кстати, секрет популярности старых мелодий. Все гастролеры знают, что публика им не простит, если они не исполнят что-нибудь давно и хорошо известное.)

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

В качестве примера удачной метафоры в интерфейсе можно привести Lotus Organizer, внешний вид которого напоминает привычный еженедельник, функции которого и выполняет этот продукт. Примером неудачной метафоры, точнее ее полного отсутствия там, где она необходима, может служить Explorer Windows.

Допустим мы придумали замечательную метафору для нашего интерфейса. Сохраним ее в секрете как коммерческую тайну и пойдем дальше. Теперь нам нужно сделать концептуальный дизайн интерфейса. Что это такое? В рамках нашей метафоры мы должны разработать систему интерфейсных элементов, своего рода алфавит взаимодействия, изучив который пользователь сможет легко делать то, что ему нужно. Еще мы должны найти изящный способ изображения как отдельных элементов так и их групп. И, наконец, мы должны выбрать общий изобразительный стиль, который был бы легко узнаваем и приятен для глаз.

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

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

Концептуальный дизайн интерфейса должен базироваться на идее интерфейсной среды.

В сущности, на время работы с системой пользователь погружается в среду интерфейса подобно тому, как приехав на сафари, турист погружается в среду дикой природы. Здесь слово "среда" применяется не для красоты, а как обозначение типичной для поведения человека в различных средах связки "сигнал-действие".

Эта идея принадлежит психологу Гибсону (не путайте с популярным фантастом) и извлечена мной из его книги "Экологический подход к психологии восприятия". Он утверждает, что наше восприятие основано на мотивации в том смысле, что если мы хотим есть, то видим только съедобные вещи, а если устали - то только предметы мебели, предназначенные для отдыха. То есть человек не просто видит, а опрашивает среду, руководствуясь различными мотивами. В свою очередь, среда подает человеку разные сигналы. Наряду с ответами на его запросы, есть сигналы первоочередные (или всегда запрашиваемые), связанные с физической опасностью. Опираясь на полученные сигналы, человек осуществляет различные действия.

Для искусственных сред (например, системы автомобильных дорог) такая модель с очевидностью верна. Гибсон, впрочем, считает, что она верна и для естественных сред. Во всяком случае, как отправная точка для дизайна интерфейса, она очень продуктивна. Так, кнопки различных диалогов в стандартном оконном интерфейсе можно трактовать как сигналы к их нажатию. Но эти сигналы крайне слабы, поскольку все кнопки выглядят одинаково, отличаясь только текстами в них, а функции у них совершенно различны. То есть из всего разнообразия изобразительных средств - формы, размера, цвета, текста - в кнопках диалогов используется только текст. Считается хорошим тоном иметь кнопки одного размера и аккуратно расположенные, чтобы вынудить пользователя каждый раз прочитывать текст. Исключением, подтверждающим правило, является кнопка OK, которая смотрится не как текст, а как изображение (иероглиф). Не случайно ни в одной из известных мне локализаций надпись на этой кнопке не переводится на другой язык.

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

Понятия среды и понятие метафоры близко связаны.

Если среда по виду и некоторым опорным элементам будет напоминать пользователю что-то уже знакомое, он сможет быстрее приспособиться к ней. Вместе с тем выбранная метафора может продиктовать все изобразительные решения дизайна интерфейса. Однако следует остерегаться фотографической похожести среды в компьютере с выбранной метафорой. (Тут есть аналогия с живописью.) Все-таки компьютерная среда - искусственна и полностью повторить все элементы взаимодействия из физического мира не удастся. А фотографическая похожесть может спровоцировать пользователя на то, чтобы пользоваться этой искусственной средой в точности как той, которую она напоминает. В первый же раз, когда пользователь натолкнется на различие, он испытает тяжелый психологический шок, который может привести к полному отторжению системы.

В этом секрет непопулярности многих компьютерных игр с прекрасным изобразительным рядом. А вот другие игры, скажем Тетрис и столь же популярные Color Lines (шарики), имеют очень простую и условную среду, обеспечивающую психологический комфорт пользователя.

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

Сложная картинка психологически готовит к сложной жизни с программой.

Из этого, кстати, не следует, что у сложной программы должна быть изощренная графика и сложные пути взаимодействия. (Важное напоминание - мы разговариваем не о программах, предназначенных для профессиональной деятельности!) Лучше эту сложность "вытаскивать" постепенно, подобно кролику из шляпы или подобно наращиванию уровней в компьютерных играх.

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

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

Если у читателя создалось впечатление, что я ругаю оконный интерфейс, то это не так. Я использую его как всем известный источник аналогий и примеров. Оконный интерфейс был в начале 80-х столь же революционным и сыграл столь же положительную роль, что и текстовый интерфейс 70-х. Просто всему свое время. Сегодня вычислительные возможности машин позволяют разработчику интерфейсов пользоваться средствами, о которых полтора десятка лет назад страшно было подумать.

Во всех центрах, известных разработкой новых интерфейсов (XEROX PARC, MIT Media Lab, Apple Computer, Carnegie Mellon University), идут разработки разных концепций дизайна интерфейсов, опирающихся на возможности анимации. Прежде чем описывать их, я хочу изложить свою точку зрения на "физику интерфейса", однажды уже опубликованную, но которую уместно здесь повторить.

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

При переходе от алфавитно-цифровых дисплеев к графическим поле дисплея казалось непомерно большим и проблема синхронизации точки взаимодействия была самой сложной. Ее решение было выполнено по принципу "разделяй и властвуй". Поле экрана разбивалось на прямоугольники-окна и вся работа велась только в одном из них - так называемом активном окне. Одновременно сменилась форма текстового курсора, и, что очень важно, он начал подмигивать. Это требовалось для облегчения проблемы поиска текстового курсора в окне. Поиск же курсора мыши при его потере из поля внимания пользователь (до сих пор) выполняет подергиванием мыши.

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

Эта возможность не только теоретически осознана, но и уже около пяти лет находится в стадии экспериментального исследования. Две анимированные среды интерфейса разработаны в той самой фирме XEROX PARC, которой мы обязаны появлением идеи оконного интерфейса (и даже в группе того самого Стюарда Карда, которому принадлежит авторство этой идеи). Одна - "Конические деревья" - является визуализацией файловой системы компьютера и похожа на систему детских пирамидок, каждый уровень которой соответствует уровню файлового каталога. Сами файлы из каталога отображаются в виде 3-мерной карусели под своим каталогом. Соль модели в том, что нужный файл можно "приблизить" поворотом карусели (может быть, не одной), идущим в режиме анимации.

Вторая модель - "Стена в перспективе" - также отображает файловую систему, но вне ее иерархии, согласно двум каким-то параметрам, например частоте обращения к файлу и его размеру. Это нормальная стена, только очень длинная, разбитая на три отрезка. Средний из них отображается на экране плоско, а два крайних уходят в перспективу. Пользователь может сделать средним любой отрезок стены, причем это тоже происходит в режиме анимации. Для Карда анимация - принципиальный момент, так как "анимация сохраняет в восприятии пользователя идентичность объекта", то есть пользователь легко соотносит объекты в конечной точке движения с объектами в начальной.

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

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

Существует еще одно свойство анимационного пользовательского интерфейса, которое существенно улучшает его полезность по сравнению с графическим интерфейсом, а именно динамически визуальные сигналы.

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

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

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

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

Однако, решая многие проблемы для пользователя, анимационный интерфейс, как это часто бывает, ставит тяжелые проблемы перед программистом и дизайнером.

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

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

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

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

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

Кому это нужно?

Пользователю, который ничего этого не заметит, но зато будет гораздо проще и быстрее взаимодействовать с системой. Хороший интерфейс похож на удобную обувь - никто его не замечает, а, если обратить на него внимание, в ответ получишь равнодушное "Ну и что такого?". Зато плохой интерфейс у всех на виду и на устах.

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

Моя любимая цитата из обзора интерфейсов - "Интерфейс этой программы неестественен, потому что клавиша Alt+F4 не закрывает приложения". Здесь уже требуется талант Дарвина, чтобы понять происхождение такого вида естественности!

Многие интерфейсные проблемы являются естественным продолжением маркетинговых достижений. Предположим, что ваша фирма выходит на рынок с новой моделью аудиомагнитофона, отличающейся от всех остальных некой возможностью А. Для успешной продажи этой модели та кнопка на панели управления, которая реализует А, должна быть как можно заметнее. Тогда потенциальный покупатель сам спросит "А что это?" - и продать ваше изделие будет гораздо легче. Однако, купив его и включив дома, этот покупатель будет, скорее всего, пользоваться стандартными кнопками для стандартных действий, показывая возможность А только гостям.

По материалам сети Internet

Оставить комментарий

Если не хочется кусать локти

20 февраля 2008, 12:49

Сегодня произошло удивительное событие.

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

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

Вот такой странное и неожиданное происшествие сегодня случилось.

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

Чтоб не кусать локти

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

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

Вопрос резервного копирования информации регулярно поднимается практически во всех форумах и идей по этому поводу высказывается не мало. Все мы прекрасно понимаем, что это нужно и полезно, но все равно, в силу собственной лени, о необходимости такого копирования вспоминаем только тогда, когда бесценная информация безвозвратно потеряна. Каждый думает, что именно с ним этого никогда не случится. А потом кусает локти.

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

Выбираем место

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

Наилучший вариант — создание копии важных данные на сменных носителях. Для этой цели можно использовать диски CD-RW или DVD-RW, но этот процесс быстрым не назовешь, да и автоматизации он плохо поддается, поэтому в этой статье его опустим. Тем более, что ничего объяснять тут не нужно — просто время от времени копируйте всю важную информацию на диски с помощью своей любимой записывалки дисков и все.

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

Если флэшки у вас нет или ее использование по каким-то причинам нежелательно, то можно создавать копии и прямо на винчестере, но тут следует придерживаться одного важного правила: оригинал и копия должны быть максимально удалены друг от друга. Сейчас поясню, что это значит.

  • Вариант №1.
    Если в вашей системе установлено несколько винчестеров и оригинальные (важные) данные расположены на первом из них, то копия всегда должна быть расположена на втором, третьем, четвертом винчестере, но только не на том, где лежит оригинал. Это позволит воспользоваться копией даже если винчестер с оригиналом выйдет из строя.

  • Вариант №2.
    В вашей системе всего один винчестер, но он разбит на несколько разделов (диски C:, D:, E:, F: и т.д.). В этом случае копия и оригинал должны располагаться на разных разделах. Если винчестер выйдет из строя, то информации вы все равно лишитесь, но такой вариант все же позволит вам в некоторых случаях спасти данные. Например при случайном форматировании раздела с оригиналом или уничтожении оригинала в результате вирусной атаки.

  • Вариант №3 (самый ненадежный)
    В вашей системе всего один винчестер и на нем существует всего один раздел. В этом случае копия данных должна располагаться в отдельной папке. Пояснять тут нечего — если уничтожите оригинал, то сможете поднять данные из резервной папки, но любое более серьезное происшествие (вирус, форматирование, выход из строя носителя) практически 100%-но лишит вас и оригинала и копии. Поэтому такой вариант наименее предпочтительный.

Бэкапимся

Итак, с местом разобрались, теперь переходим к способам создания копий и попыткам автоматизации этого процесса.

Для резервирования данных создана масса специальных программ-бэкаперов — пару минут общения с любым поисковиком и вы найдете ссылки на десятки примеров такого софта. Есть даже одна, встроенная прямо в Windows (Пуск — Программы — Стандартные — Служебные — Архивация данных). Но, как и все поделки Microsoft, она примитивна и неудобна, поэтому пользоваться ей не рекомендую.

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

Ладно, давайте начнем.

Способ №1 — простое копирование.

Самый простой способ создания резервной копии — тупо откопировать важные файлы (и папки) в место резервного хранения. Достичь этого можно обычной командой copy. Например команда:

copy /Y c:\texts\*.* f:\arhiv\

скопирует все файлы из папки texts диска C: на диск F: в папку arhiv.

Главный недостаток этой команды — она не умеет копировать папки. Но это легко исправить, достаточно воспользоваться программой xcopy, которая входит в состав Windows. Команда в этом случае будет выглядеть так:

xcopy c:\texts\*.* f:\arhiv\ /Y /S

Теперь она скопирует все содержимое папки texts диска C:, включая все вложенные папки и все файлы из них.

В реальной жизни чаще нужно копировать не все подряд, а файлы определенных типов. В этом случае можно воспользоваться такими командами:

xcopy c:\texts\*.doc f:\arhiv\ /Y /S

скопирует все документы Microsoft Word

xcopy c:\texts\*.xls f:\arhiv\ /Y /S

скопирует все документы Microsoft Excel

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

Таких недостатка два: медленная скорость работы и накопительность. Дело в том, что эти команды просто тупо копируют файлы из одного места в другое. При этом если в папке-приемнике уже есть файл с тем же именем, что и в папке-источнике, то он заменяется. Это то, что нам и надо.

Проблема в другом — если в исходной папке какой-либо файл был удален (например он больше вам не нужен), то в копии он все равно останется. Таким образом после нескольких копирований вы обнаружите, что размер папки с копией гораздо больше размера папки-оригинала. Да и сама папка-приемник представляет собой свалку из документов, большинство из которых уже должно быть давным-давно удалено.

К счастью решение этой проблемы достаточно тривиально — надо просто очистить папку-приемник перед созданием в ней резервной копии. Сделать это можно командой:

del f:\arhiv\*.* /S /F /Q

Она уничтожит все файлы из папки архива и всех вложенных в нее папок. Но, к сожалению она не умеет удалять папки, поэтому мусор в виде пустых вложенных папок все же останется.

Запускаем робота

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

Ничего сложного в этом нет. Запустите блокнот, наберите в нем такой текст:

Пример BAT-файла
del f:\arhiv\*.* /S /F /Q
xcopy c:\texts\*.xls f:\arhiv\ /Y /S

и сохраните его на рабочем столе под именем "BackUp.bat" (естественно без кавычек). Обратите внимание на расширение этого файла, оно должно быть именно BAT, а не TXT.

В результате этой простой операции у вас на рабочем столе появится ярлычек, кликнув по которому вы запустите полностью автоматический процесс создания резервной копии всех файлов Microsoft Excel из папки texts диска C:. Сама копия будет создана в папке arhiv диска F:. Естественно эта папка должна существовать, иначе копирование выполнено не будет.

Перед копированием так же автоматически будет сделана очистка папки архива от старых файлов.

А что делать если нужно создать копии нескольких папок? Неужели придется создавать по BAT-файлу для каждой из них?

Вовсе нет. Достаточно одного файла чтобы создать сколько угодно копий. Например:

Модифицированный BAT-файл
del f:\arhiv\*.* /S /F /Q
xcopy c:\texts\*.* f:\arhiv\texts\ /Y /S
xcopy c:\prikaz\*.* f:\arhiv\prikaz\ /Y /S
xcopy d:\doc\*.* f:\arhiv\doc\ /Y /S

Этот файл создаст полные копии папок texts и prikaz диска C: и папки doc диска D:. Все они будут размещены в отдельных папках внутри архивной папки arhiv диска F:.

Способ №2 - использование WinRar

ОК. То, что было описано выше — слишком примитивный подход, имеющий недостатки. Во-первых у нас все еще не удаляются пустые папки, во-вторых копирование идет слишком медленно, т.к. копируются абсолютно все файлы, хотя делать это каждый раз вовсе не обязательно.

Хорошо бы, добиться такого эффекта, когда:

  • в копии заменяются только те файлы, которые изменились в оригинале
  • в копию добавляются те файлы, которые появились в папке оригинала
  • из копии удаляются все папки и файлы, которые удалились в оригинале.

Таким образом количество операций копирования свелось бы к минимуму и мы смогли бы максимально ускорить такой скучный процесс. К сожалению штатными средствами Windows добиться этого не получится и все же придется использовать дополнительные программы.

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

Его достоинства:

размер полученной копии будет в несколько раз (а иногда и в несколько десятков раз!) меньше размера оригинала.

Его недостатки:

относительно медленная работа, т.к. требуется время на сжатие информации

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

Итак, условимся, что оригинальные данные находятся в папках c:\texts\, c:\private\passwords\ и d:\work\prikaz\. Копии будем сохранять в папку f:\arhiv\, а сам архиватор установлен в папку c:\winrar\. В этом случае для полной автоматизации процесса нам надо создать BAT-файл с таким содержимым:

Навороченный BAT-файл
c:\winrar\winrar.exe u -as -r -y -s -rr f:\arhiv\texts.rar c:\texts
c:\winrar\winrar.exe u -as -r -y -s -rr f:\arhiv\passwords.rar c:\private\passwords
c:\winrar\winrar.exe u -as -r -y -s -rr f:\arhiv\prikaz.rar d:\work\prikaz

В результате его работы в папке arhiv диска F: будут созданы три файла: texts.rar, passwords.rar, prikaz.rar, содержащие полные копии соответствующих исходных папок.

Первый запуск этого BAT-файла может быть довольно продолжительным, т.к. архиватору придется полностью упаковать все файлы из исходных папок. Зато повторные запуски будут только изменять содержимое в уже созданных архивах и поэтому время их работы будет намного меньше.

Естественно вы можете использовать в именах папок русские буквы и пробелы, но в этом случае нужно брать пути в двойные кавычки. Например так:

Пример использования русских букв и пробелов
c:\winrar\winrar.exe u -as -r -y -s -rr "f:\мой архив\Тексты.rar" "c:\Мои Документы"

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

Комментариев: 2

14 принципов создания вежливых программ

18 февраля 2008, 10:43

Профессора Стэндфордского Университета Клиффорд Насс (Clifford Nass) и Байрон Ривз (Byron Reeves) занимались изучением реакции человека на компьютер. Применяя классические методы социальной психологии, они обнаружили в поведении людей нечто интересное. Результаты их работы, опубликованные в книге "The Media Equation", показывают, что человек реагирует на компьютер так же как на других людей.

Для нашего мозга компьютеры ведут себя больше как люди, а не как камни и деревья. Таким образом мы бессознательно относимся к ним, как к людям, даже тогда, когда считаем это бессмысленным.

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

Из этого исследования следует важный вывод: Если мы хотим, чтобы наша программа понравилась пользователям, мы должны сделать ее поведение похожим на поведение человека. Довольно просто, не правда ли?

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

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

Если же программа уважает пользователя и помогает ему, то она обязательно ему понравится. И снова, это произойдет независимо от ее интерфейса; интерфейс командной строки тоже будет нравиться, если он будет обладать вышеуказанными качествами.

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

Торговцы "Гербалайфом" одеты в красивые костюмы, широко улыбаются и полны впечатляющей информации, но разве они нам нравятся? Человек склонен к ошибкам, медлителен и импульсивен, но это не значит, что программа с такими качествами будет считаться хорошей. Человек обладает множеством других качеств делающих его хорошо подходящим для роли служащего – роли, которую выполняют большинство программ.

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

Я спросил моего друга Кейта Плиса (Keith Pleas), известного программиста-эксперта, занимающегося к тому же вопросами пользовательского интерфейса, что он думает о создании более человечных программ. Кейт воспринял добавление в программу человечности как добавление нечеткости во взаимодействие. Он ответил:

Цитата:

Может ли компьютер "лгать" вам? Может ли компьютер сказать вам, что у вас на счету "около 500$"? Может ли компьютер дать вам другой ответ, чем только что кому-то еще? Если мы увеличиваем человечность, мы должны уменьшить некоторую "компьютерность", по крайней мере в сравнении.

С точки зрения программиста ответ Кейта выглядит естественным. Действительно, компьютер никогда не выдаст вам приблизительный баланс, но тогда компьютер не увидит разницы между выдачей сообщения о том, что у вас на счету "около 500$" за долю секунды, и точной суммы 503.47$ за 17 минут. Более вежливая, более человечная программа сразу бы сообщила, что у вас на счету "около 500$" а затем проинформировала бы вас, что даст более точный ответ через несколько минут. Тогда выбор будет за вами – стоит ли тратить время на дополнительную точность.

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

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

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

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

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

Например, в моей программе электронной почты есть 11 человек по имени Дейв. С большинством из них я общаюсь редко, но этот список включает в себя Дейва Карлика (Dave Carlick), которому я пишу письма постоянно. Когда я создаю новое письмо и печатаю "Дейв" в графе "Кому", я ожидаю, что на основе моего поведения в прошлом программа догадается, что я имею в виду Дейва Карлика. Если бы я хотел послать письмо другому Дейву (например Дейву Форе), я бы написал Дейв Ф, Девид Форе или что-то еще, чтобы указать на мой неординарный выбор. Вместо этого, программа ведет себе довольно глупо, всегда предлагая мне окно для выбора нужного Дейва из 11 вариантов. Программе попросту наплевать на меня, она относится ко мне, как к чужаку, хотя я – единственный человек, которого она знает.

Вежливая программа относится ко мне иначе, чем к другим.

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

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

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

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

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

Вежливая программа обладает здравым смыслом.

Хотя любой хороший ресторан позволит вам побывать на своей кухне, но когда вы впервые входите в него, официант, руководствуясь здравым смыслом, проводит вас в обеденный зал. Большинство программ не делают различия между кухней и обеденным залом, помещая рядом часто-используемые и никогда не используемые элементы управления. В программе можно встретить пункты меню предлагающие простые, безвредные функции рядом с чрезвычайными, отменить которые невозможно. Это как если бы вас усадили за стол рядом с духовкой. Упомянутый ранее пример "около 500$"- хорошая иллюстрация наличия здравого смысла в интерфейсе.

Мы то и дело слышим ужасные истории о компьютерных системах, которые шлют клиентам чеки на 0.00$ или счета на 8,943,702,624.23$. Изолировав клиентов от компьютерных систем, можно облегчить труд отдела обслуживания клиентов, однако служащим все равно приходится ими пользоваться. Служащим платят за это, поэтому они стараются не слишком сильно жаловаться, тем более что жаловаться-то некому – отдел обслуживания клиентов явно не для них.

Вежливая программа предвосхищает мои нужды.

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

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

Вежливая программа отзывчива.

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

У меня на компьютере обычно установлено разрешение экрана 1024х768. Когда я провожу презентации, мне необходимо временно сменить разрешение на 800х600 чтобы оно соответствовало низкому разрешению моего видео-проектора. Многие из запущенных программ, включая Windows 95, реагируют на смену разрешения изменением размера, формы и положения на экране своих окон. Однако когда я меняю разрешение обратно, окна не возвращаются к своим размерам. Информация об этом легко доступна, однако программа не заботится о моих очевидных нуждах.

Вежливая программа умалчивает о своих проблемах.

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

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

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

Вежливая программа хорошо информирована.

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

Когда я ищу информацию в Интернет через поисковую машину, я не могу быть уверен, что не наткнусь на неработающую ссылку. Я выбираю нужную мне ссылку и получаю противное сообщение об ошибке “404 Link Not Found”. Разве поисковая машина не может периодически проверять каждую ссылку? Если ссылка неверна, ее можно удалить из списка, и мне не придется тратить время на ожидание ее загрузки.

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

Вежливая программа восприимчива.

Консьерж Нью-Йоркского отеля, где я часто останавливаюсь, заметил мой интерес к Бродвейским шоу. И теперь, когда бы я ни остановился в этом отеле снова, консьерж – без моей просьбы – оставляет в моей комнате. Он оказался достаточно восприимчив к моим интересам, что позволило ему предположить мои желания и обеспечить меня нужной информацией до того, как я сам подумаю о ней. Для этого консьержу не требуется много усилий, но в результате я возвращаюсь в этот отель снова и снова.

Я раскрываю на весь экран окно любой запущенной программы. Затем я использую Панель Задач для переключения между запущенными приложениями. Но программы, которые я запускаю, не замечают этот факт. Я так часто максимизирую окна, что мои предпочтения должны быть ясными и однозначными. Другие пользователи работают с программами в маленьком окне, чтобы видеть Рабочий Стол. Так просто для программы понять это и предугадать действия пользователя.

Вежливая программа уверена в себе.

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

Если я прошу компьютер удалить файл, я не хочу чтобы он спрашивал у меня "Вы уверены?" Конечно я уверен, иначе бы я не спрашивал. Я хочу, чтобы он имел смелость в своих убеждениях и удалил файл.

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

Очень часто после длительной работы с документом я нажимаю кнопку "Печать" и ухожу выпить чашечку кофе, пока документ распечатается. Затем я возвращаюсь чтобы обнаружить посреди экрана бессмысленное и пугающее окно диалога с вопросом "Вы действительно хотите печатать?" Такая неуверенность просто приводит в ярость, и это антитеза вежливого поведения.

Вежливая программа не задает лишних вопросов.

Когда я заказываю салат в хорошем ресторане, я получаю хороший салат. В третьесортном ресторане мне подают его несвежим вместе с кучей вопросов "Со шпинатом? С луком? С гренками? Посыпанный сыром? Полную порцию или среднюю? Масло французское или итальянское? Подавать до или после главного блюда?" Даже самый требовательный гурман не захочет никакого салата с таким отношением, однако программы все время ведут себя подобным образом. Adobe Photoshop например осыпает пользователя множеством ненужных маленьких вопросов, каждый в отдельном окне.

Невежливая программа задает множество раздражающих вопросов. Когда выбор предлагают насильственно – это тяжелое испытание.

Выбирать можно разными способами. Возьмем, к примеру, разглядывание витрин магазинов. Мы обычно смотрим на витрины праздно, обдумывая, выбирая, или игнорируя товары, которые нам предлагают. С другой стороны, иногда нам насильственно предлагают выбор, как например на таможне: "У вас есть что-нибудь нуждающееся в декларации?". Если нас поймают, последствия могут оказаться значительными. Но мы не знаем, что последует за этим вопросом. Будут нас обыскивать или нет? Если мы знаем, что обыска не избежать, мы никогда не будем лгать. А если мы знаем, что никакого обыска не будет, нас будет одолевать искушение провезти лишнюю пачку Мальборо.

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

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

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

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

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

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

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

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

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

Можно привести множество рациональных и логичных причин не использовать подстраиваемые системы. Но к несчастью, такое идеализированное состояние дел не является точным описанием работы реального мира. Люди использует подстраиваемость "ручных" систем во всех видах бизнеса чтобы удержаться на плаву. Несмотря на все препятствия, наполнение автоматизированных систем подобным качеством является жизненно важным вопросом.

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

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

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

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

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

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


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

Alan Cooper

Комментариев: 2

Page: 17 18 19 20 21 22 23 24 25 26 27
Fast: 10 20 30

Календарь

февраль, 2012
пн вт ср чт пт сб вс
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        

Меню

  • Главная страница
  • Оглавление блога
  • Лента новостей
  • Обратная связь
  • Правила блога

Анонсы по темам

  • Все посты блога
  • С миру по нитке
  • Мысли вслух
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Категории

  • Все посты по порядку
  • С миру по нитке
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Сервисы

  • Поиск по блогу
  • Поиск по всему сайту
  • Шпионское досье

Реклама


Стоимость сайта

Мой вебсайт стоит 865 404,18 руб

Статистика

    Widgetize!
  • Время работы: 0,49317 сек.
  • Память: 4 864 кБт
  • Статистика привратника
Copyright FIT-Media.com, © 2007-2012
Главная | Общее оглавление | Обратная связь | Правила блога | Лента RSS