city_rat: (Default)
city_rat ([personal profile] city_rat) wrote2012-02-04 12:57 pm
Entry tags:

Читанное

Алан Купер, "Психбольница в руках пациентов".

Я обычно не пишу о non-fiction, которую читаю по работе или просто так, но вдруг кому интересно будет. Книжка заявлена, как труд о проектировании взаимодействия программ с человеком. Юзабилити и все такое. Довольно активно расхваливается разными людьми, наприемер, Татьянычем. Впечатления оставляет двойственные. С одной стороны - психотерапия для манагеров программных проектов отменная, читаешь, и киваешь, похихикивая - "это он верно подметил, хорошо поддел". С другой стороны - ничего особо ценного он не сказал. Как всегда у западной литературы по управлению: треть книги благодарности и расшаркивания с объяснением мотивации автора, треть - бесконечные примеры того, как все плохо, и треть - "ща мы скажем, как надо", которая представляет собой еще столько же примеров того, как все было плохо, но теперь с заключением "но мы это изменили, и теперь все хорошо" (иногда "но нам не дали это изменить, поэтому проект быстро загнулся"). Ни о какой привычной нам, советским технарям, систематизации проблем, методов и подходов речи не идет. Кое-какие мысли почерпнуть можно, на некоторые примелькавшиеся и потому не замечаемые несообразности обращает внимание, но и только.

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

Купер тоже это отличие сформулировал как-то криво, и в результате опять получилось, что программисты - какие-то извращенцы. Он описывает некий "самолетный тест" для сортировки - куда вы повернете при входе в авиалайнер, будь ваша воля: налево, в кабину пилотов, где куча непонятных приборов, с которыми надо годами обучаться работать, а потом весь полет напряженно пахать, или направо, где удобные кресла, и можно спокойно расслабиться, пока не доберешься до места назначения. Людей, которых поворачивают направо, Купер называет нормальными, при этом сам признается, что он-то в реальной жизни как раз повернул налево (в буквальном смысле слова - пилот-любитель). И как-то не акцентирует внимание на том, что без повернувших налево повернувшие направо никуда не полетят вообще.

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

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

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

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

[identity profile] kouzdra.livejournal.com 2012-02-04 09:21 am (UTC)(link)
Я, надо сказать, в молодости имел опыт работы оператором с довольно большой нагрузкой - и плоды езобретений "специалистов по юзабилити" и по "дружественным интерфейсам" с тех самых пор у меня вызывают почти исключительно желание набить им морду. Программисты тут лучше уже тем, что они хотя бы время от времени едят ту собачью еду, которую производят (что не избавляет, но несколько умеряет).

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

[identity profile] gineer.livejournal.com 2012-02-04 09:57 am (UTC)(link)
\\Будьте извозчиком, а не претендуйте на роль инструктора по самолетовождению. В конце концов, завтра эти люди долетят до места и будут вас лечить, кормить или ремонтировать ваш унитаз (это уже не от Купера, это моя отсебятина).

Угу.
Особенные кони начинаются,
когда эти "пассажиры" начинают указывать
программисту че и как ему делать,
а когда утомленно и сдержано начинаеш объяснять
что оно так "не взлетит",
с милым удивлением вопрошают "почему, это ведь чисто техническая проблема для вас".

[identity profile] city-rat.livejournal.com 2012-02-04 10:00 am (UTC)(link)
Вот типичная психика программиста - об этом выверте в книжке, кстати, есть. Программист будет охотно тратить 80 процентов времени проекта на разработку, скажем, рабочего места бортинженера - потому что знаком с работой бортинженера, и она ему нравится. Про места для остальных 500 человек (включая как пассажиров, так и КВС) он склонен забывать, а место для бортинженера делает, исходя из предположения, что все бортинженеры - левши, потому что сам он левша.

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

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

