BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс для системных аналитиков » Модуль 8.3. Управление изменениями и версиями требований

Модуль 8.3. Управление изменениями и версиями требований

Темы: change control board, версионирование, диффы, миграции. Артефакт: журнал изменений. Практика: оформить change request.

 

Системный аналитик (SA) отвечает за то, чтобы изменения были управляемыми, обратимыми и прослеживаемыми. В этом модуле вы получите рабочую схему: от инициирования запроса на изменение (CR) до релиза с миграциями и обратной совместимостью, с чёткими артефактами — журналом изменений, диффами спецификаций и планом миграций.

 

Базовые понятия и роли (как сотруднику — к исполнению)

Что считаем «изменением»

  • Требования: SRS/BRD/NFR, модели (ER/BPMN/UML), словарь домена.
  • Контракты: OpenAPI/AsyncAPI/Avro/JSON Schema, правила (DMN), SQL-схемы.
  • Процессы: фичефлаги/конфиги, политики безопасности/данных.
  • Документация: AC/BDD, RTM, «живые» .feature.

 

CCB — Change Control Board

Состав: PO/PM, SA, QA Lead, Tech Lead/Architect, SRE/DevOps, при необходимости — Data/Legal/Security.
Задачи: приоритизация и принятие решений по CR: approve / approve with conditions / defer / reject.
Календарь: еженедельно (оперативные CR) + ad-hoc для срочных.

 

RACI (фрагмент)

  • Подготовка CR и анализ влияния: R (SA), C (Tech Lead, QA), I (PO)
  • Решение CCB: A (PO/PM), R (все)
  • Миграция/релиз: R (Dev/SRE), C (SA), I (бизнес, саппорт)

 

Версионирование: требования и контракты

Принципы

  • Docs-as-Code: храним SRS/диаграммы/контракты в Git (Markdown, PlantUML/Mermaid, BPMN XML, OpenAPI YAML).
  • Semantic Versioning (semver): MAJOR.MINOR.PATCH для API/событий/схем.
  • Версионирование требований: по релизам — релизные теги (reqs-vX.Y) и сквозная нумерация требований (REQ-1234).
  • Окна поддержки: таблица LTS/поддерживаемых версий и план деактивации.

 

Решаем, какой bump нужен (решётка решения)

Изменение

Клиенты ломаются?

Версия

Добавили необязательное поле в ответ/событие

нет

MINOR

Добавили обязательное поле во вход

да

MAJOR

Изменили описание/тексты без контракта

нет

PATCH

Исправили ошибку схемы без изменения структуры

нет

PATCH

Переименовали поле/тип

да

MAJOR

Добавили новый endpoint/топик

нет

MINOR

 

Ветвление/PR-поток

  • main (релизная ветка), release/x.y, feature/CR-<id>-short-name.
  • Любое изменение требований идёт через PR с: диффами, ссылками на RTM, обновлёнными AC/BDD, планом миграций и release notes.

 

Диффы: как показывать различия правильно

Текст и модели

  • Markdown/Doc: обычный Git-дифф.
  • UML/BPMN/ER: хранить как код (PlantUML/Mermaid, BPMN XML) → диффится строково.
  • DMN: табличный CSV/Excel + экспорт в XML (в репозитории — обе версии).

 

Контракты

  • OpenAPI/AsyncAPI: дифф-отчёт «breaking/non-breaking» (артефакт PR).
    Пример (фрагмент YAML до/после — добавили необязательное поле promoCode):

 

# before
components:
  schemas:
    PaymentRequest:
      type: object
      required: [orderId, amount, currency]
      properties:
        orderId: { type: string, format: uuid }
        amount:  { type: number, format: decimal }
        currency:{ type: string, example: RUB }
# after
components:
  schemas:
    PaymentRequest:
      type: object
      required: [orderId, amount, currency]   # не меняли
      properties:
        orderId:   { type: string, format: uuid }
        amount:    { type: number, format: decimal }
        currency:  { type: string, example: RUB }
        promoCode: { type: string, minLength: 3 }   # добавлено (non-breaking)

 

  • Avro/JSON Schema: отмечаем эволюцию (добавили поле с default: совместимо для потребителей).

 

База данных (SQL)

  • Храним миграции (expand/contract) и ER-модель. Дифф — в PR.
    Пример expand-шаг:

 

-- V2025_08_20_01__add_promo_code.sql
ALTER TABLE payment ADD COLUMN promo_code VARCHAR(32);
-- backfill по правилам, индексы при необходимости
contract-шаг (после переключения и стабилизации):
-- V2025_09_10_02__drop_legacy_column.sql
ALTER TABLE payment DROP COLUMN old_discount_code;

 

Процесс управления изменениями (workflow)

 Жизненный цикл CR

Draft → Submitted → Triage (анализ влияния) → CCB Decision → In Progress → Ready for Release → Released → Closed

 

Что содержит CR (шаблон)

