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

Что такое поток

Американский психолог Михай Чиксентмихайи (Mihaly Csikszentmihalyi) большую часть своей научной деятельности посвятил исследованию так называемого состояния “потока” (англ. flow), которое он определяет как “состояние, в котором человек полностью включен в то, чем он занимается, что характеризуется деятельным сосредоточением, полным вовлечением и успехом в процессе деятельности” [1].

Состояние потока характеризуется следующими особенностями.

  1. Ясные цели (различимые ожидания и правила).
  2. Концентрация и фокус внимания — высокая степень концентрации на ограниченной сфере внимания (человек, занимающийся деятельностью, имеет возможность на ней концентрироваться и глубоко в неё погружаться).
  3. Потеря чувства самоосознания — слияние действия и осознанности.
  4. Искажённое восприятие времени.
  5. Прямая и незамедлительная обратная связь (успехи и неудачи в процессе деятельности проявляются сразу и очевидны, так что поведение может быть изменено по мере необходимости).
  6. Равновесие между уровнем способностей субъекта и сложностью задания (деятельность не оказывается для субъекта слишком лёгкой или сложной).
  7. Ощущение полного контроля над ситуацией или деятельностью.
  8. Деятельность сама по себе воспринимается как награда, так что она осуществляется без усилий.

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

Интерфейс как прерыватель потока

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

С точки зрения психологии интерфейс — это прерыватель потока. Человек вынужден искать что-то на экране, переводить фокус внимания с одного элемента на другой вместо того, чтобы делать что-то, добиваться своих целей. Хорошо, если поток прерывается на короткое время, тогда его ещё можно успеть восстановить, однако если поток был прерван надолго, человек “теряет мысль”, забывает, для чего он вообще сюда зашёл, что он хотел сделать. После этого на восстановление состояния вовлечённости может потребоваться куда больше времени или же оно будет окончательно потеряно “в текущем сеансе”.

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

Приведу такой пример в приложении к системам управления корпоративным контентом. ECM-система сейчас — это хранилище всей корпоративной информации на всех стадиях её существования, и в современных системах стало нормой наряду со структурированной информацией хранить также и неструктурированный контент: мысли, изображения, наброски и прочее — словом, то, что в дальнейшем может послужить основой для создания чётко структурированной информации. Допустим, у человека в голове витают какие-то мысли по развитию предприятия, они только что родились в беседе с коллегой, поток уже зародился, человеку не терпится сохранить свои мысли в системе. Однако первым делом, как только место за компьютером занято, перед теперь уже пользователем встаёт граница в виде интерфейса создания документа. В большинстве ECM-систем пользователю предлагается сначала классифицировать документ (указать, что это — договор, или счёт, или что-то ещё), затем заполнить реквизиты (обычно это наименование и какие-то обязательные поля); дальнейшие действия зависят от фантазии разработчика. Но обычно пользователю приходится преодолевать сразу несколько последовательных границ, которые отделяют его от продолжения своей рабочей деятельности. Поток прерывается на выполнение действий, не лишённых смысла для программы, но не имеющих абсолютно никакого значения для пользователя. Не факт, что к тому времени, когда все границы будут преодолены, мысль, которую хотели записать в документ, ещё будет храниться в первоначальном своём виде.

Я признаю, что поток невозможно совсем не прерывать (ведь пользователю придётся как минимум выбрать систему, с помощью которой он собирается сохранить свои мысли), однако сократить время прерывания вполне возможно. Какие меры для этого можно применить?

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

Во-вторых, отложить заполнение метаданных. Пусть пользователь сразу начнёт редактировать документ. Современные средства позволяют автоматически сформировать наименование документа, пусть максимальное количество полей заполняется автоматически. Их значения всегда можно затем подкорректировать.

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

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

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

Интерпространство как замена интерфейса

В предыдущем разделе шла речь о прерывании состояния потока вследствие преодоления границ, создаваемых интерфейсами. Ещё одна концепция, предложенная на этот раз Терри Виноградом (Terry Winograd), позволяет иначе понять ту среду, в которой работают современные люди.

Интерфейс, повторюсь, воспринимается как граница между человеком и машиной. В прошлом машины были очень дорогостоящими, занимали огромное пространство, час их работы стоил гораздо больше часа работы человека, поэтому мир по сути вертелся вокруг машин, люди должны были учиться общению с ними. Однако в современном обществе машина — это не просто глупый дорогостоящий робот, который очень быстро выполняет предписанные ему команды. С развитием технологий и появлением всемирных сетей компьютер превратился во вполне доступный аппарат, который всё больше является не “вычислителем” и “великим думателем”, а средством общения между людьми, средством организации совместной работы людей, порой находящихся за много километров друг от друга. Отсюда появляется концепция “интерпространства” (англ.interspace), расширяющая обычное понимание интерфейса. Если в интерфейсе есть только два действующих лица — человек и машина, то интерпространство населено великим множеством людей, которые обмениваются друг с другом посредством рабочих станций, серверов и других устройств [2]. Таким образом мы приходим к пониманию программного комплекса как средства общения людей для достижения общей цели и решения общих задач. То есть при проектировании интерфейса программного комплекса, какой бы цели он ни служил, мы должны чётко сознавать, что в первую очередь интерфейс — это что-то вроде телефона. Если бы для того, чтобы позвонить кому-то, нужно было пройти сквозь огонь, воду и медные трубы, вряд ли кто-то вообще стал бы пользоваться телефоном. То же верно и для интерфейсов программных продуктов.

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

Если пользователь видит на экране ошибку, он обращается в службу поддержки (по телефону, электронной почте или как-то ещё). Служба поддержки сообщает, что она не знает, какие пользователь совершал до этого действия, просит его описать всё, что он делал, или “прислать лог”. Однако дают ли представление о причине возникновения ошибки записи типа “3 марта 2011 г. 14:03. Запущен процесс ABC"? Пользователь в любом случае будет вынужден словами описывать те действия, которые привели к ошибке. Почему бы в таком случае не обеспечить систему средством быстрого копирования и отправки сообщения об ошибке сразу в службу поддержки? Пусть в это сообщение копируется не только текст ошибки, но и текущий вид экрана при возникновении ошибки, к сообщению прикладывается лог работы системы хотя бы за последний час работы и другие сведения, которые сразу дадут наиболее полную информацию специалисту службы поддержки, наладив, таким образом, эффективную работу внутри интерпространства.

Вместо заключения

Описанные выше концепции потока и интерпространства применимы при проектировании интерфейсов программных комплексов только, пожалуй, при наличии у проектировщика качества, которое Луис Розенфельд и Питер Морвиль в своей книге называют “контролируемой шизофренией”, т. е. способностью оценивать одно и то же явление с разных точек зрения [3]. Работа в данной области заключается как раз в том, чтобы постоянно ставить себя на место других людей, задавать себе вопросы типа “а хочу ли я, если я в состоянии потока, чтобы мне показывалось это окно?”, “действительно ли разработанный мною продукт создаст правильное общение внутри интерпространства?” и проч. Однако уже самая попытка задать себе эти вопросы станет большим шагом вперёд.

Литература

  1. Чиксентмихайи М. В поисках потока. Психология включённости в повседневность.”.1998.
  2. Winograd T. The Design of Interaction”. 1997.
  3. Розенфельд Л., Морвиль П. Информационная архитектура в Интернете. 2005.

Автор статьи — ИТ-аналитик компании DIRECTUM.