вторник, 2 октября 2018 г.

В трёх экземплярах, будьте добры

Это перевод Windows Confidential: In Triplicate, Please? Автор: Реймонд Чен.

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

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

Смысл поведения, не ограниченного контрактом, как раз в том, что оно не документировано формально. Официальная же документация создаёт впечатление, что описываемое поведение является контрактным. «В каком смысле вы изменили поведение при условии X? Вот же, у меня есть документ от вас, который гласит, что в этих условиях поведение должно быть Y. В Windows 7, однако, вы изменили поведение на Z. Windows больше не ведет себя как документировано!"

Клиентская техподдержка спросила, можем ли мы создать статью базы знаний (Knowledge Base) на основе моей записи в блоге. «Клиент настаивает на официальном документе, чтобы он мог включить его в состав своей документации по продуктам», - пояснили они.

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

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

Веб-поиск по четырём ключевым словам «файл», «время», «обновление» и «MSDN» выдал документацию в MSDN, в которой сказано: «Временные метки обновляются в разное время и по разным причинам. Единственная гарантия о временной отметке файла заключается в том, что время файла записывается верно, когда дескриптор, делающий изменение, закрывается».

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

Мой коллега Аарон Маргозис часто получает запросы от клиентов на предоставление документации, в которой явно говорится, что плохая идея - это плохая идея. Например, однажды техподдержка написала: «Мой клиент использует .reg-файлы для развертывания параметров групповой политики вместо использования объектов групповой политики (GPO). Я пытаюсь заставить их переключаться, но они ищут официальный документ, объясняющий, почему их нынешняя модель - плохая идея».

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

Определение результата применения нескольких .reg файлов может быть затруднено, если их настройки совпадают или конфликтуют. Вы не сможете использовать такой инструмент, как «Результирующий набор политик», чтобы изучить все применимые настройки и определить конечный результат. Вы не сможете найти объект групповой политики, который влияет на конкретную настройку.

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

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

Например, действительно ли вам нужен официальный документ, в котором говорится: «Если вам будет предложено перезагрузить компьютер после установки обновления безопасности Microsoft, убедитесь, что вы немедленно выполнили операцию перезапуска?» Это кажется очевидным, но один клиент настаивал на том, чтобы мы создали такой официальный документ, прежде чем их можно было бы отговорить от политики компании по установке обновлений безопасности и пропуска перезапуска.

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

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

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

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

Примечание. Отправлять комментарии могут только участники этого блога.