О Windows из первых рук Осторожно, всплывающие уведомления!

Это еще раз подтверждает древнюю максиму: «не надо спешить с (орг)выводами». Подчас терпеливость оправдывает себя.

Раймонд Чен

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

Представьте себе, что вы наслаждаетесь игрой в полноэкранном режиме или получаете удовольствие, развернув окно командной строки во весь экран (ну, представить себе радостного пользователя командной строки сложно, но для целей этой статьи поверим, что это именно так), и вдруг ни с того, ни с сего полноэкранный режим отключается и вас выбрасывает обратно к рабочему столу.

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

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

Поначалу представитель команды разработчиков Проводника не находил, что возразить. «Мы не знаем, в чем причина такого поведения. Этого попросту не должно быть. Мы не спорим — такое поведение недопустимо и разбираемся с проблемой».

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

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

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

Почему же столько внимания уделялось всплывающему уведомлению, если причина была не в нем? Как только «нехороший» компонент отключал полноэкранный режим, Проводник моментально это обнаруживал и решал, что теперь можно безопасно отобразить уведомление.

Результат такой последовательности событий очевиден: стороннему наблюдателю казалось, что это именно Проводник вырвал пользователя из полноэкранного режима, чтобы отобразить уведомление, когда на самом деле Проводник просто стал жертвой ошибки другого компонента.

Решили же эту проблему «когнитивного диссонанса» весьма просто: когда пользователь выходит из полноэкранного приложения и возвращается к рабочему столу, Проводник реагирует не сразу, а выдерживает паузу в несколько секунд и только после этого отображает уведомление. Это простое решение полностью изменило то, как пользователи интерпретировали ситуацию.

Изменение сработало — жалобы на всплывающие уведомления, вырывающие приложения из полноэкранного режима, исчезли. Это еще раз подтверждает древнюю максиму: «не надо спешить с (орг)выводами».

Raymond Chen

Реймонд Чен (Raymond Chen)* – его веб-сайт и одноименная книга «Old New Thing», вышедшая в издательстве Addison-Wesley в 2007 году, рассказывает об истории Windows, программировании с использованием интерфейса Win32, а также о вреде иллюзии, что с помощью черной изоленты можно что-то починить.*

Материалы по теме