Кикнуть заигноренного (Kicking the Llama)

Wayne, I don’t know if you’re familiar with it, but Mozilla Firebird (http://www.mozilla.org/products/firebird/) (and probably Mozilla proper) resize the text just fine (as well as being good browsers in their own right).

Kicking the Llama


October 10th, 2003 by Kevin Cheng :: see related comic


 Пиная ламу


 Кевин Чен, 10 октября 2003 года 


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


                 Как бывший разработчик ПО, ставший консультантом по взаимодействие человека и компьютера  - Human-Computer Interaction (HCI), и тот, кто работал в течение ряда лет в индустрии ПО с массой программистских архетипов, я проработал эту книгу и, что более важно, отобрал то, что я прочитал и что является в этой области особенно значимым.


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


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


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


 


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


 


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


 


                Из моего опыта, существует четыре основных класса проблемных программистов, с которыми мне приходилось работать:



  • Энтузиаст: те, кто стремится идти на поводу требований HCI. Эти разработчики с удовольствием работают над сложными задачами, но любят иногда тратить слишком много времени на вылизывание несущественных аспектов UI;

  • Угадывальщик: те, кто ничего не понимает, но считает себя полностью компетентным и разрабатывает совершенно непригодные вещи до тех пор, пока не станет слишком поздно, чтобы что-то изменить;

  • Нильсен: те, кто постоянно цитируют правила юзабилити из Норманна, Нильсена или даже Джоэля Спольски, чтобы оспорить решения по UI;

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


 


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


 


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


 


                Управление Угадывальщиками является проблемой регулярно общиения с ними, чтобы быть уверенным в том, что они понимают требования правильно. Ответственность лежит на обеих сторонах; программисты должны задавать вопросы при любом намеке на двусмысленность, а HCI должны регулярно выполнять то, что я называю «Читать UI код». Точно так же программисты убеждаются в правильности своего архитектурного дизайна через чтение кода, они могут убедиться в правильности реализации UI вместе с HCI.


 


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


 


И, наконец, Напуганный – вероятно, он наиболее опасный член команды. Проблема с Напуганным состоит в том, что его приоритетом является программная модель. Говоря терминами Джоэля, программная модель превалирует над всем другим. Если вы требуете выпадающее меню, отсортированное особенным способом, Напуганный может объяснить, что это просто не может быть сделано вследствие структуры базы данных. Давайте забудем на минутку, что база данных должна быть разработана в соответствии с требованиями UI. В конце концов, многие проекты растут, имея дело с устаревшими артефактами, доставшимися по наследству. Решение состоит в коммуникации – с чем? Здесь риск заключается в неспособности HIC специалиста разоблачить отговорки программиста. Если бы я не был техническим специалистом, я бы должен был принять на веру слова Напуганного и таким образом, приспособить свои требования, вместо того чтобы оспорить его отговорки.


 


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


 


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


 


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


 


                Возможно, лучшее полное взаимопонимание между разработчиками поможет в этой коммуникации.


 


                Я оставлю вас поразмышлять об архетипе Нильсена. Целевая аудитория Джоэля довольно малознакома с UI, так что его книга является все-таки вводной. Есть несколько, если это возможно, заслуживающих внимание «правил», которых еще не касались ранее. Однако, утверждая набор правил и аксиом для программистов, он несет довольно большой риск. Программисты изначально имеют логический склад ума. Особенно, цифровая логика является областью, где они работают и в терминах которой они думают. Есть 1 и есть 0, и редко – что-то между ними. Так что, когда утверждение представлено как правило, оно может быть понято слишком буквально.


 


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


ШЯРРРр



 



 


 


22 Responses to “Kicking the Llama”


 


Mike wrote: 10 Oct 2003


 


Hahah… Being an ex-dev myself, I can totally relate to this week’s strip. While wearing the hat of a software dev., we often get into the thinking of more feature shown is better and end up plastering UI with everything we can think of.


 


isomorphism wrote: 15 Oct 2003


 


Ok? Cancel?


 


Userinterface design is a pretty hot topic, for at least many years now. What I didn’t know was that someone could actually make a comic out of this and make sensible comments about UI design!


 


Roland Tanglao's Weblog wrote: 15 Oct 2003


 


4 types of problematic programmers for UI design


 


(SOURCE:”joel”)- Very true and very funny because I have worked with all four types.


Wayne wrote: 15 Oct 2003


 


Nice article, thanks.


 


At the risk of being both negative and off topic, the site formatting you’ve chosen makes it difficult to read.


 


For those of us with high-resolution monitors, the text is very small. That’d be forgivable if we could increase the text size in our browsers, but it seems it’s fixed for your pages. I have good vision, so I’d hate to think what you are putting a person with a visual-impairment through.


 


The dark-grey text on light-grey background doesn’t help either.


 


Normally I wouldn’t bother mentioning this, but as you are HCI-dudes, I thought it useful.


thegoodtomchi wrote: 15 Oct 2003


 


Thanks for the comments Wayne. We’ll look into editing our styles so that text resizing works. It will be another triumphant victory for user feedback!


Mal Ross wrote: 15 Oct 2003


 


First time on the site and what a great article to start with. 


 


One thing puzzles me, though  kicking the llama?


Eric wrote: 15 Oct 2003


 


Wayne, I don’t know if you’re familiar with it, but Mozilla Firebird (http://www.mozilla.org/products/firebird/) (and probably Mozilla proper) resize the text just fine (as well as being good browsers in their own right).


 


I’m not sure it’s true that programmers are inherently binary in their choices. Maybe a beginning programmer is, but any experienced software developer should be quite familiar with design tradeoffs; often one particular design pattern or algorithm can’t be identified as an unqualified best. I would think most reasonably intelligent people could see the analogy to HCI rules. On the other hand I may be giving people too much credit; I’ve seen fellow developers redesign a progress bar so that it merely increments itself every x seconds (and restarts from 0 when it hits 100%) instead of actually tracking progress because it “looked better”.


 


Still, I think getting more people aware of HCI and UI design is a Good Thing; the fewer QuickTimes and RealPlayers we have, the better.


Eric wrote: 15 Oct 2003


 


Oh, and Mal, I think the title refers to Winamp, whose mascot is a llama and whose motto is “it really whips the llama’s ass”. I gather Kevin is not particularly fond of Winamp’s interface design.


mp wrote: 15 Oct 2003


 


Another class of problematic programmers:


 


Those that can’t stand what they see


as stupidity. If you were to face


the facts, some HCI people are, let’s


say, less than perfect. Also they tend to


be very political creatures — if someone


in upper management likes a particular


feature even if no customer is going


to need it and it is going to be staring


all customers in the face 24x7 and


it takes up valuable screen real estate —


the HCI guy is going to put his


full weight behind it anyway.


Of course the HCI guy is going to


see the programmers who oppose


his politically expedient issues


as “problem” probrammers!


brethorsting wrote: 15 Oct 2003


 


winamp skins for dummies


 


I just found a new comic strip through joelonsoftware. I’ve always absolutely, completely detested User Friendly. I have never found it to be funny or interesting in any sense. However, I think that OK/Cancel is actually really quite amusing, and…


aaron brethorst wrote: 15 Oct 2003


 


you guys really should open comments and trackbacks on the comic strip itself. I notice that the number of comments/trackbacks for the first blog entry under a strip are significantly higher than they are for the second one. This suggests to me that most people are just plugging the first trackback URL they find, regardless of whether they’re attempting to do a trackback on a strip, or on an actual entry.


cheers 


Developer wrote: 15 Oct 2003


 


I’d like to take issue with the tone of this article, represented nicely by this quote:


 


“Programmers are inherently logic oriented. In particular, digital logic is the domain they work and think in. There are 1s and there are 0s and rarely anything in between.”


 


I think that’s a pretty narrow minded and dehumanizing generalization.


 


Many people react to disagreements by dismissing the concerns of others as mental defects of their “kind”. This problem is particularly endemic to the software world, where people identify so closely with their cliques.


 


I think that it’s really unfortunate when people think about and communicate with their coworkers in this way.


Tom Chi wrote: 15 Oct 2003


 


Well we’re sorry if the tone of the article offended you. There is nothing wrong with being logical, in fact, it’s something that many people (both developer and non) pride themselves on. If it sounds like a mental defect, then that is not the intention, as both KC and I are reasonably logical people.


 


That said, what the article tries to do is intiate a dialogue between developers and HCI folks. In most organizations it is the HCI person who is dismissed as “their kind”, and rarely understood (if for nothing else than their small numbers compared to developers). That the article would put developers on the defensive is already surprising to me. KC is describing his own experience, and if you have other experiences which have helped you avoid these very common communication problems, then we’d definitely welcome them.


stanley chong wrote: 16 Oct 2003


 


Hi,


not that this has anything to do with your above article, but it’s really an eye strain to read your blog as there is little contrast between the font color and background color.


Ben Poole wrote: 16 Oct 2003


 


WinAmp has a DESIGNED INTERFACE? 


mr. hu wrote: 17 Oct 2003


 


I agree with the above poster. Programmers are not DSP chips. most of us rarely run into binary anything, and get nervous when talking about stuff in base 16.


 


Programming is every bit as creative as any other “creative” endeavor. we just don’t go to art school.


Kevin Cheng wrote: 18 Oct 2003


 


I absolutely agree, programming is an incredibly creative endeavour. However, the machine you’re working on IS a set of chips and gates and a programmer’s problem solving skills involve creatively manipulating this logic. Their DOMAIN is logic and they’re GOOD AT IT.


 


I believe the quote “Developer” quoted above is a little out of context, too. I was referring to the risk of Nielsen type programmers who interpret and apply rules too literally. Not all programmers are this way and in fact, most aren’t but the kind of programmer I describe does exist and I’ve experienced several even in smaller firms.


Vernell wrote: 18 Oct 2003


 


Just out of curiosity, does anyone know of any major or minor software products that are great examples of HCI design done right?


Jamie Fristrom wrote: 21 Oct 2003


 


I consider myself a “fearful” and I wear the name as a badge of pride. Fearfuls are simply more likely to ship on time. We may be confused with “lazies”, which is annoying.


Here’s how to deal with us:


* Ask us what it would take to get the feature done. Time / personnel / etc. Remind us that with computers, nothing’s impossible. Ask for best-case and worst-case estimates.


* Is there enough slack in the schedule to accomodate it? If not, decide what features to cut to accomodate it. Or admit that, yes, this feature is not in fact worth it.


Kevin Cheng wrote: 21 Oct 2003


 


I will happily admit that certain features are not worth the time it takes to implement them.


 


I don’t believe anyone that says, “that’s going to take too long to do in the current architecture” is automatically a Fearful. Rather, those that do so as the FIRST RESORT rather than the last are what I would call Fearful. Rather than taking it as another requirement which needs to be implemented, some programmers almost instinctively resist when another 15 minutes of thought might actually find a reasonable approach. Having a technical background myself, I’ve sometimes found that I had to personally walk them through their reasoning and find that alternate path myself. Something HCIers should not be expected to be have to do nor be able to do it.


 


Having said all that, I’m simply clarifying my definition, what you said in terms of process I completely agree with. It’s a question of the attitude more than the actions that make someone a Fearful.


oa wrote: 5 Nov 2003


 


came here to read the Joel book review, then complain about the font size (Mozilla resizes it fine, but why would a HCI site use a non-readable font by default?), but actually I have to comment on the “programmer kind” thing, no matter how off-topic.


 


mr. hu: I firmly believe that to be a good programmer, you need to understand the platform. To understand the platform, you have to understand how computers work in general, and that DOES mean you need to be able to work with binary. So, if you’re nervous about it, I think you need to train more.


 


Besides, DSP chips these days use floating point and are better at “fuzzy logic” than most programmers.


Fred Swartz wrote: 8 Feb 2007


 


Your basic points are good, but the characterization of programmers is surprisingly off the mark for programmers I know. You might recognize the offensive characterization when it’s flipped around:


 


Graphic designers are inherently illogical. In particular, they think and work in an analog domain where things are rarely 1 or 0. Thus, when a statement is presented as a rule, they may not be able to understand and follow it.


 


 




А так же :

Death, Part One


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


Диета кормящей матери, здоровье ребёнка, рождение ребёнка


Бергсон Анри
Анри Бергсон (1859-1941) - крупнейший представитель иррационализма XX в. Родился в Париже в англо-польской семье. Поступил в лицей Кондорсэ, затем учился в Высшей нормальной школе, которую окончил в 1881 г. Преподавал философию в Анжере и Клермон-Фер- ране, затем вернулся в Париж и преподавал в нескольких лицеях, после чего перешел в Высшую нормальную школу.


Гаишник осматривает машину: -


Он for free, для всех, кому это надо…



Hosted by uCoz