![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Алан Купер, "Психбольница в руках пациентов".
Я обычно не пишу о non-fiction, которую читаю по работе или просто так, но вдруг кому интересно будет. Книжка заявлена, как труд о проектировании взаимодействия программ с человеком. Юзабилити и все такое. Довольно активно расхваливается разными людьми, наприемер, Татьянычем. Впечатления оставляет двойственные. С одной стороны - психотерапия для манагеров программных проектов отменная, читаешь, и киваешь, похихикивая - "это он верно подметил, хорошо поддел". С другой стороны - ничего особо ценного он не сказал. Как всегда у западной литературы по управлению: треть книги благодарности и расшаркивания с объяснением мотивации автора, треть - бесконечные примеры того, как все плохо, и треть - "ща мы скажем, как надо", которая представляет собой еще столько же примеров того, как все было плохо, но теперь с заключением "но мы это изменили, и теперь все хорошо" (иногда "но нам не дали это изменить, поэтому проект быстро загнулся"). Ни о какой привычной нам, советским технарям, систематизации проблем, методов и подходов речи не идет. Кое-какие мысли почерпнуть можно, на некоторые примелькавшиеся и потому не замечаемые несообразности обращает внимание, но и только.
Всю вторую половину книги автор проводит мысль о том, что программистов нельзя подпускать к проектированию, потому что они являются особым классом людей, плохо совместимых с "нормальным" человеком. Вот тут я с ним полностью согласен, и сам часто говорю нечто подобное. Умение работать с логическими абстракциями и вообще способность сутками сидеть в коде требует определенного склада мышления и психики, которое действительно отличается от психики большинства людей. Ребята, не обижайтесь, я и сам отношусь к породе, которую Купер называет "хомо логикус" в противовес обычному "хомо сапиенс". В этом ничего обидного нет, вы и сами это отличие в душе понимаете, просто делаете не всегда правильные выводы.
Купер тоже это отличие сформулировал как-то криво, и в результате опять получилось, что программисты - какие-то извращенцы. Он описывает некий "самолетный тест" для сортировки - куда вы повернете при входе в авиалайнер, будь ваша воля: налево, в кабину пилотов, где куча непонятных приборов, с которыми надо годами обучаться работать, а потом весь полет напряженно пахать, или направо, где удобные кресла, и можно спокойно расслабиться, пока не доберешься до места назначения. Людей, которых поворачивают направо, Купер называет нормальными, при этом сам признается, что он-то в реальной жизни как раз повернул налево (в буквальном смысле слова - пилот-любитель). И как-то не акцентирует внимание на том, что без повернувших налево повернувшие направо никуда не полетят вообще.
По-моему, Купер хотел сказать следующее, но звучит у него это весьма невнятно: господа программисты, не надо пытаться переделывать людей, которые поворачивают направо, и пытаться всех их усадить на место пилота. Людей, которые идут направо - намного больше идущих налево, и что характерно - у них полно денег. Пусть остаются в удобном салоне и платят за билеты - тогда и у вас будет зарплата. Будьте извозчиком, а не претендуйте на роль инструктора по самолетовождению. В конце концов, завтра эти люди долетят до места и будут вас лечить, кормить или ремонтировать ваш унитаз (это уже не от Купера, это моя отсебятина).
Впрочем, автор, скорее, подводит к мысли, что увещевания эти бесполезны в силу особенностей психики программиста (без которых он бы не мог быть хорошим программистом), и поэтому - см. с самого начала: "программистов нельзя подпускать к проектированию".
В общем, больше ничего "капитального" в книге нет, остальные идеи - на уровне мелкой россыпи в примерах, удастся ли читателю их выковырять оттуда и применить - большой вопрос. Триста с лишним страниц, по-моему, на это многовато.
И, кстати, салоны самолетов тоже, видимо, проектируют хомо логикусы. Либо просто извращенцы. Ничем другим объяснить бесконечное воспроизведение кресла-ковша авиастроителями я объяснить не могу.
Я обычно не пишу о non-fiction, которую читаю по работе или просто так, но вдруг кому интересно будет. Книжка заявлена, как труд о проектировании взаимодействия программ с человеком. Юзабилити и все такое. Довольно активно расхваливается разными людьми, наприемер, Татьянычем. Впечатления оставляет двойственные. С одной стороны - психотерапия для манагеров программных проектов отменная, читаешь, и киваешь, похихикивая - "это он верно подметил, хорошо поддел". С другой стороны - ничего особо ценного он не сказал. Как всегда у западной литературы по управлению: треть книги благодарности и расшаркивания с объяснением мотивации автора, треть - бесконечные примеры того, как все плохо, и треть - "ща мы скажем, как надо", которая представляет собой еще столько же примеров того, как все было плохо, но теперь с заключением "но мы это изменили, и теперь все хорошо" (иногда "но нам не дали это изменить, поэтому проект быстро загнулся"). Ни о какой привычной нам, советским технарям, систематизации проблем, методов и подходов речи не идет. Кое-какие мысли почерпнуть можно, на некоторые примелькавшиеся и потому не замечаемые несообразности обращает внимание, но и только.
Всю вторую половину книги автор проводит мысль о том, что программистов нельзя подпускать к проектированию, потому что они являются особым классом людей, плохо совместимых с "нормальным" человеком. Вот тут я с ним полностью согласен, и сам часто говорю нечто подобное. Умение работать с логическими абстракциями и вообще способность сутками сидеть в коде требует определенного склада мышления и психики, которое действительно отличается от психики большинства людей. Ребята, не обижайтесь, я и сам отношусь к породе, которую Купер называет "хомо логикус" в противовес обычному "хомо сапиенс". В этом ничего обидного нет, вы и сами это отличие в душе понимаете, просто делаете не всегда правильные выводы.
Купер тоже это отличие сформулировал как-то криво, и в результате опять получилось, что программисты - какие-то извращенцы. Он описывает некий "самолетный тест" для сортировки - куда вы повернете при входе в авиалайнер, будь ваша воля: налево, в кабину пилотов, где куча непонятных приборов, с которыми надо годами обучаться работать, а потом весь полет напряженно пахать, или направо, где удобные кресла, и можно спокойно расслабиться, пока не доберешься до места назначения. Людей, которых поворачивают направо, Купер называет нормальными, при этом сам признается, что он-то в реальной жизни как раз повернул налево (в буквальном смысле слова - пилот-любитель). И как-то не акцентирует внимание на том, что без повернувших налево повернувшие направо никуда не полетят вообще.
По-моему, Купер хотел сказать следующее, но звучит у него это весьма невнятно: господа программисты, не надо пытаться переделывать людей, которые поворачивают направо, и пытаться всех их усадить на место пилота. Людей, которые идут направо - намного больше идущих налево, и что характерно - у них полно денег. Пусть остаются в удобном салоне и платят за билеты - тогда и у вас будет зарплата. Будьте извозчиком, а не претендуйте на роль инструктора по самолетовождению. В конце концов, завтра эти люди долетят до места и будут вас лечить, кормить или ремонтировать ваш унитаз (это уже не от Купера, это моя отсебятина).
Впрочем, автор, скорее, подводит к мысли, что увещевания эти бесполезны в силу особенностей психики программиста (без которых он бы не мог быть хорошим программистом), и поэтому - см. с самого начала: "программистов нельзя подпускать к проектированию".
В общем, больше ничего "капитального" в книге нет, остальные идеи - на уровне мелкой россыпи в примерах, удастся ли читателю их выковырять оттуда и применить - большой вопрос. Триста с лишним страниц, по-моему, на это многовато.
И, кстати, салоны самолетов тоже, видимо, проектируют хомо логикусы. Либо просто извращенцы. Ничем другим объяснить бесконечное воспроизведение кресла-ковша авиастроителями я объяснить не могу.
no subject
Date: 2012-02-10 12:35 am (UTC)Так эта аналогия ложная. Программист должен "врубаться" в любую тему, с которой он сталкивается, алгоритмизирует и так далее. Задачи могут быть вообще любые. В отличие от единственной задачи шофера "довезти из точки А в точку Б", с чем успешно справлялись автомобили с автоматическим управлением еще в 95 году.
Но создавая простые, понятные даже дураку интерфейсы, программисты:
1) Обрекают себя на работу с дураками.
2) Снижают престиж и создают иллюзию простоты отрасли.
3) Иллюзия простоты привлекает к отрасли большое количество "индусов", чем занимаются индусы - неясно, но для работы с индусами нужен менеджер, а не программист. Т.е. потеря рабочих мест и денег.
4) Если человек перед тем, как идти к программисту с идиотской претензией или заказом, сам немного погрызет гранит науки, то у такого человека будет лучшее понимание программиста. Вы хотите общаться с людьми, которые не умеют выражать свои мысли? Я - нет.
Поэтому - да здравствуют интерфейсы для программистов, которым надо учиться, но которые дают высокую производительность после обучения. Как пример - бессмертный norton commander.
no subject
Date: 2012-02-10 12:57 am (UTC)по второй части поста - аргументы странные.
первые два я не знаю даже как и прокомментировать :-) если вам удобно пользоваться какой-то вещь и вы разбираетесь с управлением/эксплуатацией без долгого изучения инструкции, то вы дурак, а отрасль, создавшая эту вещь, - непристижная? например, сотовая связь это тупо и просто?
3. если индусы это в переносном смысле, то можно объяснить низким порогом входа. например большое кол-во низкоквалифицированных программистов на php - знаний начальных надо мало, по сравнению с другими языками, время на изучение тоже достаточно небольшое, спрос большой. чем занимаются они вроде бы понятно - делают сайты/шабашки "занедорого". если индусы в прямом смысле этого слова, то объяснить можно дешевизной рабочей силы/рабочего времени. ну и приходом к ним интернета. что они делают вроде бы тоже понятно. например инсталляторы для оракла на java пишут. не сказать чтобы это совсем уж уровень php, но "индусский код" там был в полной мере, когда я сталкивался еще.
4) человек нормальный не ходит к программисту, и программист нормальный не ходит к заказчику, для этого есть специальные люди, которые понимают и тех, и тех. а для интерфейсов есть специальные люди, которые их создают, чтобы программисты туда не лазали. например.
про norton commander еще более странный аргумент. norton commander и был создан как упрощение интерфейса для пользователя. изначальный интерфейс был - командная строка dos. а в нортоне вместо "copy c:\path\file.txt a:\path\" достаточно было выбрать файлики и нажать f5.
no subject
Date: 2012-02-10 11:49 am (UTC)no subject
Date: 2012-02-10 09:14 pm (UTC)Нельзя ли поконкретнее про "алгоритмические шоры"? Конченым результатом работы программиста является программный продукт. Набор алгоритмов в виде программного кода. Что тут не так?