Перейти к основному содержимому

Систематизация знаний на проекте

Все зависит от статуса проекта, но вот примерный план:

  1. Собрать и зафиксировать текущее знание
  2. Структурировать
  3. Убрать противоречия
  4. Поддерживать актуальность

Ключевая задача на входе не «написать документацию», а собрать, структурировать и зафиксировать текущую информацию о системе:

  • Что система делает сейчас
  • Почему она делает это именно так
  • Где находятся основные источники информации
  • Какие есть ограничения, долги и договорённости

С чего начинать

Где хранится информация

Cоставить список всех мест.

Формальные источники:

  • Confluence / Notion
  • Репозиторий (README, ADR, комментарии)
  • ТЗ, договоры
  • API-спецификации (Swagger, Postman)
  • BPMN / схемы / презентации

Неформальные источники:

  • Знания разработчиков
  • Чаты
  • Комментарии в задачах
  • Личные файлы коллег

Определение границ системы

  • Что является нашей системой, а что — внешним контуром?
  • Кто основные пользователи?
  • Какие внешние системы интегрированы?
  • Где начинается и где заканчивается ответственность команды?

Это основа будущей контекстной диаграммы (C4).


Пример структуры проекта

Рекомендуется разделять бизнес и системную аналитику. Важно для масштабируемости.

Пример верхнеуровневой структуры:

/Проект
/00_Общее
/01_Бизнес-аналитика
/02_Системная_аналитика
/03_Архитектура
/04_Интеграции
/05_Данные
/06_API
/07_Нефункциональные_требования
/08_Решения_и_долги

Подробнее по разделам

00. Общее

Дать понимание проекта за короткий срок. Описание проекта (1–2 страницы):

  • Зачем система существует, для кого
  • Какую бизнес-проблему решает
  • Глоссарий
  • Участники
  • Актуальные источники: где документация, код, API

01. Бизнес-аналитика

Фиксирует что и зачем делает система, без привязки к реализации.

Пример структуры:

/01_Бизнес-аналитика
/01_Цели_и_метрики
/02_Бизнес-процессы
/03_Роли_и_пользователи
/04_Бизнес-правила
/05_Сценарии_использования
  • Бизнес-процессы: AS-IS (как есть сейчас), TO-BE (если планируется развитие), BPMN или текст + диаграммы
  • Use Cases / User Stories: без технических деталей

02. Системная аналитика (ядро)

Как именно система работает сейчас.

Пример структуры:

/02_Системная_аналитика
/01_Функциональные_требования
/02_Сценарии_и_алгоритмы
/03_Состояния_и_статусы
/04_Валидации_и_ошибки

Что важно:

  • Детальные сценарии
  • Условия, ветвления
  • Бизнес-правила в формализованном виде
  • Краевые кейсы

03. Архитектура

04. Интеграции

Для каждой интеграции:

  • Назначение
  • Инициатор
  • Формат данных
  • Синхрон / асинхрон
  • Ошибки и повторные попытки

05. Данные (крайне важен)

  • ER-диаграммы
  • Описание ключевых сущностей
  • Статусы и их жизненный цикл
  • Источники данных

06. API

  • Swagger / OpenAPI
  • Описание эндпоинтов в бизнес-терминах
  • Примеры сценариев

07. Нефункциональные требования

  • Производительность
  • Безопасность
  • SLA
  • Логирование

08. Решения и долги

  • Известные ограничения
  • Технический долг
  • Компромиссы

Как вести документацию дальше

  • Документируется текущее состояние, а не желаемое
  • Один раздел → один тип знаний
  • Любое изменение → обновление документа
  • Лучше «плохо, но есть», чем «идеально, но никогда»

Практические рекомендации:

  • Вводить шаблоны
  • Привязывать документы к задачам
  • Делать ревью документации с командой

Материалы

  1. Подборка шаблонов документации
  2. Документация в проекте
  3. Просто о сложном: систематизация знаний с помощью онтологий на примере борща и бетона
  4. Документация в порядке
  5. Как создать идеальную внутреннюю документацию
  6. Что такое правильная документация проекта
  7. Хорошая документация: критерии, методика разработки и личный опыт техписателя
  8. Правила разработки документации ML-проекта
  9. Что такое правильная документация проекта
  10. Назад в будущее: как поставить на поток документирование и анализ PHP проекта 10-летней давности
  11. Вам шашечки или ехать: как написать подробную документацию и не потратить на нее все ресурсы проекта
  12. Как (не) нужно строить базу знаний для проекта с нуля. Часть Первая, утопическая