О 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-файлами.*