Pull to refresh

Семь смертных грехов программных систем, которых в 2011-м году стыдно не замечать

Reading time 5 min
Views 2.8K
Я сам, как проектировщик интерфейсов и программист, с одной стороны вижу проблемы, а с другой понимаю, что одним мановением руки они не решаются, и во многих случаях у компромисса есть объективные причины. Но предлагаю не жевать сопли, а собрать волю в кулак и дружно шагать в светлое будущее. В конце концов, кто, если не мы?

Итак, грехи:
  1. Медлительность
  2. Блокирующее взаимодействие
  3. Неуместные ограничения
  4. Ненастроенность
  5. Несамостоятельность
  6. Забывчивость
  7. Гордыня

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

1. Медлительность

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

2. Блокирующее взаимодействие

  • Вы нажимаете в svn кнопку «коммит», и пока он не уйдет целиком и полностью, вас никто никуда не отпустит.
  • Вы применяете к изображению сложный фильтр и должны дождаться, пока он полностью обсчитается, прежде чем сможете на что-нибудь нажать.
В общем случае пока программа что-то делает (даже по пустякам), она заставляет вас ждать «на всякий случай», мало ли что вы там испортите. Апофеозом этого греха являются модальные окна — программа ничего не делает, но никуда уйти не дает. Рецепт простой — работать в фоне, вот применять сложнее.

Положительный пример: Final Cut Pro X, к десятой версии обзаведшийся фоновым рендерингом материалов. Видели бы вы овацию на презентации этой фичи.

3. Неуместные ограничения

  • Описание не может быть длиннее 1000 символов.
  • Название категории не может содержать пробелов.
  • Вы должны вступить в блог, чтобы прочитать запись из него.
В общем случае один человек ткнул пальцем в небо и родил ограничения. Еще и называет это «подумал о вариантах использования». Лучшие ограничения — это те, которых нет. Мы же не байтики на дискетах экономим в 21-м веке. Пора уже привыкнуть, что вместо «vasya_poopkin» я могу логиниться по гораздо более красивому «Василий Пупкин». Если ты можешь сделать, скажем, описание продукту любой длины (а он может) — делай, не надо гадать, что скорее всего никому больше 1000 не понадобится. Никогда не угадаешь.

4. Ненастроенность

  • Первым делом в текстовом редакторе вы меняете шрифт и включаете автосохранение.
  • Первым делом в браузере вы убираете ненужные панели и включаете сохранение паролей.
В общем случае программа в изначальной конфигурации неудобна/неприятна/непригодна для использования. Люди привыкли, что в первую очередь нужно залезть в настройки. Но это не значит, что это хорошо. В магазинах не продают лопат, которые сперва нужно перековать. Вы не меняете ручку у молотка сразу после покупки. Программа — такой же инструмент, и обязанность продавца (читай разработчика) сделать так, чтобы ей можно было сразу пользоваться. Кстати, если об этом подумать, то 50..90% настроек можно будет выкинуть за ненадобностью.

Положительный пример: iA Writer, текстовый редактор без панели настроек.

5. Несамостоятельность

  • Не могу создать проект, папка уже существует (пустая).
  • Вашему репозиторию нужна компактификация. Запустите её!
  • Не могу запустить поиск, содержимое файловой системы изменилось, нажмите «обновить».
  • Среди ваших ста тысяч пятисот файлов обнаружился один защищенный, я пока остановлюсь, что мне делать???
В общем случае программа не делает чего-то простого и ждет от пользователя очевидной команды. Хуже, если задача частая, или если это происходит во время длительного процесса, когда человека нет рядом. Пользователь, конечно, ко всему привыкнет, но немного интеллекта и решительности программам бы не помешали. Обычно у программ полно свободного времени между взаимодействиями с пользователем, и хорошо бы в это время делать что-то полезное (индексировать/обновлять/проверять/подкачивать), что ускорит последующее взаимодействие.

Положительный пример: браузер Сафари сам распаковывает архивы и монтирует образы сразу после загрузки. Гугл Хром сам скачивает и устанавливает обновления без единого окошка.

6. Забывчивость

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

Положительный пример: ИнДизайн ЦС5 даже после падения поднимается ровно в том месте, где вы закончили, независимо от того, сохранялись вы или нет.

7. Гордыня

  • Обновление прошло успешно! (Аваст, голосом!)
  • Я еще не запустилась, но вот тебе мой сплешскрин поперек всего и крадущий фокус.
  • Здравствуй, дорогой друг! Я знаю, ты запустил меня, чтобы что-то сделать, но у меня тут обновление, пойди лучше скачай его.
  • А я маленькая программка управления фотоаппаратом, и я боюсь что ты меня никогда не увидишь, поэтому вот тебе мой тулбар в браузер, иконка в трей, автозапуск со сплешскрином, стартовая страница и поиск по умолчанию.
  • Вы не чистили свой рабочий стол 60 дней...
В общем случае программа считает себя центром вселенной и о любом событии беспокоит пользователя, чтобы он ей почесал за ушком, скачал обновление, даже информирует его о том, что все идет хорошо (!). Программы мигают в панели задач, прыгают в доке, суют свои иконки (я смотрю на тебя, adobe reader), чего-то постоянно от тебя требуют (нагло, не правда ли?). В результате, если ты не загружался в систему полгода, то тебе преградит путь десяток каких-то тупых окон, а тебе всего-то нужно было файл забрать, например. Все-таки, компьютер для человека или человек для компьютера? Иногда мне кажется, что мой ответ отличается от мнения большинства разработчиков.

Бонус.

Семь примеров феерической тупости из коллекции автора.
  1. Медлительность. Вы просите Виндоус зайти на самбу и ждете сначала полчаса чтобы она спросила у вас пароль, потом еще полчаса она будет «пытаться присоединиться» к соседнему компьютеру. Ощущения как будто пограничник забрал у вас паспорт и тайно пошел на обед.
  2. Блокирующее взаимодействие. Модальные целиком для браузера alert/http basic auth form — такие, что нельзя переключиться в другую вкладку, чтобы скопировать пароль.
  3. Неуместные ограничения. Что делать, если данное мне при рождении имя не удовлетворит критериям этого безымянного аналитика?
  4. Ненастроенность. Все сайты погоды, которые даже не пытаются определить по айпи город.
  5. Несамостоятельность. Введите номер телефона без пробелов и специальных символов.
  6. Забывчивость. Сохранить документ, который вы писали 7 часов? Да-нет? Упс.
  7. Гордыня. Виндоус Виста: установлено обновление, вы здесь? Ок, 10 минут никого нет, прибиваю всё и перезагружаюсь. — Эй, чувак, а что, электричество отключали?


Если кому-то показались хоть немного интересными высказанные здесь мысли, то рекомендую продолжить чтение здесь:
  • Дональд Норман. Дизайн промышленных товаров / The Design of Everyday Things. Про то, что вообще за проблемы с вещами, кто в ней виноват и кто должен ее решать.
  • Джеф Раскин. Интерфейс (выложен полный текст). Про то, как уже вполне могли бы работать компьютеры, если бы в Майкрософте тоже слушали умных людей. Знакомым с этой книгой забавно смотреть, как идеи и принципы из нее потихоньку протаскиваются в современный мир Эпплом, а затем и всеми остальными.
  • Алан Купер. Об интерфейсе / About Face 3. Очень большой и очень обстоятельный труд, по косточкам разбирающий современные интерфейсы и предлагающий адекватные решения многих проблем. Например, половина релиза OS X Lion как минимум была здесь предсказана :)
Tags:
Hubs:
+173
Comments 460
Comments Comments 460

Articles