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

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

Всё равно конечный вариант не годится. Далёк он от ментальной модели пользователя.

одна из ячеек в таблице имеет формат

Что такое верный? Зачем мне это знать, как пользователю, если я не понимаю, что верно, а что нет? Что мне делать с этой информацией?

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

Собственно, всё уже сто лет назад придумано: Abort, Retry, Fail?

В данном случае нужно две кнопки:

* Попытаться исправить ошибку и открыть
* Отказаться от открытия

Ну и само сообщение что не так, а не тупое «Error, file could not be opened».
*Abort, retry, ignore?
И первые две опции бессмысленны.
Представьте, что вы сказали подчиненному принести документы, и он вам говорит:
Тут в одном месте неясно что написано. Может вам не нужны эти документы, или мне попробовать посмотреть еще раз, что тут написано?
Вероятно вы заберете у него эти документы, а также задумаетесь, нужен-ли вам такой тупица в подчиненных.
Хороший подчиненный принесет вам документ и выделит подозрительные места, не спрашивая. Или как минимум — не станет доставать глупыми вопросами.
Собственно поэтому на работе ещё работают люди, а не компьютеры. Нормальный ИИ пока не реализован, всё что может компьютер, это пройтись по всем веткам алгоритма. Что либо придумать компьютер пока не в состоянии.

Возвращаясь к топику обо открытии файла. Retry нужен, так как файл может находится на недоступном носителе или на очень нагруженном сервере. А может быть на битом винте и тогда дёргать его лишний раз не желательно. Abort и Ignore тоже разные вещи, если вы гружите директорию «1001 прикол из инета» то в общем-то не особо важно, что один из них не скачается, а вот если грузите исходник, то без одного файла он не соберётся.

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

Приведенный вами случай применения диалогового окна retry, abort, ignore в контексте загрузки с сервера гораздо более уместен, чем открытие файла у себя на компе. Тем не менее, попробовать открыть файл заново м.б. даже удобнее, чем оставлять диалоговое окно a. r. i., чего-то где-то менять, и с этого диалог. окна нажимать retry.

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

Т.о. из ваших аргументов про 2 исключения не вытекает написание всезнающей программки открытия файла, а всего-лишь то, что окно abort, retry, ignore с горем пополам уместно лишь в приведенных вами 2х случаях.

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

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

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

По логике вещей программа должна делать только то, для чего она предназначена и ничего больше и делать это хорошо.

Это рождает предсказуемость действий компьютера и представляет пользователю контроль над тем, что он делает. Если программа делает ещё что-то, что по мнению какого-то далёкого проектировщика тут уместно, то пользователь превращается в пассивного наблюдателя и непонятно вообще зачем он нужен.
Я не утверждаю этого, почему вы так настойчиво хотите впихнуть в открытие файла все эти функции?
Я говорю об окне, которого могло бы не быть — и это было бы в большинстве оправдано. И не понимаю, причем тут жесткий диск, сеть, gps и клоуны. О том, что файл открылся с ошибками/ не открылся, можно сигнализировать более простыми, понятными, функциональными и ненавязчивыми способами. И это будет даже более предсказуемым. Что тут думать — можно открыть — открывай, разве кто-то будет сомневаться? А нельзя — в этом случае нужно вывести окно с максимально понятным описанием проблемы, и с возможными действиями, которые будут полезны пользователю. Например, в случае недоступности файла ignor абсолютно бесполезен, как и retry,- ведь в ближайшие пару минут навряд ли что-то изменится. Проще попробовать открыть файл позже. А в случае, если в файле ошибки, но его можно открыть — никто не остановится перед этим, соотв abort и retry — также бессмысленны.
И вовсе не нужны никакие чудовищные алгоритмы.

А вот вопрос кто «дальше» от пользователя — программист или проектировщик — решается однозначно назначением этих специалистов. Так вот назначение проектировщика — проектировать продукт максимально удобный для пользователя, отражать ментальную модель пользователя в продукте. Программист-же зачастую создает модель реализации (как удобно было-бы реализовать), которая, к его удивлению, мало кому понятна.
Неужели вы считаете, что для того, чтобы пользователь ощутил свое присутствие и нужность (а не пассивное наблюдение), нужно его нервировать тупыми и бессмысленными диалоговыми формами?
PS: красиво и чётко о проблемах в интерфейсах — первая глава замечательной книги «Об интерфейсе» Алана Купера. Буквально, первые шесть страниц.
И вся 25-я глава «Ошибки, уведомления, подтверждения».
Да, просто не могу сослаться, ибо нет в электронке этой главы.
Вообще вся книга очень полезна. Вряд ли что-то можно сказать больше и лучше, чем в ней написано.
Спасибо, я знал, что кто-нибудь подскажет где можно почитать на эту тему :)
Или глава 12 — «Проектирование хорошего поведения» — основа для понимания принципов построения поведения )
Бедные пользователи, до всего догадываться нужно. Думать заставляют, гады.
Пользователю интереснее думать над своими задачами, а не над тем — что имела ввиду программа, сообщив об ошибке, как это можно исправить и как бы исхитриться, чтобы заставить программу корректно работать.
Не занимайтесь разработкой интерфейсов, пока не станете думать иначе.
Я не понимаю, почему в представлении многих людей, занимающихся интерфейсами пользователи представлются в виде каких-то не полноценных и задача компа, будто бы, эту неполноценность компенсировать?

