О честности перед собой в проектировании интерфейсов

Когда программист самостоятельно занимается разработкой интерфейса (напомню, для пользователя нет ничего кроме интерфейса и опыта взаимодействия), в нем часто борются две мысли: «надо бы сделать тут поудобнее» и «для этого потребуется слишком много кода». Приведу пример.

Недавно я добавлял новую бесполезную функцию в MagicPlot — задание формул для столбцов без открывания диалогового окна, как в Excel (кстати, еще одна мысль, которая часто возникает — «как же я сразу не догадался?»). Теперь когда среди открытых в проекте окон активно окно с таблицей, панель инспектора вместо задания размера шрифта, цвета линий и прочего оформления содержит большое поле для ввода формулы с подсветкой синтаксиса:


Сейчас, когда я пишу, новая версия еще не вышла

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

Я опубликовал скриншот, и написал, что «примерно так оно будет выглядеть». Каков же был первый вопрос пользователей? — Вы угадали: «а будет ли автодополнение?»

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

По сути я как разработчик интерфейса задаю себе вопрос: «какой должна быть идеальная программа?». Ответ на этот вопрос часто нервирует меня как программиста, но я понимаю, что не написать дополнительный код было бы «нечестно». Чтобы стало легче, полезно переключиться на что-то другое, а затем вернуться и доделать старое.

В итоге все остаются довольны: людям приятно работать в программе, а у меня чиста перед собой совесть.

P.S. Автодополнение пока не реализовано, но я обещаю, что немного погодя оно появится. Уже прикидывал и читал, как присобачить туда всплывающий список, и что он должен показывать.


Electriq Saturday 17 March 2012 at 08:13 am | | English

One comment

Андрей Зиберт

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

Андрей Зиберт, (URL) - 07-12-’12 18:25
(optional field)
(optional field)
Remember personal info?
Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.