Why Software Sucks




Недавно прочитал книгу David S. Platt: Why Software Sucks… and What You Can Do about It.. Книга небольшая. Написана очень живо и очень простым языком. Не думал, что в ней найдется что-то, что заденет меня за живое, но пришлось ее прочитать, так как ее очень рекомендовал один умный человек.
И я не пожалел. Фактически, для меня вся эта книга - это всего 3 очень простые и одновременно очень сложные мысли:

  1. Пользователь твоей программы - это не ты. Разработчики часто, очень часто забывают про это. Они пишут программы, ориентируясь на себя и свой уровень знания, а не на уровень знаний клиентов (пользователей). Отсюда проблемы с кривыми интерфейсами, сложными программами или отсутствием юзабилити  у продуктов. Ведь разработчик думает как? Для него следующее - это очень простая и правильная инструкция: “Чтобы сохранить документ - найдите папку, куда установлена программа, запустите файл savedoc.exe с параметром командной строки -s и именем файла для сохранения. Вы можете использовать дополнительные параметры: -m ….. “. Это простая инструкция? Возможно, да,.. для кого-то. Тогда как юзеру надо не инструкцию, а пункт SAVE в меню и всё. Никаких путей и командных строк. Такие “недоразумения” в дизайне случаются всегда, если техническим людям разрешено решать, что для пользователя просто и правильно, а что нет. И дело совсем не в том, что “пользователи все тупые”, а в том, что вы не должны требовать наличие у пользователя того же уровня знаний, какой есть у вас.
  2. Нужно делать простые вещи простыми, а не давать возможность делать сложные вещи. Любовь к созданию сложных вещей - это очень широко распространенная особенность программистов и других технических специалистов. Программисты любят сложности. Они не любят делать простые вещи - они любят делать сложные вещи, которыми можно было бы гордиться. А между тем пользователям не нужны сложности - им нужна возможность очень просто делать простые вещи. Например, вспомните главную страницу гугла - это запатентованный идеал простоты. Невозможно сделать поиск проще. И пользователи это любят. Возьмите любой другой поисковик, где кроме строки поиска еще куча рекламы и другой информации - любят ли пользователи такие поисковики? А ведь казалось бы, что сделать такую поисковую страницу с кучей автоматически генерящейся информации - это в разы сложнее и интереснее для программиста. А страницу гугла может сделать и школьник - никакого удовольствия. Та же проблема пронизывает всю работу программистов - они не любят делать простые удобные дизайны, а лучше сделают что-то супер расширяемое, хоть и неудобное. Они могут заставить пользователя сделать 5 кликов прежде, чем можно нажать кнопку “Сохранить” - и все это только потому, что “зато такой дизайн позволяет до ЛЮБОЙ кнопки добраться всего за 5 кликов” - но ведь пользователю не нужна “любая кнопка” каждые 2 минуты, а только нопка “Сохранить”.
  3. Если вы хотите как-то улучшить ситуацию с ПО, то пишите про каждую найденную неудобность и недоработку разработчику. А если разработчик не реагирует, то на публичные форумы. Например, если на каком-то сайте что-то не работает или работает, но неудобно, то найдите форму обратной связи и напишите там свои впечатления. Если MS Office глючит или новый интерфейс вам не нравится, то найдите там кнопку Send Feedback и напишите про свои впечатления. Это кажется неважным обычно, но на самом деле это единственный канал, по которому разработчики могут узнать, что в программе или сайте что-то не так. Представьте, что Майкрософт поменял интерфейс в MS Word и новый интерфейс никому не нравится, но никто не шлет отрицательные комментарии. Изменится ли что-то? А если каждый из 100 млн. пользователей напишет отрицательный feedback? То же самое относится и к любому сайту, к любой программе - не ленитесь слать фидбек разработчику. А если вы разработчик, то не ленитесь сделать посыл фидбека максимально простым, ведь улучшение продукта - это в ваших интересах



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


P.S.:
А вот она и на русский переведена уже, оказывается: Дэвид Платт. Софт - отстой! И что с этим делать?. Рекомендую.

5 комментариев к Why Software Sucks

  • Adamos

    Свои пять копеек в тему.
    Разрабатывал программу - публичную, но “по заказу” своего начальства.
    Разработка закончена, начальству все нравится, выложил на сайт.
    Потом один из пользователей прислал фидбек, второй…
    В общем, я для себя назначил заказчиком этого пользователя - внес то, что он предложил, послал ему на одобрение, обсудили, получил новые предложения… И так две недели “полировки”.
    Кстати, нашел несколько неочевидных косяков.
    Теперь программа и мне нравится больше, и народ доволен.
    Правда, дедлайна у меня не было, и начальство не пинало эти две недели.

    • В общем, я для себя назначил заказчиком этого пользователя - внес то, что он предложил, послал ему на одобрение, обсудили, получил новые предложения… И так две недели “полировки”.

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

  • bialix

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

  • Я тоже пытаюсь гворить о ляпах разработчикам…Только в 90% случаях им плевать на наше мнение…

  • G300

    Жаль, что программы разрабатываются сейчас не для пользователей, а для прибыльного сопровождения этих программ…..

Ответить

 

 

 

Вы можете использовать эти HTML тэги

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>