Ведь пока компьютеры не научились думать лучше людей, почему бы пользователю просто не предоставить текущую ситуацию и спросить, «моя не понимать что делать дальше, мастер!».
Человек, работающий за компьютером не должен разбираться его устройстве и устройстве операционной системы и даже внутреннем устройстве программ. Для выполнения своих задач ему достаточно знать интерфейс программ, которые он использует.
дык, не кто его же не спрашивает, в какой регистр что записать, и какое прерываене вызвать. Если это не дебаггер, конечно :)

Топик обозначен чётко, программа не может открыть файл.

Это может быть вызвано over 9000 причин.

* У пользователя нет прав на чтение
* Файл не существует
* Программа не знает как читать файл
* Файл повреждён

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

Неужели это так заумно?
Все эти причины можно написать, языком понятным для человека. К тому же в примере, указанном автором, программа была в состоянии написать отчет об ошибке в лог. Так вот она может изложить тоже самое в сообщении об ошибке, и, осмелюсь предоложить, что можно даже предложить пользователю варианты исправления типа «Удалить строку» или «Удалить нечитаемое значение из ячейки».
Нормальный пользователь — это тот, кто купил программу и оплатил техническую поддержку. Задумываться об «остальных», это все равно, что работать бесплатно.
PS. Хотя кнопку: «Сообщить техподдержке» стоило бы добавить…
Т.е. Вы предлагаете специально создать искусственные «барьеры», дабы склонить пользователя к покупке, т.к. она предполагает получение технической поддержки? Или я Вас неправильно понял?
Нет. Я предлагаю задумываться только о благополучии тех пользователей, которые проплатили техническую поддержку (ну или покупку). И не задумываться об облегчении тяжести жизни тех, кто нагло скомуниздил программу.
Не обязательно проблемы могу возникнуть у того, кто пользуется ею нелегально. Если взять, к примеру, шаровару, то в первые 30 дней пользователь может пользоваться ею вполне легально. Станет он покупателем или нет зависит, в том числе, и от «дружественности» программы.
Так точно. Но в N(30)-дневный период он имеете полное право написать свою проблему в техподдержку и тогда станет ли он покупателем или нет зависит только от того сможет ли его «удовлетворить» поддержка. Нет ничего дружественнее в интерфейсе, чем опытный помощник который быстро решит за него проблему.
Не буду Вас переубеждать, мне лично нравится когда программа умеет сама решать свои проблемы. Этот подход сводит обращения в ТП к минимуму, что, в свою очередь, тоже должно нравится производителю софта, т.к. позволяет сократить издержки на ТП.
Ох блин, работал я однажды в такой конторе, которая специально писала кривой софт для того, чтобы юзеры покупали у нее дополнительную услугу поддержки и меньше пиратили (и именно поддержкой и занимался). Меньше чем через год я свалил оттуда, когда продажи устремились под откос и начались задержки зп. Говорят, они в конце концов избавились от этого маразма.
По-моему у вас волчанка.
При каком месте тут вообще копирастия? Автор привёл вполне нормальный пример, когда прога изгаляется как может даже над опытным пользователем — какого хрена я должен лезть в дебри ФС, чтобы посмотреть лог, который можно было вывести сразу на экран? Так, кстати, кое-кто поступает.
Выбор — или я обращаюсь в поддержку, или занимаюсь неудобной и неинтуитивной хернёй — меня не радует совершенно. Допустим, я опытный пользователь, я купил эту долбаную программу, с какой стати я должен по любому чиху обращаться в техподдержку или тратить время на копания в мусорке?
Главное в этом: вы купили эту долбанную программу. Дак какого пипи вы должны задумываться о том, что у вас что-то не работает? Лично Вас как покупателя это волновать ваще не должно. Если у вас есть проблемы, и они (техподдержка) нанималась это делать, то какого хрена Вы должны забивать свою голову их проблемами???
Такого, что мне быстрее будет разобраться, что от меня хочет программа, чем ждать, пока техподдержка изволит снять трубку или ответить на мэйл. К тому же, она далеко не всегда готова предложить адекватное решение проблемы. Особенно «вотпрямщас».
Попробуй ей еще эту проблему объяснить словами. Коды ошибок и то не всегда спасают.
Главное в том, что проблем быть не должно по определению. Но если они есть (то есть программа не может с ними справиться), то пользователь должен получить в руки всю информацию как можно быстрее и дальше уже решать, что с ней делать — обращаться в поддержку или попробовать исправить самому, а не ждать, пока эта поддержка отреагирует.
И сколько вы потретите на коллцентр для приёмки звонков «у меня не печатает»?

