Не normal

По следам этой заметки Миша прислал отличную иллюстрацию.

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

Кстати, Hot означает, что он уже нагрелся до кондиции, или, может, еще греет?

Electriq | Friday 27 July 2012 at 11:53 pm | | Russian | Two comments

Единообразие против предугадывания

Вопрос риторический

Приведу два вполне логичных утверждения, относящихся к проектированию интерфейсов:

  1. Подобные вещи должны вести себя одинаково чтобы не путать людей.
  2. Машина должна предугадывать истинные намерения человека и всегда вести себя нужным образом.

Теперь рассмотрим простой пример: графический редактор в рамках простого рисования, как в Word'е. В документе присутствуют вставленные туда картинки, прямоугольники, эллипсы.

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

Обычно пропорциональное растягивание включается/выключается удерживанием клавиши Ctrl или Shift. Но встает вопрос: как оно должно быть по умолчанию, когда клавища не нажата?

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

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

Electriq | Thursday 29 March 2012 at 6:37 pm | | Russian | Four comments

Homo sapiens vs Homo logicus

На примере из жизни

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

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


Иконка, изображающая цепочку, не слишком удачная

Сделал и отправил друзьям на тест. Вот тут-то начитается самое для меня неожиданное: два человека независимо сказали мне, что кнопка судя по всему не работает! Но я-то знал, что это не так, и начал разбираться.

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

Пользователи видят совсем не то, что подразумевает программист.

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

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

P.S. Вопрос «что логично на самом деле» бессмыслен. Речь идет о том, что у разных людей в голове разные модели, и иногда это непросто учитывать при разработке интерфейса.

P.P.S. Настройка сохранения пропорций воспринимается как свойство объекта наравне с шириной и высотой, — скажете вы. А я отвечу, что для меня, для разработчика, сохранение пропорций при растяжении относится к настройке поведения интерфейса, а не к объектам.

Electriq | Thursday 29 March 2012 at 5:18 pm | | Russian | No comments

О газовых колонках

Что случилось с дизайном?

У меня в ванной висит газовая колонка времен строительства дома − середины 1960-х. Выглядит она вот так:


Ручка регулятора температуры самодельная, модернизированная

Фотография, может, не самая удачная, но можно заметить, что корпус колонки имеет довольно причудливую округло-ломанную форму.

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

Вот смотрите, что дают Яндекс.Маркет, Google Shopping и картинки Google:

Read more →

Electriq | Sunday 04 March 2012 at 3:11 pm | | Russian | No comments
Used tags:

4 странички

Из книги Леннарта Дальгрена про приход ИКЕА в России

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

Год оригинального издания (на Шведском) — 2009.

Нажмите на картинки, чтобы увидеть страницу целиком:

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

Купить книгу можно, например, тут: http://www.ozon.ru/context/detail/id/5019352/

Electriq | Monday 27 February 2012 at 4:23 pm | | Russian | No comments

Преувеличение сложности

или приспосабливание к текстовому мышлению

Однажды в каком-то обсуждении интерфейса я жаловался на то, что открывая меню «Пуск» в классическом оформлении долго не могу найти нужную программу. Причем проблема, как мне казалось, кроется не только в том, что программ в меню очень много, а в том, что я не помню название программы, которую хочу вызвать, и не могу искать по алфавиту. Как это, не помню? — спросите вы. А вот так. Сидит в голове какой-то образ ворда, а как он пишется не вспомнить. Конечно, обычно эта проблема относится к редко используемым приложениям.

В том обсуждении один знакомый посоветовал мне перейти на новый стиль меню «Пуск» с текстовым поиском, который появился в Vista и 7-ке. Я, конечно, был категорически против. Как же я могу искать по названию, если я не помню названия? И я продолжал долго и упорно искать нужную программу в списке из трех столбцов на экране.

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

А что быстрее?

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

Итого

Любители командных текстовых интерфейсов могут ликовать! Я был неправ в предположениях. Новый (относительно) дизайн меню «Пуск» с текстовым поиском действительно удобен для меня, хотя я предполагал, что не смогу им пользоваться. Кстати, спасибо Ване за совет! :)

Выводов относительно себя и интерфейса командной строки я делать все же не буду :)

Electriq | Wednesday 22 February 2012 at 10:18 am | | Russian | Two comments

Список литературы по интерфейсам и опыту взаимодействия

Издания на русском языке

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

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

  1. Алан Купер, Роберт Рейман, Дэвид Кронин. Алан Купер об интерфейсе. Основы проектирования взаимодействия. СПб, Символ-Плюс, 2009, 688 стр. (В оригинале About Face 3. The Essentials of Interactions Design. Говорят, «about face» переводится как команда «кру-у-угом»!).
    Фундаментальный и довольно широкоохватный труд по проектированию интерфейсов с подходом со стороны истинных целей пользователя. Я считаю, что эта книга к прочтению обязательна, но сначала лучше прочитать «Психбольницу в руках пациентов». Описанный в книге метод персонажей хорош, но я где-то встречал и его критику.

  2. Алан Купер. Психбольница в руках пациентов. Почему высокие технологии сводят нас с ума и как восстановить душевное равновесие. СПб, Символ-Плюс, 2005, 366 стр. (Вышло 2-е издание).
    В этой книге Купер много ругается, машет руками и приводит примеры идиотских решений. Особого внимания заслуживают такие параграфы, как Homo Logicus, Авиационный тест, проектирование и вежливость. Самое ценное — книга показывает, в чем логика программистов отличается от логики «простых людей». С этим отличием и связаны проблемы в интерфейсах, разработанных гиками.

  3. Дэвид С. Платт. Софт — отстой! И что с этим делать? СПб, Симпол-Плюс, 2008, 248 стр.
    Эта книга послабее «Психбольницы...», хотя частично темы пересекаются. Автор предлагает пользователям меньше терпеть тупость (или заумность!) программ и обрушить гнев на разработчиков, создав стену позора. «Это не пользователи тупые, а программисты не смогли сделать понятно».

  4. Стивен К. Сеов. Проектируем время. Психология восприятия времени в программном обеспечении. СПб, Символ-Плюс, 2009, 224 стр.
    Тема важная, но на мой взгляд, книга несколько затянута («много воды»). Видно, что книгу писал психолог: кажется, что он слишком заостряется на технических вопросах, которые просты для технарей, но непривычны для него. Книга, в частности, отвечает на вопрос о том, как правильно отображать ход длительного процесса, и начиная с какого момента процесс можно считать длительным и почему (а потому, что при ожидании больше ~1 секунды человек переключается на другую задачу).

  5. Стив Круг. Веб-Дизайн: книга Стива Круга или «не заставляйте меня думать!» СПб, Символ-Плюс, 2008, 224 стр. (Don't Make Me Think!)
    Основной посыл книги — люди не читают сайты, а лишь бегло их просматривают. Из этого надо исходить при проектировании.

  6. Стив Круг. Как сделать сайт удобным. Юзабилити по методу Стива Круга. СПб, Питер, 2010, 208 стр.
    Здесь Круг пишет про то, как организовать юзабилити-тестирование вашего проекта своими силами.

  7. Якоб Нильсен, Кара Перниче. Веб-дизайн. Анализ удобства использования веб-сайтов по движению глаз. М., Вильямс, 2008.
    Пока прочитать не довелось.

  8. Дж. Гарретт. Веб-Дизайн: книга Джесса Гаррета. Элементы опыта взаимодействия. СПб, Символ-Плюс, 2008.
    Эта книга в первую очередь посвящена разработке сайтов и навигации. Для разработки «обычных» программ не так актуальна, хотя и интересна.

  9. Сьюзан Уэйншенк. Интуитивный веб-дизайн. Что заставляет людей переходить по ссылкам. Эксмо, 2011. (В оригинале  Neuro Web Design. What makes them click? Поистине, приз за самый плохой, отпугивающий перевод названия).
    Основываясь на простых психологических тестах, которые описаны в книге, автор показывает, что многие наши решения принимаются не сознанием, а подсознанием, работу которого мы не замечаем, и повлиять на которое сознательно не можем. Повысить эффективность сайта можно учитывая особенности подсознания.

  10. Сьюзан Уэйншенк. 100 главных принципов дизайна. Как удержать внимание. Питер, 2012.
    Еще не прочитал, но выглядит интригующе. Автор — психолог, и пишет много интересного.

  11. Дональд А. Норман. Дизайн промышленных товаров. Также в другом издании называется Дизайн привычных вещей. Вильямс, 2009.
    Тут про все на свете, не только о программах и сайтах. Дизайнер всегда должен помнить, что его творением будет кто-то пользоваться! Про интутивность только я бы с автором поспорил. Он пишет, что американская горизонтальная ручка на всю ширину двери — самая понятная и очевидная. А я, когда впервые с такой столкнулся, пытался тянуть ее вверх, а не нажимать.  Поворотные же ручки я знаю с детства. Так что привычность тут недооценена.

  12. Джеф Раскин. Интерфейс. Новые направления в проектировании компьютерных систем. Символ-Плюс, 2007.
    Книга весьма неоднозначна. С одной стороны, многие приводимые автором идеи теоретически хороши, с другой — изменить сложившийся ход вещей могут только такие решительные игроки, как Apple. Они же делают автосохранение без спроса при выходе! Но люди, привыкшие к окнам «хотите сохранить или похерить вашу трехчасовую работу?» могут начать путаться. Особенно, если в разных программах будет по-разному.

  13. Дженифер Тидвелл. Разработка пользовательских интерфейсов. Питер, 2008. (Вышло 2-е издание).
    Книга представляет собой сборник паттернов проектирования интерфейсов с подробным обсуждением применимости, плюсов и минусов каждого. На английском есть на сайте автора книги в свободном доступе.

  14. Робин Вильямс. Дизайн для НЕдизайнеров. Символ-Плюс, 2008.
    Эту книгу полезно прочитать для общего развития, чтобы хоть чуть-чуть понять, чем работы профессиональных дизайнеров отличаются от объявлений в подъездах. Хотя, надо сказать, мне эта книга до конца не помогла... :)

  15. Расс Уингер, Кэролайн Чендлер. UX-дизайн. Практическое руководство по проектированию опыта взаимодействия. Символ-Плюс, 2011.
    Книга посвящена процессу проектирования сайтов. Прочитать целиком пока не удалось, т.к. стало скучно :)

