Дата публикации: .
В последнее время для разработки пользовательской документации набирает популярность подход Docs-as-Code ("Documentation as Code" — "документация как код"). Он позиционируется, как удобный современный способ работы, особенно эффективный, если ваша компания связана с разработкой ПО.
Вот некоторые цифры для ознакомления:
- Рост популярности. Согласно опросу JetBrains, популярность подхода docs-as-code растёт, и за год (2021–2022) количество использующих его людей увеличилось на 6 процентных пунктов.
- Распространённость. По данным опроса технических писателей, проведённого сообществом Tech Writer’s Tribe, 64% респондентов в той или иной степени следуют подходу docs-as-code. Из них 32% строго его придерживаются, а 20% планируют внедрить в будущем.
- Язык разметки. Markdown является стандартом, и 70% технических писателей используют его для создания документации.
Примеры реальных кейсов использования подхода Документация как Код:
- Ускорение публикации в AWS. Одна из команд Amazon Web Services (AWS) перешла с документирования в Word на docs-as-code. В результате время от написания до публикации документации сократилось на 25%, а после доработок — на 50%.
- Экономия времени в Red Hat. Миграция Red Hat на docs-as-code заняла всего 6 месяцев, при этом типичное время адаптации разработчиков составило 2–4 недели.
- Ускорение ввода в должность. Внедрение docs-as-code позволяет сократить время ввода в должность новых разработчиков до 35%.
- Снижение нагрузки на поддержку. Хорошая документация, которая всегда актуальна, может сократить количество обращений в техподдержку на 34%.
Какие есть минусы у этой методологии? Так ли необходим Docs as Code при написании справочных систем или это скорее инструмент для технических спецификаций и API-документации? В этой статье мы рассмотрим, что это за подход, в каких ситуациях он предпочтителен, а вы сможете решить для себя: перейти на этот способ или продолжить разработку справочной системы привычным способом. Затронем следующие моменты:
- Что такое Docs as Code в контексте написания справочных систем?
- Преимущества и недостатки.
- Кому подходит Docs as Code?
- Какие есть альтернативы этой методике?
Что такое Docs as Code?
Простыми словами, Docs as Code — это отказ от привычных офисных редакторов (Word, Google Docs) и визуальных инструментов типа Confluence в пользу единой системы, где документация становится такой же частью проекта, как и код. Вместо тяжелых DOCX-файлов или закрытых систем, документация пишется в простых текстовых файлах с помощью языков разметки, таких как Markdown (самый популярный), AsciiDoc или reStructuredText.
Эти файлы хранятся в системе контроля версий (обычно Git) в одном репозитории с кодом. А когда наступает время публикации, в дело вступают CI/CD (Continuous Integration/Continuous Delivery) — инструменты, которые автоматически собирают из этих файлов красивый HTML-сайт, PDF или другие форматы. Может показаться, что процесс очень запутанный, однако на деле все не так сложно.
Сравнение подходов к созданию пользовательской документации
| Критерий | Десктопное приложение | SaaS-платформа | Подход Docs as Code |
|---|---|---|---|
| Типичные представители | MadCap Flare, Adobe RoboHelp, HelpNDoc, Dr.Explain | ClickHelp, Document360, HelpJuice, GitBook | MkDocs, Docusaurus, Sphinx, Antora |
| Язык разметки | Визуальный редактор (WYSIWYG), реже — XML/DITA | Визуальный редактор (WYSIWYG) | Текстовый (Markdown, reStructuredText, AsciiDoc) |
| Хранение и контроль версий | Собственные бинарные или XML-проекты, интеграция с Git ограничена | В облаке производителя, история изменений есть, но контроль версий ограничен | Файлы в Git. Полная история, ветки, пул-реквесты |
| Совместная работа | Слабая (через общие сетевые папки) | Сильная. Комментарии, уведомления, совместное редактирование в реальном времени | Сильная (через PR). Прозрачность, код-ревью, автоматические проверки |
| Интеграция с CI/CD | Отсутствует | Отсутствует | Полная. Автоматическая сборка, проверка ссылок, деплой |
| Основные форматы вывода | HTML, PDF, DOCX, CHM, ePub | HTML, PDF, DOCX | HTML |
| Ключевые преимущества | Мощные инструменты для сложной печатной продукции, CHM | Простота начала, доступность из браузера, встроенная аналитика | Прозрачность, автоматизация, единый workflow с разработкой |
| Ключевые недостатки | Высокая стоимость, сложность, привязанность к рабочему столу | Меньше контроля над данными, сложность с CHM и сложными PDF | Требует технических навыков (Git, CI/CD), не подходит для CHM |
Основные принципы Docs as Code
Принципы Docs as Code зиждятся на четырех китах:
- Текстовые форматы. Только Markdown (или аналоги) — это гарантирует легкость, прозрачность и совместимость.
- Контроль версий (Git). Каждое изменение фиксируется. Вы всегда можете посмотреть историю правок, сравнить версии, откатить неудачное изменение.
- Ревью через Pull Request (PR). Изменения в документации проходят тот же процесс проверки, что и код. Разработчик пишет новую функцию и через Pull Request предлагает изменения в документации. Коллеги оставляют комментарии, после чего изменения вливаются в основную ветку.
- Автоматическая сборка и публикация. Как только изменения приняты, CI/CD система автоматически собирает документацию заново и публикует её на сайте. Без ручного нажатия кнопок "Экспорт".
Давайте обратимся к практическому примеру.
Представьте, что некая команда разрабатывает мобильное приложение "FitTracker", и один очень эффективный менеджер для создания справочной документации решает внедрить Docs as Code. Вот как будет выглядеть рабочий день с учетом нововведения:
- Разработчик Иван добавляет новый функционал — отслеживание пульса в реальном времени.
- Создается документация и проверяется, как код:
- Иван создает новую ветку в Git для своей задачи.
- В папке /docs репозитория он находит файл pulse-monitoring.md и обновляет его, описывая новую функциональность простым языком в формате Markdown.
- Затем он создает Pull Request (PR), чтобы объединить изменения в основной ветке. В этом PR участвуют и разработчик, и технический писатель.
- Технический писатель Мария проверяет PR. Она видит, какие именно строки изменил Иван, и оставляет ему комментарий: "Отличное описание, Иван! Добавь, пожалуйста, ещё скриншот, как это выглядит в интерфейсе".
- Иван добавляет скриншот, коммитит его в ту же ветку, и Мария принимает PR. Изменения попадают в основную ветку main.
- Автоматическая публикация. Как только PR принят, настроенный CI/CD пайплайн (например, GitHub Actions) запускается автоматически. Он берет все Markdown-файлы из репозитория, собирает из них HTML-сайт и выгружает его на сервер, где находится онлайн-справка приложения.
- Пользователи видят результат. К примеру, пользователь Ольга, зайдя в приложение, замечает новую функциональность. Она открывает раздел "Помощь" (который является тем самым HTML-сайтом) и видит актуальное описание со скриншотами.
Как видите, подход Docs as Code не только упрощает жизнь техническим писателям, но и делает документацию живой и неразрывно связанной с продуктом.
Популярные инструменты в этой экосистеме: MkDocs, Docusaurus, Sphinx, Antora, а также хостинги Read the Docs, GitHub Pages, Netlify.
Вот пример использования подхода Документация как код: статья сотрудников Squarespace Making Documentation Simpler and Practical: Our Docs-as-Code Journey. Правда, в ней идет речь не о пользовательской документации. Вместо использования внешних вики-систем (вроде Confluence), они перенесли документацию непосредственно в репозитории с кодом. Этот переход решил несколько фундаментальных проблем:
- Синхронизация с кодом. Изменения в функционале и инструкции к ним теперь находятся в одном Pull Request. Нельзя обновить код, "забыв" обновить документацию.
- Единый воркфлоу. Разработчикам не нужно переключаться между контекстами и инструментами. IDE — их основная среда и для кода, и для текста.
- Качество через проверку. Документация теперь проходит рецензирование коллегами (Peer Review), что резко снижает количество фактических ошибок.
- Версионность. Всегда можно посмотреть, как выглядела документация для конкретной версии сервиса полгода назад.
- Автоматизация. Использование линтеров для проверки битых ссылок, форматирования и даже проверки инклюзивности языка.
Squarespace отмечает следующие узкие места внедрения:
- Порог входа для не-инженеров. Менеджерам продуктов, дизайнерам или техническим писателям без навыков работы с Git и Markdown сложнее вносить правки.
- Сложность поиска (Discovery). Когда документация разбросана по сотням репозиториев, сложно создать единый "портал знаний" без дополнительных инструментов агрегации.
- Поддержка инфраструктуры. Теперь нужно поддерживать не только продукт, но и пайплайны для сборки и деплоя сайта с документацией.
Плюсы подхода Docs as Code для разработки пользовательской документации
- Полная версионность и прозрачность. Каждое изменение фиксируется, можно вернуться к любой предыдущей версии документации. Это особенно ценно, если вы поставляете документацию вместе с продуктом и должны точно соответствовать версии ПО.
- Интеграция с разработкой. Разработчики могут прямо в пулл-реквестах править документацию, проходить code review. Это снижает барьер для участия разработчиков.
- Автоматическая публикация. После слияния изменений документация обновляется на сайте без ручных действий. Идеально для agile-циклов.
- Гибкость дизайна. Вы можете кастомизировать внешний вид онлайн-справки до мельчайших деталей, используя современные фронтенд-технологии.
- Бесплатные инструменты. Большинство инструментов с открытым кодом, а хостинг статических сайтов часто бесплатен для проектов с открытым исходным кодом или небольших команд.
Минусы подхода Docs as Code для разработки пользовательской документации
- Высокий порог входа для технических писателей. Освоение Git, командной строки, Markdown, основ CI/CD требует времени и отвлекает от содержания. Многие опытные авторы, привыкшие к визуальным редакторам, испытывают трудности.
- Сложности с мультимедиа и скриншотами. Руководство пользователя часто содержит множество скриншотов с аннотациями. В Docs as Code нет встроенных инструментов для автоматической нумерации элементов интерфейса, захвата окон и обновления изображений. Всё это приходится делать вручную или использовать сторонние утилиты, что резко увеличивает время.
- Ограниченная поддержка форматов. Вы получите отличный веб-сайт, но формат CHM (стандарт для встроенной справки Windows) практически недостижим, а качественный PDF требует сложных настроек. Для многих программных продуктов, особенно Windows-приложений, это критично.
- Сложности с нетекстовым контентом. Большие таблицы, сложное форматирование, встроенные видео — всё это требует дополнительных усилий и плагинов.
- Требования к инфраструктуре. Нужно поддерживать CI/CD-пайплайны, обновлять инструменты, следить за сборкой. В небольших командах это ложится на разработчиков или техписателей, отвлекая их от основной работы.
Кому Docs as Code подходит при написании справочной документации?
Несмотря на перечисленные недостатки, есть сценарии, где Docs as Code работает отлично:
- Команды, где документацию пишут преимущественно разработчики. Если у вас нет выделенных технических писателей, и разработчики уже владеют Git и Markdown, Docs as Code позволяет им вести документацию без переключения контекста.
- API-документация и технические спецификации. Для описания API, SDK, библиотек подход Docs as Code стал стандартом де-факто.
- Open Source проекты. Сообщество привыкло к пулл-реквестам, и документация как код позволяет принимать вклад от внешних участников.
- Продукты, где справочная информация представлена только в виде веб-сайта. Если вам не нужны CHM, PDF или встроенная справка, Docs as Code даёт современный сайт с хорошим поиском.
Кому Docs as Code не подходит при написании пользовательской документации?
Вот типичные ситуации, когда Docs as Code создаст больше проблем, чем принесет пользу:
- В команде есть технические писатели без опыта разработки. Они тратят время на изучение Git, CI/CD вместо того, чтобы сосредоточиться на качестве контента. Это снижает производительность и повышает фрустрацию.
- Документация содержит сотни скриншотов с аннотациями. Ручная работа со скриншотами в Docs as Code убивает время. Каждое обновление интерфейса приводит к необходимости переделывать множество изображений.
- Продукт поставляется с встроенной справкой CHM или требует контекстной помощи (F1). Docs as Code не умеет генерировать качественные CHM-файлы и поддерживать контекстные ID. Для Windows-приложений это практически приговор.
- Документация должна выходить в нескольких форматах (CHM, PDF, HTML, DOCX). Из одного источника на Docs as Code получить все эти форматы с приемлемым качеством очень сложно. Приходится поддерживать несколько пайплайнов.
- У вас небольшой бюджет на инфраструктуру и обучение. Внедрение Docs as Code требует времени на настройку CI/CD, обучение, а иногда и найма DevOps-инженера.
Какие есть альтернативы методике Docs as Code?
Если вы узнали в этих пунктах себя, не отчаивайтесь. Методология может показаться избыточной, к счастью, есть отличные альтернативы, специально разработанные для создания руководств пользователя. Они сочетают удобство визуального редактирования, автоматизацию рутины и поддержку популярных форматов.
Например, такие инструменты, как HelpNDoc, MadCap Flare, ClickHelp. Еще одна альтернатива — приложение Dr.Explain, которое станет подходящим решением, если MS Word вас уже не устраивает, а Docs as Code слишком громоздкий и сложный.
Почему Dr.Explain может стать оптимальным выбором для написания справки для пользователя?
Это десктопное приложение для Windows, созданное специально для разработки справочных систем в разных форматах: HTML (специальных знаний для этого не требуется), PDF, DOCX, CHM-файлов. Оно закрывает сложные моменты подхода Docs as Code, которые снижают эффективность работы неподготовленных авторов.
Вот его особенности:
- Нулевой порог входа. Интерфейс Dr.Explain интуитивно понятен любому, кто работал с Word или Google Docs. Вы начинаете создавать документацию сразу после установки — без Git, Markdown и CI/CD.
- Автоматическая аннотация скриншотов. Встроенный инструмент захвата экрана распознаёт элементы интерфейса, нумерует их и создаёт подписи. При обновлении интерфейса вы просто заменяете скриншот — все аннотации остаются на месте. Это экономит часы работы над каждым релизом.
- Популярные форматы из одного источника. Из одного проекта Dr.Explain экспортирует CHM (встроенная справка), адаптивную онлайн-справку (HTML), PDF, DOCX. Всё делается в несколько кликов.
- Контекстная помощь для приложений. Dr.Explain поддерживает Help Context IDs, позволяя привязать вызов справки по F1 к конкретным окнам и диалогам вашего Windows-приложения. Это то, чего Docs as Code не умеет в принципе.
- Совместная работа. Несколько авторов могут работать над проектом через общую папку или сервер совместной работы с блокировкой разделов и комментариями. Никаких конфликтов слияния и настройки CI.
Разумеется, Dr.Explain не пытается заменить Docs as Code там, где последний действительно силён. Если ваша справочная система — это, по сути, техническая документация для разработчиков (API, SDK), если она не содержит сложных скриншотов и не требует CHM, и если в команде все владеют Git — Docs as Code остаётся хорошим выбором. Однако если ваша цель — быстро создавать и легко поддерживать качественные руководства пользователя с большим количеством иллюстраций, публиковать их в CHM, PDF и онлайн, не тратя время на инфраструктуру и обучение инструментам — Dr.Explain предоставит вам всё это "из коробки".
Что выбрать?
Ответы на несколько вопросов, которые могут облегчить принятие решения:
- Кто будет писать документацию — разработчики, уже знакомые с Git и Markdown, или технические писатели, привыкшие к визуальным редакторам?
- Сколько времени вы готовы тратить на настройку CI/CD и обновление плагинов?
- Нужна ли вам встроенная справка CHM или контекстная помощь по F1?
- Содержит ли документация много скриншотов, которые нужно регулярно обновлять при изменении интерфейса?
- Важен ли экспорт в качественный PDF с колонтитулами и титульным листом?
Если ответы склоняются к простоте, автоматизации скриншотов, CHM и готовым форматам — попробуйте одно из популярных приложений. Если же вы уверены, что команда справится с Git, Markdown и CI/CD, и вам нужна максимальная гибкость для сайта документации — Docs as Code будет отличным решением.