[identity profile] city-rat.livejournal.com 2012-02-04 10:06 am (UTC)(link)
Ох, ща тут в комментах будет очень много боевых плясок программистов. Что забавно - и о вашем случае у Купера есть. Тему он действительно знает. Программисты глубоко уверены, что лучше всего пассажиров усыплять, замораживать и затем перевозить штабелями в негерметизированном салоне. Потому что так намного надежнее и привычнее. А когда пакс робко просит хотя бы кислородную маску ему дать - утомленно и сдержанно (хотя и с орфографическими ошибками) начинает объяснять глупому юзверю, что тянуть шланг с земли для каждого пакса - совершенно нереально, с ними не взлетит.

[identity profile] sabotagecat.livejournal.com 2012-02-04 10:09 am (UTC)(link)
"усыплять, замораживать и затем перевозить штабелями в негерметизированном салоне"

я бы назвал это "эконом класс с большим местом для ног и неограниченным питанием"

[identity profile] daregod.livejournal.com 2012-02-04 10:17 am (UTC)(link)
А вы иногда послушайте, что говорят. Внезапно, "пассажиры" немного по-другому всё видят и удобно им не так, как вам.

Я не говорю про запущенные случаи "мы раньше делали вот так, и привыкли справляться за 2 дня, а вы сейчас сделали непривычно, ну и что что за 20 минут справляемся, верните как было".

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

[identity profile] daregod.livejournal.com 2012-02-04 10:19 am (UTC)(link)
А советов что делать тем, кто несколько лет назад такую ошибку допустил - допустил к проектированию программистов - и теперь не знает как этот ужас разгребать, ничего не сказано? :)

[identity profile] city-rat.livejournal.com 2012-02-04 10:22 am (UTC)(link)
Ты мыслишь не как программист, а как маркетолог, которому программисты всучили свое творчество :)

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

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

[identity profile] city-rat.livejournal.com 2012-02-04 10:29 am (UTC)(link)
В общем-то сказано. Но примерно в духе "венки купить надо обязательно, а вот оркестр нанимать - только если очень уважаете покойного".

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

[identity profile] daregod.livejournal.com 2012-02-04 11:04 am (UTC)(link)
Психологическая накачка, вместо методологии - типичный "западный путь". Ещё бы понять, как при всём при этом они в целом остаются довольно эффективными..

Ну, либо нужно предположить, что у них есть особые книжки, которые до нас не доходят, с методологиями и прочим.

[identity profile] gineer.livejournal.com 2012-02-04 11:06 am (UTC)(link)
\\А когда пакс робко просит хотя бы кислородную маску ему дать - утомленно и сдержанно (хотя и с орфографическими ошибками) начинает объяснять глупому юзверю, что тянуть шланг с земли для каждого пакса - совершенно нереально, с ними не взлетит.

На это ответ простой.
Нефиг на место инженера граждаской авиации брать РНР былокодера. :)))

Я понимаю, что для "пассажира" все программисты одинаковы с лица -- бормочут что-то непонятное и топчут клаву... после чего на экране появляются чудесные картинки.

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

[identity profile] sabotagecat.livejournal.com 2012-02-04 11:07 am (UTC)(link)
"Не взлетит, я сказал"

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

Это не к тому что каждый должен стать homo universalis, гхы. Но компетенция программиста должна выходить за рамки понимания "как сделать X" и затрагивать вопросы "как и кем будет использоваться X?","какова важность X для проекта в целом?","нужен ли X вообще?", "продадим ли мы X?".

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

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

[identity profile] gineer.livejournal.com 2012-02-04 11:13 am (UTC)(link)
На самом деле, есть такая "секретная" методология, из двух пунктов всего:
1)нанимай правильных людей
2)не мешай им работать

Только. Работать по ней -- стоит очень дорого.
"Правильные люди" -- стоят дорого,
да и способность "не мешать им" нынче тоже не дешевы.

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

Судя по описанию,
и эта вот книга -- какраз из этого разряда -- "смотрите каких классных штук я нарыл по помойкам". :)))
Edited 2012-02-04 11:14 (UTC)

Мое ИМХО...

[identity profile] gineer.livejournal.com 2012-02-04 11:18 am (UTC)(link)
Что существует одна единственная реальная проблема менеджмента програмных проектов -- средств которых не жалко на проектирование/разработку/внедрение/поддержку програмных проектов, обычно СИЛЬНО меньше, чем реально требуется для нормальной работы над проектом.

