Руководство по UI дизайну для программистов

VectorBitmapExample[1] Сегодня немного обучался работе с векторной графикой, вспомнил, что Спольски написал по этому поводу книгу:

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

Простое — потому, что самый сложный алгоритм, который вам может потребоваться,- алгоритм отцентровки одного прямоугольника в другом. Очевидное — потому, что, сделав ошибку, вы можете ее немедленно увидеть и исправить. Увлекательное — потому, что вы можете сразу же увидеть результаты вашей работы. Работа по UI дизайну сродни работе скульптора: вы непосредственно ваяете программу.

поэтому я сходил на http://russian.joelonsoftware.com/index.html и собрал для себя книжку, если кому-то интересно (получилось 44 страницы), можете скачать и прочитать её.

Реклама

f.lux: Биоритмы вашего монитора

f.lux – небольшая и удобная утилита (от http://stereopsis.com/), которая меняет цветовую гамму вашего монитора в зависимости от географических координат и времени суток. Что положительно сказывается на ваших глазах и снимает усталость.

Есть версии под Win и Mac (а так же Linux).

image


Введение в Восхитительный Дизайн

Признание: я боюсь выключать свой мобильник.

image Не потому что я боюсь оказаться недоступным для связи, как вы решили. Черт возьми, мне надо меньше заботиться о том, могут ли люди достать меня. Если у вас есть, что сказать мне столь важного, что лучше оторвать меня от Will and Grace, что ж, думаю, лучше мне побыть еще 45 минут в блаженном неведении, прежде чем я это узнаю. Вот мой девиз: Сперва Воля и Милость, а потом Землетрясения и Потопы. (Will and Grace — сериал на NBC, но можно перевести и как Воля и Милость — прим. пер.).

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

У телефона две кнопки, счастливая зеленая и пугающая красная. На них забавные иконки, которые мало что мне говорят.

Вы думаете, что зеленая кнопка его включает. Зеленый значит «Идите», верно?

Неверно.

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

Похоже, что он включается красной кнопкой.

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

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

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

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

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

Cover Image: User Interface Design for Programmers (book)

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

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

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

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

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

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

В то время как большая часть продукции становилась всё более непонятной, как типичный пульт управления домашним развлекательным комплексом с массой маленьких мягких кнопок, обозначенных надпиясми "MTS" или "SUPR" или "PTY", значение которых понять никто не имеет ни малейшей надежды, произошло ещё кое что: очень немногие, очень хорошие дизайнеры стали, каким-то образом, пробиваться с по-настоящему восхитительным дизайном, который был красивым, лёгким в понимании, остроумным, и который делал людей счастливыми. Вы знаете их, потому что продукты, о которых я говорю, стали бестселлерами. Apple iPod. TiVo. Google. Даже Motorola RAZR, который так сложно включить, в большинстве проявлений демонстрирует восхитетельный дизайн.

Статья заимствована на вики-узле Джоела.


Премировать? Не премировать?

Частичный перевод статьи Thanks or No Thanks by Joel Spolsky.

В начальных строках статьи рассказывается, как пару лет назад Noah Weiss, который проходил летнюю практику в Fog Creek Software, пришел к Джоэлю с бизнес-идеей: запустить на компанейском блоге публикацию предложений работы. Его аргументы: сайт посещается тысячами программистов-профессионалов в месяц; запустить систему публикаций будет несложно; к сайту Fog Creek уже прикручена система оплаты кредитными карточками, печати квитанций и т.п. В общем, проект не займет много времени и сил.

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

Однако Noah продолжать спорить: «Эти парни с 37signals размещают у себя 50 реклам в месяц. По $250 каждая, так что в сумме…»

Секундочку, прервал я его. Они берут по $250 за каждую рекламу? Я представлял себе, что потолок цены за показ вакансии должен быть, ну максимум, не знаю, скажем, $4, нет?

Это так, подтвердил Noah. Но они берут по $250 за опубликованную вакансию. «Кроме того», добавил он, «список вакансий – это не совсем реклама, это, скорее, социальный сервис».

bonus Dilbert Wally

К тому времени я его уже практически не слышал. Маленькие шестеренки закрутились в моем мозгу. $250 помножить на 50 вакансий помножить на 12 месяцев… Такой доход позволит мне нанять еще одного программиста! Вот так мы и добавили рекламу на сайт. Noah написал черновой вариант кода за пару недель, еще за две недели я заполировал и отладил этот код. Общее время на постройку сервиса предложений работы составило приблизительно 1 месяц.

Вместо того, чтобы брать за одну публикуемую вакансию $250, мы решили брать $350. Почему нет? Я решил, что мы вполне можем позиционировать наш продукт как продукт класса «Премиум» уже хотя бы потому, что продаём его по цене класса «Премиум». При отсутствии другой информации потребители зачастую используют цену в качестве критерия оценки качества продукта. А я хотел, чтобы наш сайт был Lexus-ом среди сайтов, размещающих объявления об имеющихся вакансиях. Несколько месяцев спустя 37signals подняли свою цену до $300.

К тому моменту, когда вы читаете это, маленький четырёхнедельный проектик сделал для Fog Creek Software 1 миллион долларов – почти всё это чистая прибыль.

Неизбежно возникает вопрос: как бы так, должным образом, вознаградить сотрудника, который принёс свою сногсшибательную идею стоимостью в 1 миллион долларов? С одной стороны, вы могли бы сказать, что вы не обязаны: бизнес программного обеспечения – это, по существу, фабрика идей. Мы уже платим Noah за его идеи. Это заложено в его договор с компанией. Зачем, спрашивается, платить дважды?

eliminate bonuses Dilbert

Однако я чувствовал, что мы должны сделать что-нибудь еще, чтобы выразить нашу благодарность. Может, купить ему Xbox 360? Заплатить бонус наличными? А может, вручить ему в торжественной обстановке почётную грамоту, красиво отпечатанную на плотной бумаге с тиснением? Или, может, подарить ему футболку с надписью «Я придумал дело стоимостью в миллион. За это босс наградил меня этой вшивой футболкой»? Мы были озадачены.

А что насчет остальных сотрудников Fog Creek? Всех тех людей, которые просто делают свою работу. То, что одна идея одного из программистов явно и непосредственно превратилась в кучу денег, еще не означает, что все другие члены команды не внесли свой соизмеримый вклад в бизнес компании, хотя и не таким прямым образом. В то время как Noah пришел со своей идеей размещать рекламу на сайте, большинство моих сотрудников упорно трудились над 6-ой версией FogBugz, выход которой практически удвоил наши месячные продажи.

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

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

Интересный момент. Согласно психологам, внешняя мотивация вытесняет внутреннюю. Сам факт вознаграждения работников за хорошо сделанную работу ведёт к тому, что они начинают работать только за вознаграждение; если вознаграждения прекращаются, прекращается и хорошая работа. А если вознаграждение чересчур низкое, работники начинают думать: «Ёлки-палки! Оно мне надо – напрягаться». Они забывают своё врожденное, внутреннее желание работать хорошо.


Мало того. Как только вы начинаете давать бонусы, чтобы наградить за результаты, люди начинают сравнивать себя со своими коллегами. Почему я получил меньше?

И недовольные правы: невозможно точно определить, больше или меньше для Fog Creek стоит исправление бага, которое сделал David во вторник, по сравнению с кодом, написанным Ted-ом в среду. У нас тут не конвейерное производство по ручной пошивке собачьих курточек, на котором David пошил 5, а Ted пошил 7, и очевидно, что Ted принес компании на 40% больше денег.

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

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

За время моей карьеры я заметил, что компании, имеющие формализованные системы вознаграждения, в которых денежные премии привязаны к результатам, приходят к тому, что большая часть их персонала имеет плохое настроение и несчастна. Помню, когда я работал в Microsoft, один из моих друзей получил очень низкую оценку во время ежегодного обзора; эта оценка не была ни честной, ни правильной. Его боссы оценили его, глядя на 5% его работы – на его нечастое общение с ними. Вместо того чтобы обратить внимание на 95% его работы, где он был образцом для подражания – его постоянное общение с заказчиками. {…}

raise Dilbert

Возвращаясь к Noah, парню с миллионно-долларовой идеей. Хотя мы и не верим в премии за выдающиеся результаты, мы по-прежнему хотели бы как-то отметить его вклад. Мы решили дать Noah 10,000 акций компании – при условии, что он вернется к нам работать после окончания университета. Поскольку Fog Creek – это частная компания, и цену акции определить сложно, то мы могли бы сказать: «Это будет справедливо, парень, если ты будешь иметь свою долю в компании». Не потратив при этом ни одного настоящего доллара. Это было не идеальное решение, но все думали, что оно имеет смысл.

Noah казался довольным, и мы надеялись, что эти акции поспособствуют его решению вернуться к нам на фирму после учебы. А он взял… и не вернулся. Google сделал ему лучшее предложение. Еще одна проблема с вознаграждением, основанным на оценке результатов: вашему конкуренту проще перебить вашу ставку.

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

Благодарность

 

За этот пост отдельная благодарность http://mazanu.com/2009/01/blog-post_17.html

А так же обращаюсь с читателям с предложением почитать так же замечательные книги Джоела Спольски:


Уроки бизнеса от Джейсона Фрида из 37signals

Jason Fried, сооснователь 37signals выступил на конференции Business of Software, где рассказал про идеи, которые его компания применяет. Многие из этих идей — полная противоположность некоторым «аксиомам» бизнеса, и тем не менее, 37signals неплохо живет-поживает.

Момент

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

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

37signals работают над проектами длительностью день-два, неделю или две максимум.

Отсутствие планирования

37signals не верят в планирование. Многие вещи, которые они делают — просто делаются, а потом компания смотрит, что с ними будет. Если работает — они продолжают развивать, если нет — бросают.

Таким образом, компания не пишет спецификации и roadmaps. По словам Джейсона, эти вещи абстрактны, поэтому они не работают.

Решения временны

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

37signals выдали своим работникам (их на момент написания этой заметки было 12) кредитные карты для покупок: хотите купить книгу или поехать на конференцию? Компания оплатит.

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

Решение добавить функциональность в продукт тоже временны.

Отсюда — оптимизируйте для текущей ситуации, для того, что имеет значение сегодня.

Удаленная работа = большая продуктивность

Офисная обстановка располагает к отвлечениям по мелочам (телефонные звонки, разговоры и т.п.), поэтому удаленная работа — это хорошо. (Интересно, а CampFire их не отвлекает?)

Сфокусируйтесь на постоянном

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

Видео

Смотрите полную запись выступления:

Благодарность

 

Текст сообщения полностью скопирован с http://sellme.ru/2008/11/08/uroki-biznesa-ot-jason-fried-iz-37signals за его написание выражаю огромную благодарность.