К тому же over 9000 пользователей не будут звонить, а уйдут к конкурентам.
А MS Office распространяется бесплатно?
Надо расчитывать на то, что 70% пользователей мало что смыслят в компьютерах. Эти 70% — «Чукча не читатель, чукча писатель». На прошлой работе делали формы с подсказками по каждому контролу, при наведении показывалась подробная подсказка, что туда вводить и зачем, все равно никто ничего не понял. А тут если на работе все равно побегут к админу. У нас бегают даже в случае, если открывают эксель, а там появляется окно сообщающая о том, что vb скрипты заблокированы, все, паника и бегут к админу с криками эксель не работает и не запускается.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Идеально вообще без пользователя
«Понятно» не значит «примитивно». Иначе будет понятно, что ничего не понятно. Разработчики, в частности Майкрософт, часто отталкиваются от понимания юзером отдельных слов (и соответственно выстраивается корпоративная политика, какие слова можно юзать в сообщении, а какие нельзя, «ибо не поймут-с»), а нужно предоставлять ситуацию в комплексе, сообщая и базовую причину, и расширенную информацию, даже если поймет ее только сам разработчик. Пользователь-то может быть и ламер, но у него наверняка есть более продвинутые и территориально доступные знакомые, которые во всех этих страшных логах разберутся.
Да да, как же, открыл бинарный файл и запорол его окончательно…
Внутри был XML.
У вас XML — повезло, а в обычную экселину загляните :)
Там да, темный лес, лучше не лезть :)
Для обычного пользователя всё равно эта форма выглядит как «Блаблаблабла Выход».
Данная форма нисколько не избавила пользователя от проблем. Вы предлагаете 2 варианта решения вопроса
1. Удалить ячейки и открыть файл, тогда действительно ценная информация может быть потеряна
2. Преобразовать в текстовый формат.
Раз есть вопрос должен быть и ответ. Две кнопки «Удалить — Ок», «Преобразовать — Ок» и еще 2 «Выход» — она же отмена, «Подробнее» — для специалиста.
Вообще конечно этот вопрос нужно решать на техническом уровне, то есть есть ошибка в формате даты, нужно привести неправильный формат к правильному и уведомить об этом пользователя.
Как показывает практика — 99.99% пользователей не читают сообщения никогда а просто жмут любую кнопку кроме «Отмена» или «Выход».

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

В приведённом же примере явно виден избыток лени у программистов. Зачем пользователю сообщать что дата не в том формате? Перебери все форматы даты (не так их уж и много), определи в каком она записана и отформатируй по своему. И самое главное — МОЛЧА!
Согласен, в идеальном варианте программа должна все сделать молча.

Но бывают случаи, когда она этого сделать не может. Например она не смогла понять в каком формате записана дата в файле. В этом случае она, по идее, должна не расписаться в собственном бессилии, а предложить пользователю варианты решения проблемы.
02/03/2002 это второе марта или третье февраля?
Зависит от того, в каком формате задано время: если в 24-х часовом то это 2-е марта, если в 12-ти часовом — третье февраля ;)
А если нет времени, только дата?
Тогда можно просмотреть статистику по документу, в каком формате представлены дата/время, какая локаль используется etc…
В любом случае большинство подобных ситуаций без особого труда разруливаются по контексту, и это уже проблема создателя документа, если у него в одном документе присутствуют даты в разных форматах и это нигде не оговорено.
НЛО прилетело и опубликовало эту надпись здесь
Часто нужно делать не дружественные сообщения об ошибке, а дружественные сообщения об успешной операции, потому что как сейчас помню своё состояние, когда я перепрошивал БИОС только что купленного компьютера чтобы поставить на нем макось… Идет процесс, идет, идет. Чем ближе он доходит до завершения, тем сильнее нас с другом колотит. Иииии — 100%. Тут вылазит красная табличка на полэкрана с надписью что-то типа «урааа, всё прошло удачно!!».
Надеюсь, обошлось без нашатырного спирта? (:



Я аналогичные сообщения с красным крестом и надписью «The operation completed successfully» регулярно наблюдаю в MS Exchange 2003 System Manager.
Считаю что сообщение об ошибке — вообще неверный подход.
Если программа может исправить ошибку сама, она должна это делать (возможно, комментируя свои действия, если пользователь захочет увидеть этот отчёт).
Если программа не может исправить ошибку сама, нужно давать пользователю варианты решения проблемы. Максимально удобным образом. Прямо по месту, из программы.

Пример. Не удалось проанализировать дату? Поставь дату по умолчанию, успешно открой файл, выдели исправленный кусок и покажи тултип «здесь было нечитаемо, я исправила».
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории