Структура спецификации или README
Что это такое
Структура — это порядок, в котором документ отвечает на вопросы читателя: что это, стоит ли мне это учитывать, как этим пользоваться, что делать, когда оно ломается, и где живут подробности. README и спецификация отвечают на слегка разные вопросы, однако проваливаются одинаково. Ход всегда один и тот же: наверх выносят контекст, который был у автора, вместо ориентира, нужного читателю.
Почему это важно
Читатели приходят с задачей, а не с терпением: они просматривают документ в поисках раздела, который на неё отвечает, и уходят. Если первые три абзаца заняты предысторией, документ заменит вопрос в чате. Порядок разделов поэтому и есть проектное решение, и проверить его можно на живом человеке — дайте документ кому-нибудь и посмотрите, где он перестанет читать.
Ключевые идеи
README начинается с «что» и «зачем» в одну строку
Дальше идут запуск, потом использование, потом раздел о том, где просить помощи; читателю, который прикидывает, брать ли эту вещь, хватит первых двух предложений и ничего больше.
Order Exporter
Копирует заказы в CSV для ночного задания финансов. Работает по расписанию.
Локальный запуск
Настройка таблица: переменная, значение, по умолчанию
Частые сбои симптом -> причина -> исправление
Заметки о дизайне почему он имеет такую форму
Спецификация начинается с проблемы, затем идёт поведение
Сначала — что решают и для кого, затем требования в проверяемой форме, затем ограничения и то, что не входит в объём. Больше всего споров снимает именно раздел «что не входит».
Проблема и цель
Требования REQ-PAY-014 ... (по одному в строке, проверяемые)
Что не входит мультивалютность, частичные возвраты
Ограничения существующая книга учёта остаётся источником истины
Открытые вопросы кто отвечает за отчёт о сверке?
Ставьте ответ перед рассуждением
Кому нужно рассуждение, тот прочитает дальше, а кому нужен ответ, тот не должен до него добираться. Заголовок, который называет ответ, — «Используйте книгу учёта как источник истины», — стоит больше заголовка, который тему только называет.
Для справочного материала используйте таблицы и списки
Настройку, коды ошибок, эндпоинты и параметры сводят в таблицу, где на каждый элемент отведена своя строка. Проза служит рассуждениям, а структура — справке, и ради справки в документ заходят чаще всего.
Указывайте, когда документ написан и кто за него отвечает
Дата и имя — наверху. Без них читатель не может судить, актуален ли документ: он либо зря ему доверится, либо пройдёт мимо.
Практика
Перепишите первый экран одного README
Возьмите README и перепишите первые десять строк так, чтобы «что», «зачем» и инструкция запуска попали в них до всякой прокрутки.
Готово, когда: коллега, никогда не видевший проекта, по одному первому экрану скажет, что тот делает и как его запустить.
Добавьте раздел «что не входит»
Возьмите одну спецификацию и добавьте в неё явный список из пяти пунктов, которые в неё не входят.
Готово, когда: читатель назовёт две вещи, которых от этой работы ждать не следует.
Частые ошибки
- Предыстория до ответа — до полезного читатель не доходит и уходит; исправить: начинайте с «что» и «зачем».
- Заголовки-темы — «Соображения»; к какому выводу приходит раздел, читателю не понять; исправить: называйте ответ в заголовке.
- Справочный материал в прозе — настройку, зарытую в абзацах, не просмотреть глазами; исправить: таблицы и списки для всего, что ищут.
- Нет раздела «что не входит» — ожидания растут, пока работа не перестанет их покрывать; исправить: перечислите, что сюда намеренно не входит.
- Нет даты или владельца — судить об актуальности читателю не по чему; исправить: поставьте имя и дату наверху.
Что читать дальше
- Техническое письмо (04-product-process/08-technical-writing) — трек, который открывает эта структура.
- Редактирование для читателя (04-product-process/08-technical-writing/02-editing-for-the-reader) — сокращение черновика.
- Инженерия требований (04-product-process/05-requirements-engineering) — как превратить утверждение в проверяемое: без этого раздела требований спецификации не бывает.
- Jira и Confluence (04-product-process/13-jira-confluence) — где пишется и хранится большинство таких документов.