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