[identity profile] gineer.livejournal.com 2012-02-04 11:25 am (UTC)(link)
Прогресс все равно идет в ту сторону, что пользователь должен быть и программистом.

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

[identity profile] city-rat.livejournal.com 2012-02-04 11:37 am (UTC)(link)
Рекурсия, однако. Нанимаешь правильного человека, и не мешаешь ему. Правильный человек тоже знает правильную методологию, и нанимает правильного человека. И т.д. Спасает ситуацию только то, что однажды кто-то из правильных людей ошибается, и нанимает-таки неправильного человека.

[identity profile] city-rat.livejournal.com 2012-02-04 11:46 am (UTC)(link)
Есть опасение, что для большинства программистов выход за рамки собственного мировосприятия затруднителен не в силу ограниченности компетенции, а в силу принципиального нежелания за них выходить - в силу определенных психологических особенностей, являющихся обязательным условием для успешной работы в качестве собственно программиста. Конечно, не все программисты таковы - иначе бы мы до сих пор бы в командной строке сидели, но их мало, и они дорогие, либо не очень хорошие программисты.

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

[identity profile] city-rat.livejournal.com 2012-02-04 11:49 am (UTC)(link)
Проблема в том, что большинство инженеров гражданской авиации - это тоже хомо логикусы...

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

[identity profile] gineer.livejournal.com 2012-02-04 11:53 am (UTC)(link)
Ха.

[identity profile] gineer.livejournal.com 2012-02-04 11:55 am (UTC)(link)
А надо брать тех "кто поворачивает направо"? Оригинально, оригинально. :))

[identity profile] b00ter.livejournal.com 2012-02-04 11:58 am (UTC)(link)
А есть ли смысл в такой книжке? Частности, из которых следует извлечь наиболее подходящие шаблоны и применять их? Ну типа "увидели большую красную кнопку или программиста, кладущего на требования пользователей - ату его, согласно Куперу"?

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

[identity profile] ziavra.livejournal.com 2012-02-04 12:06 pm (UTC)(link)
да ладно? а автолюбитель - автомеханником? а вы ведь и в устройстве мобильного телефона, и компьютера разбираетесь? и если что-то там сгорит, то сами почините?

или это я сейчас аналогию с сисадминами провёл, а по аналогии с программистами вы сами сможете создать компьютер, телефон и автомобиль?

[identity profile] city-rat.livejournal.com 2012-02-04 12:07 pm (UTC)(link)
Вообще говоря, за рулем автомобилей сидят в основном "поворачивающие направо". И ничего - ездим как-то. Причем квалификация водителей в среднем падает, а аварийность (в передовых странах) снижается.

Тут, конечно, есть засада - и логическая, и психологическая, которая у Купера, кстати, крайне слабо освещена. Кому-то налево поворачивать все равно надо. Проблема в том, что "логикусы" ("поворачивающие налево") считают свое направление единственно правильным, и заведомо отказывают "правакам" в праве на собственное мнение, что усугубляет расслоение. А ресурсы-то - в руках "праваков", просто потому, что их больше, и всегда будет больше.

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

Забавное совпадение - я параллельно читал "Дневник грабителя" Дэнни Кинга (криминальный "производственный роман"), так там книга начинается с комедийной сцены, где домушники перерывают квартиру в поисках инструкции к уже украденному видаку, потому что скупшик краденного на них ругается, когда они приносят ему незнакомые аппараты: "Чуваки, мне нужно продавать эти штуки людям, они спросят у меня, как они работают, а что я им скажу, если и сам этого не знаю?"

[identity profile] city-rat.livejournal.com 2012-02-04 12:23 pm (UTC)(link)
Я несколько неплохих идей там подцепил. Но да - шума много.

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

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

[identity profile] sabotagecat.livejournal.com 2012-02-04 12:26 pm (UTC)(link)
Кстати! Извини за нескромность, но "Дневник киллера" - как он на вкус оказался? :-)

Page 1 of 3