Инструкция против интерфейса
За последнее время я столкнулся с большим количеством промышленных интерфейсов. Суть в том, что в интерфейсе человек делает не что-то, что ему хочется, а что-то, что надо исходя из производственного процесса. Интерфейсы сложные, со специальными командами и терминами. К интерфейсу пишут инструкции, сотрудники должны их внимательно изучать.
Вот пример фразы из инструкции:
Если выдалось сообщение, что поступила деталь типа A в статусе N или Q, то деталь необходимо обработать на станке X.
Инструкция и интерфейс борются друг с другом. Десятками встречаются ситуации, когда в интерфейсе написано одно, а в инструкции объясняется, что это значит другое! Вот как в этом примере.
Все такие ситуации исправляются тремя действиями:
- Слово «Если» из инструкции переводится в слово if в коде. Код ведь знает, какое сообщение он выдал!
- Сообщение заменяется на «Передайте деталь на обработку на станке X».
- Фраза про типы и статусы удаляется из инструкции.
Каждый раз, когда в инструкции написано, как интерпретировать сообщение на экране, мы берём и переносим правильную интерпретацию сразу в сообщение. Каждый раз, когда в инструкции написано, что нужно что-то сделать, мы берём и переносим эту фразу из инструкции в сам интерфейс. Пока инструкция не стала пустой, интерфейс можно улучшать дальше даже без особых мозговых усилий.