О Windows из первых рук: Призма функциональности

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

Раймонд Чен

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

Прошло несколько лет, а я так и не понял, что представляло собой Windows CardSpace. При обсуждении Windows Live ID (как теперь его называют), кто-то ответил на мой вопрос, процитировав раздел «How Does Windows Live ID Participate in the Identity Metasystem and Work with InfoCard» веб-страницы с описанием Live ID:

«Microsoft совместно с другими компаниями отрасли создает метасистему идентификаций, которая объединит существующих и будущих провайдеров идентификаций в экосистему идентификаций и позволит конечным пользователям управлять использованием своих идентификаций. Сервис Windows Live ID будет участвовать в метасистеме идентификаций как один из многих провайдеров идентификаций, поддерживая прием утверждений (claims) от других провайдеров идентификаций и их преобразование в формат, с которым могут работать онлайновые сервисы Microsoft».

Вот как этот абзац прозвучал для меня:

«Microsoft совместно с другими компаниями отрасли создает термин, который объединит существующие и будущие термины в термин и позволит конечным пользователям управлять терминами. Сервис Windows Live ID будет участвовать в термине как один из многих терминов, поддерживая термин от других терминов и их преобразование в термин».

В этот момент я прекратил чтение и спросил, может ли кто-нибудь перевести этот абзац на нормальный язык. Никто не смог, но несколько человек сказали мне с глазу на глаз: «Я думал так же, но боялся спросить».

Все мои попытки составить представление о CardSpace, ни к чему не привели. Люди, которые писали документацию по CardSpace, полагали, что пользователь уже знаком с CardSpace. Они любезно объяснили, что такое управляющие карты CardSpace (managed cards), — оказалось, что это единица идентификации, основанной на утверждениях. Другими словами: «CardSpace управляет терминами, которые являются единицами термина термина». На этом я бросил читать документацию.

Вот еще один пример моих неудачных попыток познать загадочную природу CardSpace.

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

Презентация начиналась с веб-страницы, на которой было написано: «Щелкните кнопку внизу, чтобы отправить карту».

Отлично. Первый же снимок экрана, показанный в презентации, сбил меня с толку.

Я задался вопросом: «Что такое карта? Меня просят отправить данные моей кредитной карты?»

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

Из этого я так и не понял, что такое карта. Откуда берутся карты? Чем они полезны? Их приносит карточная фея CardSpace?

Однако я продолжил изучение презентации. Презентация выбрала карту, а затем показала мне кучу XML-данных на экране.

И каковы же были мои ощущения как пользователя? Я щелкнул кнопку, назначение которой было мне непонятно, и мне открылось диалоговое окно с какими-то волшебными штучками. Затем я выбрал одну из этих штучек и увидел какие-то XML-данные. Зачем все это?

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

По крайней мере, эта документация оказалась чуть-чуть полезнее. Из онлайновой справки я узнал, что «CardSpace — это система создания взаимосвязей между веб-сайтами и сервисами».

Это было не то, что я хотел бы услышать. Мне не были нужны взаимосвязи с веб-сайтом. Я просто хотел заходить на сайт CNN и читать ежедневные новости.

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

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

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

Раймонд Чен

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