Показаны сообщения с ярлыком misc. Показать все сообщения
Показаны сообщения с ярлыком misc. Показать все сообщения

12 августа 2008 г.

Usability match: Nokia vs. Sony Ericsson

Кое-что на эту тему я уже писал.

Попробую вообразить, что я Лебедев (или Joel Spolsky; ум, эхм, лучше уж Лебедев :-) и написать, что я ненавижу.
Я ненавижу пользовательский интерфейс „умных“ мобильных телефонов Nokia. (и еще компьютерные мыши).
Но, кажется, я еще „немного“ не дорос до великих гуру юзабилити, так что — остаюсь AnSGri и попытаюсь сравнить интерфейсы мобильных устройств от крупнейших производителей со всем цинизмом и объективизмом.

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

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

Первый раунд. Пользователь впервые в жизни видит устройство. Коробка распакована, SIM установлен, нажата кнопка включения. Nokia просто включается. Он набирает номер, и — замечает кнопку с изображением зеленой телефонной трубки. Очевидно, «позвонить». И правда, работает. Точно так же, как и кнопка с красной перечеркнутой трубкой успешно завершает вызов. Sony Ericsson включается, запуская Мастер настройки, который позволяет настроить язык, время и даже, может быть, запросить настройки интернета у оператора. Замечательно! Но тут появляется странная страница, на которой нас, по всей видимости пытаются чему-то научить. «Как так! Какое-то устройство вздумало меня учить!» Но возмущение вскоре спадает: там изображена кнопка «назад», и пользователь запоминает, что у устройства есть такая клавиша. Настройка завершена, он набирает номер — и видит, что над левой софт-клавишей написано «вызвать». Тут все гладко. Во время вызова над правой софт-клавишей загорается сначала «отмена», затем «отбой». Тут тоже все ясно, и не перепутаешь. Первый раунд окончен со счетом 1:1.

Второй раунд. SMS. Подопытный, пользуясь подсказками над софт-клавишами, добрался по меню до пункта «Новое сообщение», и тут начинается другой вид деятельности — набор текста. Пользователь имеет общие представления и о T9, и о посимвольном наборе, но ранее не очень много ими пользовался, чаще имея дело с полноразмерной клавиатурой своего ПК. Допустим, он хочет набрать «Привет! Я себе мобилу Nokiaкупил». В этом простеньком сообщении аж целых две «коряги» — восклицательный знак и смена языка. Потыкав всякие кнопочки, можно найти, что под «звездочкой» скрывается меню ввода символов, которое решает задачу. А вот со сменой языка проблема. Если и можно догадаться, что удерживание решетки переключает способ ввода, то можно предположить, что переключение языка скрыто там же. Ан нет! И пользователь, уже изрядно наматерившись, прибегает к последнему средству — инструкции. И знаете что? Он не находит ответа на свой вопрос. Настроение испорчено, и в отправленном сообщении говорится «Ну и г*о же эта Нокия!». Тогда как второй экземпляр пользователя успешно пишет «Sony как всегда сделала отличное устройство!», потому что над правой софт-клавишей написано «Функции», и при ее нажатии вылезает столь привычное контекстное меню, в котором есть и вставка символа, и смена языка, и все что угодно. А все потому, что кнопка «Назад» уже есть, и не занимает драгоценную софт-клавишу. Ах да, я совсем забыл про третью «корягу» — исправление опечаток. У Nokia для этого как раз служит правая софт-клавиша. У SE по-другому — для удаления служит кнопка «C». С логичностью такого решения можно поспорить, но лично я с первого взгляда понял, что она обозначает «Clear», то есть — удалить. 2:1 в пользу SE, а точнее, против Nokia. Хотя, мне кажется, кто-то сочтет это нокаутирующим ударом.

Третий раунд. Power Usage. Итак, с двумя основными функциями разобрались, но не за них мы платим большую часть стоимости, а за поддержку приложений, наличие камеры, органайзера, медиаплеера и прочее. Честно скажу, не слишком много с нокиевскими устройствами общался, однако первые впечатления не лучшие. Задам вам лишь один вопрос, на который, однако, нормальный человек редко ответить в состоянии: что делает кнопка с изображением телефонной трубки в режиме фотокамеры? Я не знаю, но кажется, что на самом деле она ничего не делает. Что ж, хотя бы ничего плохого... Как сказать. У Sony Ericsson, как можно догадаться из предыдущего раунда, управление подобно управлению компьютером с помощью двухкнопочной мыши. Левая софт-клавиша или щелчок джойстика — действие по умолчанию, типа «Открыть», «Сохранить», «Позвонить». Правая же в большинстве случаев открывает самое настоящее контекстное меню. При этом кнопка «Назад» возвращает нас ровно на один шаг назад, всегда и везде, а кнопка «C» обозначает удаление объекта под курсором, если это возможно. Я уж не говорю про кнопку «Alt-Tab», переключающую приложения или открывающую подобие меню «Пуск», появляющуюся на последних моделях. 3:1, хотя по мне так и нокаут.

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

