Почти все лицензионные соглашения традиционно запрещают reverse engineering, несмотря на то, что на нём построено почти всё использование современных компьютеров, или даже всей техники вообще.
Как пользователь начинает работать с программой? Читает мануал? Нет. Он её запускает и смотрит. Дальше происходит примерно такой мысленный монолог:
... Так, тут обычное меню File с пунктами Open и New. Нажмем New.
... Ага, текстовый курсор, можно печатать. И тулбар с Bold/Italic, значит текст с атрибутами.
... Печатаю, строчка сама переносится, значит редактор не строчный, а по параграфам.
... Ага, выделеный текст можно сделать Bold, а ещё раз нажать и снова обычный.
... Снова нажал New, он спросил сохранять или нет. Значит New не открывает нового окна или закладки, а просто заменяет в том же окне.
И т.д.
Это обычный reverse engineering. Метод "научного тыка". Пользователь играется с приложением и строит у себя в сознании модель того, как эта программа работает. Причем это делает не какой нибудь крутой спец, а каждый рядовой пользователь! Часто это делается интуитивно и неосознанно. Человек даже не помнит как оно работает, но при изменении ощущает, что программа "стала работать как-то не так".
Всё это очевидно? Казалось бы очевидно, но не всем. Почему-то фразу "пользовательская логическая модель" часто воспринимается в штыки. Такая модель должна быть продумана заранее, включая терминологию, в которой и надо делать интерфейс и документацию. Эта модель должна быть проста, логична, полна и, по возможности, состоять из ортогонального набора функций. И она обязательно должна быть discoverable. Иначе будет не программа, а набор хитро запрятаных "пасхальных яиц". Никто ваш длинный readme и FAQ читать не будет, даже если его набрать с capslock.
Для того, чтобы понять нечто в первый раз нужна аналогия. Где-то было так сделано, можно предположить, что и здесь это может работать. Либо поможет "крутой спец", который поделится кусочком своей модели. Либо, конечно, книжка. Кстати, Вы читали инструкцию к вашему телевизору? А к часам на руке?
P.S. Название поймёт тот, кто смотрел Ratatouille.
No comments:
Post a Comment