# Процессы работы с документацией (AS IS / TO BE) ## Основные артефакты системной аналитики Системные аналитики работают с 3 артефактами: - бизнес-требованиями - системной аналитикой - технической документацией ### Бизнес требования Описывает бизнес и пользовательские требования, пользователькие use case, макеты экранов. Сейчас не всегда оформляется как отдельный документ, часто этот шаг пропускается и требования фиксируются сразу в документе системной аналитики. ### Системная аналитика Документ описыватет изменения в автоматизированной системе. Пишется системными аналитиками для разработчиков и тестировщиков. Так же этот документ проходит согласование с экспертами по архитектуре, безопасности, сопровождению. Может описывать как целиком процесс (в случае реализации с нуля), так и инкремент, который вносит небольшие изменения в существующие процессы. В данном документе содкржится вся информация по сути вносимых изменений, но отсутствует контекст о текущей реализации системы. Состоит из разделов: - Цели - короткое описание какую проблему и для кого решаем. - Процесс AS IS и TO BE - фокус на изменения с точки зрения бизнес функций, без технической детализации. - Ограничения - ограничения и допущения в реализации. - Архитектура - описывает схему уровня контейнеров, основной фокус на интеграции между контейнерами и интеграционные сценарии. - Функциональные требования - описывают изменения в системе. - Нефункциональные требования - требования к аудиту, мониторингу, фичетоглам, пользовтелькой аналитике. ### Техническая документация Техническая документация описывает реализацию системы. Эта информация используется командой разработки при проектировании и реализации новых фичей, понимании как работает система. Артефакт живет чуть впереди кода Представялет из себя иерархическую модель документов, сейчас реализованную в конфлюенсе. Есть несколько типов страниц, каждая из которы описывает определенный тип функциональности - UI страницы - API методы - БД - Логические блоки #### UI страницы Описывают экран на UI. **Декомпозиция** Как правило на страницу с описанием выносится целый макет/страница фронтального приложения, с одной основной интеграцией и опционально вспомогательными интеграциями. Например - форма создания сущности. Есть вспомогательгные методы для полученяи правочников, использующихся при заполнении полей на форме, и вызов оснвного метода создания сущности. Таким образом приложение декомпозируется на отдельные экраны, коотры свызываются между собой последовательно, но сами по себе являются независимыми **Состав описания** Все разделы обязательны. Страница с описанием содержит: - Краткое описание - Технический use case - Описание макета с декомпозицией на компоненты + их поведение - Функциональные требования - описание интеграций и логики, специфичной для этой формы UI - Нефункциональные требования - фичетоглы и события пользовательской аналитики #### API методы **Декомпозиция** На каждый метод API заводится отдельная страница. **Состав описания** Все разделы обязательны. Страница с описанием содержит: - Краткое описание - Технический use case - Функциональные требования - описание интеграций и логики, специфичной для этой формы UI - Нефункциональные требования - фичетоглы и события пользовательской аналитики - Контракт метода - описание запроса и ответа. Для ответа так же приводится описание как заполнять поля. #### БД **Декомпозиция** Сейсас это только странциа с описанием таблица. На каждую таблицу заводится отдельная страница. **Состав описания** Все разделы обязательны. Страница с описанием содержит: - Краткое описание - Таблица с офисанием физической модели данных #### Логические блоки **Декомпозиция** На отдельную страницу может быть вынесен общий переиспользуемый блок логики. Это позволяет не дублировать его на страницах документации. Как правило соответствует реализации общего компонента в коде. **Состав описания** Часть разделов в описании может отсутствовать. - Краткое описание - Технический use case - Функциональные требования - описание интеграций и логики, специфичной для этой формы UI - Нефункциональные требования - фичетоглы и события пользовательской аналитики #### Прочие особенности процесса ##### Описание технических use cases Сценарий описывает основные шаги процесса в разрезе участников, все технические детали, если их нельзя описать одним предложением, выносятся в разделы функциональных требований, нефункциональных требований, или даются ссылки на другие страницы (как правило это страницы с логическими блоками). В технических use cases приводятся ссылки на страницы с описнаием вызываемых методов API. Особенно это актуально для страниц фронта, т.к. он использует наши методы API, которые есть в документации. Для интеграций с другими АС как правило приводистя ссылка на описание конфлюенса. ## AS IS Сейчас все артефакты ведутся в конфлюенс. Одна страница содержит описанием одного аретфакта (бизнес требования, системная аналитика, страница документации), страницы организованы иерархически, используюстя ссылки для обозначения связей. Проблемы: - документация со временем теряет актуальность - отсутствие автоматизации - ручное ведение --- ## TO BE Целевое состояние: - аналитик продолжает писать артефакты бизнес-требований и системной аналитики - агент генерирует и обновляет документацию по странице системной аналитики - документация становится инженерным артефактом, который ведется в GIT ### Форматы - Markdown - OpenAPI - Mermaid / PlantUML ### Роль агента - использование документации как базы знаний - как для ответов на вопросы, так и для проектирования изменений в системе. - внесение изменений в документацию по артефактам системной аналитики - генерация из документации спецификаций OPENAPI и JSON-schema