Как стать автором
Обновить

Комментарии 34

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

С учётом этой ошибки нет доверия компетенции автора в остальном и пропадает желание анализировать остальной текст.

Нужно так:

Это пароль уже занят пользователем MAXInator. Если вы хотите использовать пароль, пожалуйста попросите пользователя сменить пароль. Написать ему можно на e-mail maxinator@gmail.com

Введеный вами пароль "helloworld" не соответствует пользовательскому паролю "hello-world-1". Пожалуйста, попробуйте снова.

Вот именно, вы не разработчик сервисов. И скорее всего редкий пользовтаель таких сценариев.

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

Неверный логин/пароль. Хе. Расписываю. Ошибка в логине, такого нет. Недопустимые символы в логине (одно устройство позволило завести пользовтаеля с ним, на втором такой вход невозможен - я с этим сталкивался). Ошибочный пароль к этому логину. Недопустимый набор символов в пароле (валидация на форме отлупила раньше чем пошли на авторизацию). Ошибка процедуры авторизации отличающаяся от просто неработающего сервиса. Таймаут формы регистрации.

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

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

В данном случае пример с формой авторизации неудачный, имхо.

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

А чтобы не приходилось думать над сообщением о некорректных символах в логине/пароле, нужно не допускать даже их ввода как на UI так и проверки на стороне бэкэнда.

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

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

С одной стороны, для "классических" систем безопасности вы правы. С другой стороны — я давно уже не видел сайтов где логин был бы и правда секретным! Всегда в качестве логина используется или электронная почта, или номер телефона, или номер счёта, или ник. У злоумышленника куча способов узнать их и помимо формы аутентификации.

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

Забудьте про корпоратив, делайте для людей

Подумал, что речь будет про новогодний корпоратив. Читал и думал как же от программ для людей перейдем к отмечанию НГ.

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

Подумал, что речь будет про новогодний корпоратив. Читал и думал как же от программ для людей перейдем к отмечанию НГ.

Наверно смысл будет тот же, что и с программами - руководители, делайте интересное времяпрепровождение для людей, вместо уже осточертевших бухло-тамада-пошлые конкурсы. :)

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

востребованность ПО определяется уникальностью функционала, а остальные ПО-миньоны обречены соревноваться в милоте.

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

имел ввиду упомянутые Госуслуги в той части где их ничем не заменить.

Основная задача программы, да и любой автоматизации - приносить деньги. Если пользователю неудобно - его проблемы. Он получает за это з/п, пусть терпит. Если ПО из за неудобства теряет конкурентное преимущество, то подключаются маркетологи. А тратить время/деньги чтобы кому-то там было удобно, бизнес не намерен.

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

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

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

А что они будут объяснять родственникам пассажиров Боинг 737 max?

"Это была трагедия. Мы вам сочувствуем." и вытрут слёзки 100-долларовыми купюрами

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

Компания-разработчик не будет тратить средства, чтобы допилить интерфейс, если это не принесёт прибыль.

Соцсети?

Да, соцсети. Посмотрите во что превратился ВК. Сделали хуже. И всё ради бабла.

не пользуюсь ВК, ну следуя вашей логике в статье, там не должно быть пользователей...

ну вы, как бы, сами себе подобрали антипример. разве востребованность этому ПО придает "сделанность для людей"?

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

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

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

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

  2. Отсутствует независимая площадка для получения обратной связи от пользователей. Чаще по политическим причинам (все помнят урны для отзывов)

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

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

  5. В конце концов инициатива покарает инициатора, если кто-нибудь осмелится довести решение проблемы до конца.

И проблема тут вовсе не в плоскости it. Капитализм-с

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Кстати, есть еще хорошая практика пользоваться результатами своих трудов. Так лучше понимаешь пользователя и видишь, что можно исправить/дописать.

Имхо, тут все не так однобоко, как описано в статье, есть ещё минимум два момента:

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

  2. > Так себе это представляет бизнес, и когда управлению скажут что оно работает, но что-то может пойти не так, и на обработку этого не так надо еще +N дней, то есть увеличить время разработки фичи, например, в 2 раза, то обычно чаша весов склоняются в сторону “если не должно быть, в теории, то и не делаем, не критично”. И вот это не критично выливается в удобство использования и многочисленные негативные возгласы в отзывах на продукт.

    Довольно часто (не сказал бы, что в большинстве случаев, но встречается нередко) бывает немного другая ситуация: приходит условный бизнес/руководство и говорит, что надо сделать что-то очень хорошо (я это обычно это наблюдаю в вопросах безопасности из-за специфики работы, но это встречается много где), выделяет разработчикам запрошенное время, спрашивает, нужно ли ещё что-то, все ок. А в результате оказывается, что не сделано практически ничего, в худшем же случае резко возникает десяток историй про то, что все хорошо, это коллеги ничего не поняли, все сделано так, как договаривались. Проблема частично в том, что хорошо разрабатывать очень скучно: надо делать много рутинных и обязательных вещей, которые делать лень. Скорее всего, вам самому было бы лень делать проверки на все те случаи загрузки файла, которые описаны в статье, гораздо проще выкинуть ошибку с кодом 200 и написать «Ошибка загрузки». И только самоуважение, серьезная дисциплина разработки, либо неизбежная кара за косяки приводит к тому, что ПО получается довольно качественным хотя бы на уровне отсутствия базовых проблем, вроде непонятных ошибок или постоянных вылетов.

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

// А. де Сент-Экзюпери "Планета людей"

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации