Со всеми удобствами…

Удобно ли, когда замок входной двери сам защёлкивается? Казалось бы да.

Не надо лишний раз лезть за ключом, когда выходишь. Но лишний ли?

Вспомните историю инженера Щукина из 12 стульев. А самим в подобном

положении не доводилось оказаться? Такова цена удобств…

Казалось бы, причём тут Лужков? Ой, я имел в виду учётные системы :)

 предлагаемые по умолчанию данные

Умолчания

Как удобно, когда система сама предлагает пользователю данные, решения, целые фрагменты текста. Остаётся только кликнуть на ОК! Но!

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

Экономим на крохах, теряем на ворохах.

Смысл подтверждения именно во взятии ответственности. Если пользователь, убаюканный «удобствами», не удосужился задуматься над тем, что он подтверждает, то что мы сэкономили? Так может пусть он ручками забьет требуемые данные или хотя бы осознанно (без предлагаемого умолчания) выберет их из списка. И никакие дополнительнительные  «А Вы действительно уверены?» не помогут — их он перещёлкнет ещё более автоматически.

Цена ошибки — жизнь.

Мне доводилось разрабатывать банковские системы. Заказчик ясно понимал цену ошибки. В начале 90-х или в общении с Юкосом это вполне могла быть жизнь. От меня сознательно требовали отсутствия  всяких умолчаний. И даже повторного ввода данных, как при подтверждении пароля. Так спрашивается, а что, цена ошибки в других учётных системах снизилась настолько, что пользователя держат просто клавиши плющить? Последние годы мне чаще приходилось разрабатывать учётные системы в других областях бизнеса. Заказчик не так щепетильно относился к защите от ошибок. «Поставьте здесь по умолчанию такое-то значение, как правило требуется именно оно». А потом с удивлением обнаруживается, что пользователи, особенно начинающие, даже не удосуживаются взглянуть на соответствие умолчания реальным требованиям учёта. И все данные остаются по умолчанию, хотя это явно ошибочно.

«Как правило»… А ну как исключение? Как правило, я тоже из дому выходил, проверив наличия ключа…

Редактирование

Наученный высокими требованиями «защиты от дурака» в банковских системах, я взял за правило открывать отдельную форму создания/редактирования любой учётной записи.

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

«А нам удобно редактировать прямо в гриде (ячейках таблицы)». Удобно  так удобно. Потом оказывается, что в таблице, которую разом на экране не разместишь (требуется прокрутка), через раз просто промахиваются мимо строки. А главное, не понимают, в какой момент сохраняются данные. Когда переходят на другую ячейку? Или строку? Или вообще закрывают форму? И бегут к администратору БД – исправьте, пожалуйста, мы тут ошиблись. Ну как, удобно вам???

О модальности экранных форм

Если кто не в курсе, это буквально означает невозможность, не закрыв (с сохранением или без) форму, открыть другую и продолжить работу в ней.

«Модальные формы нарушают права человека!» В смысле пользователя.

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

Ответ — безусловно нет. Так и не надо его на подобные ошибки провоцировать! А чтоб пользователю не надо было искать необходимую информацию на других формах системы, формы надо проектировать так, чтоб вся необходимая для принятия решений информация была у него перед глазами в данной форме. Ну максимум — на закладках или всплывающих окнах данной формы. Кстати, такой подход к модальности открывает прямой путь к созданию WorkFlow — управлению работой пользователя. Когда система если не управляет, то хотя бы направляет пользователя к выполнению тех операций в учётной системе, которые от него требуются в данный момент.

Хотелось поделиться ещё соображениями об удобстве уже не пользовательском, а разработческом. О тех же умолчаниях, слабой типизации, инкапсуляции-полиморфизме-наследовании. Но, пожалуй, в следующий раз.

Оставить комментарий