CR ID: CR-2025-081
Название: Добавить promoCode в Payment API (необязательный)
Инициатор/заказчик: Маркетинг (кампания X)
Описание: Клиент может указать промокод при оплате; валидируем по каталогу.
Основание: рост конверсии, измерение влияния
Область: OpenAPI /payments, фронт (поле), БД (payment.promo_code), события payment.authorized.v1
Тип изменения: non-breaking (MINOR)
Анализ влияния:
  Требования/AC: SRS §3.2 обновить; AC-1..AC-3 → AC-1', AC-4 (валидация)
  Контракты: OpenAPI v1.3→v1.4 (MINOR); событие без изменений
  Данные: колонка promo_code + backfill null
  Безопасность/Приватность: нет PII, маска не требуется
  Наблюдаемость: добавить label promo_code? (нет, только бизнес-метрики агрегированные)
  Совместимость: клиенты старой версии не ломаются
Оценка/план:
  Версия: API 1.3 → 1.4
  Миграции: expand (добавить колонку) → релиз → опциональный backfill → contract позже (если будет)
  Фичефлаг: ui.promo.enabled
  Риск: низкий; откат: просто скрыть флаг, не катить схему назад
Коммуникация:
  Release notes: да; дата GA: 2025-09-05; Deprecation: не требуется
Приложения: дифф OpenAPI, SQL миграция, макеты формы, обновлённые AC/BDD, RTM

 

Triage и CCB: критерии принятия

  • Изменение вписано в стратегию/OKR; есть измеримая ценность.
  • Влияние на совместимость и комплаенс — прозрачно.
  • Есть план миграций/отката, оценка рисков, владельцы.
  • Обновлены AC/BDD/RTM, артефакты наблюдаемости и документации.

 

Анализ влияния (impact analysis)

Матрица влияния

Объект

Что меняется

Риск

Меры

Требования/AC

SRS §, AC-новые

Низк/ср/выс

Ревью, трассировка RTM

API/Events

схема/версия/сигнатуры

Совместимость

semver, deprecated-план, контракт-тесты

БД

таблицы/индексы/данные

Производительность/данные

expand/contract, backfill, индексы

UI/UX

поля/тексты/валидация

Конверсия

A/B, feature flag

Безопасность

доступы/данные

Комплаенс

DPIA/политики

DWH/BI

витрины/семантика

Ошибки отчётов

SLA данных, тесты витрин

Наблюдаемость

метрики/логи/трейсы

Диагностика

RED/USE обновить, алерты

 

RTM (трассировка)

Обновляем связь REQ → AC → UC/диагр. → API/события → тесты (.feature) → метрики. Любой CR обязан обновить RTM-строки.

 

Миграции: стратегии и примеры

БД: expand/contract (blue-green)

  1. Expand: добавить новые объекты (колонки/индексы), обеспечить совместимость кода со старым и новым.
  2. Switch: код начинает использовать новое поле/структуру.
  3. Contract: удалить legacy после стабилизации/мониторинга.

 

API: двойная публикация и фичефлаги

  • Добавляйте новое поведение под фичефлаг (kill-switch).
  • Параллельные версии /v1/... и /v2/... (для MAJOR).
  • Deprecation policy (пример): анонс ≥30 дней → dual-run ≥60 дней → отключение → архив.

 

События/шина (совместная эволюция)

  • Additive-only + default → назад совместимо.
  • Схема v1 и v2 с совместимым ключом партиционирования; консьюмеры постепенно переходят.
  • Schema Registry: запрещаем breaking без MAJOR.

 

Backfill и «write-through»

  • Если новое поле вычисляется из старых, запускаем backfill (batch) + write-through (онлайн запись).
  • В отчётности — помечаем окна неполноты.

 

Откат (rollback)

  • Идеально — roll-forward (фикс в новой версии).
  • Если нельзя — откат фичефлага/конфига; контракт не откатываем без MAJOR (иначе клиенты ломаются).

 

Документация и «живые» артефакты

Журнал изменений (Change Log) — артефакт

Храним в репозитории (CHANGELOG.md), формат по релизам:

# Changelog — Payments API
## [1.4.0] — 2025-09-05
### Added
- `promoCode` (optional) в `PaymentRequest`. Non-breaking. CR-2025-081.
### Changed
- Тексты ошибок валидации (RU/EN) — без изменения кода ошибок.
### Deprecated
- Нет.
### Migration
- SQL: V2025_08_20_01__add_promo_code.sql (expand). Backfill не требуется.
### Docs/Contracts
- OpenAPI v1.4.0, SRS v3.7, .feature обновлены.
## [1.3.2] — 2025-08-12
### Fixed
- Исправлен пример JSON в документации (PATCH).

 

Release notes (для внешних клиентов)

Коротко «что изменилось», «что делать клиентам», «сроки устаревания», ссылки на контракты/гайды.

 

Пример: от CR до релиза (сквозной кейс)