9 августа 2008 г.

ООП как создание предприятия

Недавно я писал об опасности излишней "объектаризации" (или объективизации?..) и провел аналогию между написанием программы и управлением предприятием. Сейчас давайте рассмотрим эту аналогию поподробнее.

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

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

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

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

15 июля 2008 г.

Два подхода к разрешению неоднозначностей

Сегодня меня попросили разобраться с весьма странной проблемой: мобильный телефон при входящем вызове напрочь отказывался показывать имя, соответствующее номеру в телефонной книжке. Совершенно непонятно было, чем такое может быть вызвано. Оказалось, что проблемы возникли из-за повторяющихся номеров в книжке - когда поступал вызов, телефон отказывался решать, какое же из имен показывать, и не показывал имени вообще. Назовем подобное поведение "политикой Nokia". А "политикой Sony Ericsson" назовем выбор первого попавшегося имени.

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

АспектNokiaSony Ericsson
Мотивация Пользователь умнее машины, и только ему должно принадлежать право принимать окончательное решение. У машины достаточно данных, чтобы избавить пользователя от лишней головной боли.
Что делаем? Либо отказываемся выполнять противоречивое указание, требуя более корректной команды, либо запрашиваем уточнение. Разрешаем противоречие, используя имеющиеся данные и немного машинного здравого смысла ;)
Достоинства У пользователя есть возможность исправить команду и получить корректный результат. Система ведет себя предсказуемо, и пользователь не испытывает дискомфорта из-за того, что кто-то пытается его перехитрить. Пользователь экономит кучу времени на ответах на тривиальные или, того хуже, несущественные, вопросы.
Недостатки Пользователя порой отвлекают по пустякам, что не может не раздражать. Одна секунда, потраченная на ответ на возникший из ниоткуда дурацкий вопрос, типа "Установить критические обновления?" может стоить 15 минут рабочего времени из-за потери концентрации. Автоматика может натворить чего-нибудь нехорошее (например, повесить систему в ходе фоновой установки этих самых критических обновлений). Кроме того, многим может не понравиться, что компьютер вообразил себя умнее них.

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


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

14 июля 2008 г.

Антистандартизация: еще один болт

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

Сегодня в практике наиболее широко встречаются следующие виды шлицев: Прямой; Крестообразный типа Phillips (согласно стандартам DIN - крестообразный типа Н); Крестообразный типа Pozidriv (согласно стандартам DIN - крестообразный типа Z); Комбинированный типа Pozidriv + прямой; Шестиконечная звезда типа Тоrх; Внутренний шестигранник; Шестигранный.

И только за последние 3 дня я повидал 5 видов шлицев, двух из которых в этом списке нет, а именно, фирменный "трехгранный" Nokia и, о ужас, подобие ставшей уже обычной шестиконечной звезды, но со штырем внутри, так что нужна полая отвертка. Которой, ясное дело, ни у кого нет. Я было хотел нарисовать чертеж этого творения Ада, но прокопавшись по 20 минут с Expression Design и Inkscape, понял, что лучше мне этого не делать :-[

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

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

Beginning of The Construction

Приветствую всех на этой пустынной странице! Я наконец-то собрался с силами (к сожалению, не с мыслями) и, следуя совету Джефа Этвуда (Jeff Atwood), завел блог. Захотелось потренироваться в написании статей, потому что хороший разработчик должен уметь писать. Посему любая критика "категорически приветствуется". Придирайтесь на здоровье!
Чтобы вам не было совсем скучно, я заготовил несколько ссылок, чтобы вы легко могли сбежать отсюда куда-нибудь поинтереснее :) Joel on Software - Joel Spolsky пишет о всех аспектах разработки ПО (типа shrinkwrap). Coding Horror - Programming and human factors by Jeff Atwood The Old New Thing - Известнейший разработчик Microsoft Реймонд Чен (Raymond Chen) об истории развития Windows API, а также о многом другом, например, о вьетнамских сэндвичах. Ну все, хватит о разработке ПО. Кстати, похоже, что это будет основной темой блога... Сайт Кори Доктороу, того самого писателя-фантаста, который написал Землю Сисадминов.
Ах да, я забыл представиться. Антон Григорьев, студент МФТИ, mailto: ansgri at gmail dot com See ya!