.

Пока всё :) Пишите :)

Electriq | Tuesday 17 January 2012 at 10:52 pm | | Russian | No comments

О «стабильности» интерфейсов

Что выдает компьютер в телефоне?

Под «стабильностью» сегодня я имею в виду не отсутствие «зависания», а свойство, если можно сказать, непрерывности, присущее всем реальным объектам.

Довольно долго я ничего тут не писал, все обдумывал, как же написать про эту самую «стабильность», но так ничего путного и не надумал: придется писать как есть :)

Как вы думаете, как мне удалось догадаться, что сотовый телефон, работающий под управлением Windows Mobile 6.5 на самом деле является компьютером? На первый взгляд мой телефон ведет себя вполне обычно, как реальный, физический объект. Но есть детали, которые сразу выдают компьютер, и об этом далее.

Read more →

Electriq | Monday 20 June 2011 at 12:17 am | | Russian | No comments

Все равно придется ждать?

О вреде немодальноно отображения хода процесса

В руководстве Microsoft по разработке пользовательских интерфейсов предлагается такой критерий для применения немодального отображения хода процесса:

If users can do something productive while the operation is in progress, provide modeless feedback.

(Немодальность, например, диалогового окна, означает, что во время его показа другие элементы остаются доступными, в отличие от не дающего ничего делать модального поведения).

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

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

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


Пока зеленый индикатор не доедет до конца, я все равно не могу ничего делать

Раздражение

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

Реальная производительность

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

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

Electriq | Saturday 26 March 2011 at 11:27 am | | Russian | Four comments

Я всегда раскрываю панель «дополнительно»,

Или «неправильное применение идиомы Extras on Demand»

Никто не любит интерфейсную идиому пошагового «мастера» (Wizard), правда? (Если вы любите, то поднимите руку). То, что «мастер» — штука занудная — для меня понятно. Но есть еще одна вещь, которая вызывает у меня похожее отторжение, но я никак не могу решиться назвать ее откровенно плохой. Это шаблон «дополнения по требованию» (Extras on Demand). Когда в окне есть кнопка «дополнительно» или «еще», которая выдвигает необязательные опции. Но что такое «необязательные опции», и так ли они необязательны? Попробую разобраться в себе.

Read more →

Electriq | Monday 17 January 2011 at 10:35 pm | | Russian | Four comments

Компьютер приходит в лифт

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

Electriq | Monday 17 January 2011 at 9:23 pm | | Russian | No comments

О лишних действиях в интерфейсах

Зачем программе спрашивать то, что очевидно?

Вернемся к моему лазерному принтеру, вернее, ксероксу, то есть МФУ. У него есть режим энергосбережения-сна, в который он автоматически «впадает», если им не пользоваться в течение примерно 10 минут. Все очень логично: если я печатаю подряд, то принтер стоит прогретый, и страница вылезает сразу. Если я не печатаю какое-то время, то нагрев термобарабана отключается для экономии. Но есть одно неудобство.

Read more →

Electriq | Thursday 13 January 2011 at 5:37 pm | | Russian | No comments