Запрос: маркетинг просит промокоды в оплате.

  1. CR оформлен (см. шаблон) → Triage: влияние на API/БД/UI, non-breaking → MINOR.
  2. CCB: approve; условия — флаг ui.promo.enabled, A/B, метрика конверсии.
  3. Реализация:
    • SRS/AC/BDD обновлены; OpenAPI 1.4; SQL expand; UI поле.
    • Контракт-тесты подтверждают, что старые клиенты работают.
  4. Релиз: включили флаг 10% трафика; наблюдаем error-rate/latency/конверсию; через 1 неделю — 100%.
  5. Документация: CHANGELOG, release notes, RTM.
  6. Закрытие CR: критерии выполнены, журнал обновлён.

 

Риски и анти-паттерны (и как их гасить)

Риск

Симптом

Что делать

«Тихие» изменения без версий

Клиенты ломаются

Semver, CCB, запрет на деплой контрактов без тега

Переименование поля «в лоб»

Миграция больная

Паттерн expand/contract, alias-поле, двойная публикация

Нет журнала изменений

Саппорт тонет

CHANGELOG.md, release notes по шаблону

Миграция данных «биг-бэнг»

Долгие простои

Инкрементальные backfill, write-through

Diff только по текстам

Упустили контракт

Делаем специализированные дифф-артефакты (API/ER/DMN)

Нет плана отката

Паника при инциденте

Фичефлаги/конфиги, roll-forward стратегия

Забыли DWH/отчёты

Битые витрины

Включать DWH/BI в impact analysis и миграции

Нет RTM-обновления

Потеря прослеживаемости

Блокирующее правило CCB: без RTM — CR не принят

 

Вопрос–Ответ

В: Когда можно менять обязательные входные поля без MAJOR?
О: Никогда. Обязательное — всегда breaking → MAJOR или новый endpoint/версия топика.

 

В: Можно ли не повышать MINOR, если добавили необязательное поле?
О: Формально можно как PATCH, но рекомендуется MINOR, чтобы клиенты увидели новизну.

 

В: Как жить с несколькими версиями событий?
О: Поддерживайте additive-only эволюцию и default в новых полях; для кардинальных изменений — новый eventName.v2 и поэтапная миграция консьюмеров.

 

В: Кто пишет CHANGELOG?
О: Владелец артефакта (обычно SA вместе с Tech Lead). Это часть Definition of Done.

 

В: Сколько держать deprecated?
О: Зависит от контракта с клиентами. Практика: анонс ≥30 дней, поддержка 60–90 дней, затем отключение.

 

В: Надо ли хранить бизнес-обоснование в CR?
О: Да — это помогает CCB принимать решения и отслеживать «почему так сделали».

 

Практика (60–120 мин): оформить change request

Задание: подготовьте CR на изменение «Добавить customerEmail в PaymentRequest как обязательное поле (для чеков)».
Шаги:

  1. Заполните форму CR (из §4.2) с анализом влияния: это breaking → MAJOR; требуется /v2/payments или флаг-режим с альтернативным эндпоинтом.
  2. Сделайте диффы: OpenAPI v1 → v2 (новая required), обновите SRS/AC/BDD/RTM.
  3. Спроектируйте миграцию: параллельная публикация /v1 и /v2, гайд для клиентов, A/B включение UI поля; срок деактивации /v1.
  4. Подготовьте SQL/данные (если храните e-mail): колонка customer_email, валидация, приватность (PII).
  5. Обновите CHANGELOG и черновик release notes.
  6. Вынесите на CCB (решение/условия/сроки).

 

Критерии зачёта:

  • Правильно определён тип изменения и bump.
  • Есть полный impact analysis (API/данные/безопасность/DWH/наблюдаемость).
  • Миграция обратима (фичефлаги/dual-run), есть дата deprecation.
  • CHANGELOG/Release notes/RTM обновлены.

 

Шпаргалка (распечатайте)

  • Docs-as-Code + Git + PR — единственный источник правды.
  • Semver: добавили опциональное → MINOR; ломаете → MAJOR; фиксы → PATCH.
  • Всегда показывайте диффы специализированных артефактов (OpenAPI/ER/DMN/Avro).
  • Миграции: expand → switch → contract, фичефлаги, dual-run, откат через флаги.
  • CHANGELOG и release notes — часть DoD.
  • CCB решает по данным: ценность, совместимость, риски, план.
  • RTM и AC/BDD обновляются в каждом CR.

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Модуль 8.2. Оценка и планирование
Следующая статья →
Модуль 9.1. Стандарты SRS/IEEE/ISO

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • КАМИ – компания-лидер по поставкам тяжёлых станков в России, занимающаяся продажей и обслуживанием оборудования для обработки металла и дерева, изготовления мебели и не только. На сегодняшний день в компании работают более 1300 человек, запущено 10 обучающих центров, в продаже более 7000 единиц техники. 

  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • ГК «Агропромкомплектация-Курск» - одна из ведущих в Российской Федерации агропромышленных компаний с полным производственным циклом "от поля до прилавка". За 32 года работы на рынке компания заслуженно завоевала репутацию одного из лидеров страны в производстве свинины и молока.

  • НПФ «Будущее» — один из крупнейших негосударственных пенсионных фондов России, предоставляющий услуги по пенсионному обеспечению и накоплениям. Фонд активно внедряет цифровые технологии для повышения качества обслуживания клиентов.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

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