Урок 01.03: Жизненный цикл ПО (SDLC)
Цель урока
Детально изучить модели жизненного цикла разработки ПО (Waterfall и Agile/Scrum), разобрать каждую фазу Waterfall на конкретных примерах, а также понять, что именно делает аналитик в каждом событии Scrum: от планирования спринта до ретроспективы.
Ключевые понятия
- SDLC (Software Development Life Cycle) — жизненный цикл разработки ПО; последовательность фаз, которые проходит проект от возникновения идеи до вывода из эксплуатации
- Waterfall (каскадная модель) — модель, в которой каждая следующая фаза начинается только после полного завершения предыдущей
- Agile — философия гибкой разработки, основанная на итеративности, инкрементальности и тесном взаимодействии с заказчиком
- Scrum — фреймворк Agile, в котором работа ведётся фиксированными итерациями (спринтами) длиной 1–4 недели
- Спринт (Sprint) — зафиксированный по времени период (обычно 2 недели), в течение которого команда создаёт готовый к поставке инкремент продукта
- Backlog (бэклог) — упорядоченный по приоритету список задач/функций, которые нужно реализовать
- User Story — короткая запись требования с точки зрения пользователя (формат: «Как [роль], я хочу [цель], чтобы [причина]»)
- Increment (инкремент) — сумма всех выполненных за спринт задач + результаты предыдущих спринтов; готовый к поставке кусок продукта
1. Общая картина: что такое SDLC и зачем это знать аналитику
Жизненный цикл ПО — это скелет, на который нанизывается вся работа по созданию системы. Аналитику необходимо понимать SDLC по трём причинам:
- Выбор метода работы: в зависимости от модели (Waterfall / Agile) меняется глубина и формат артефактов аналитика.
- Планирование активности: аналитик должен знать, когда и какие артефакты от него потребуются.
- Коммуникация: аналитик объясняет заказчику, почему на фазе «Требования» нельзя начать разработку, а на фазе «Тестирование» — менять требования без change request.
Две основные модели: взгляд с высоты
Waterfall (каскад):
Идея → [Требования] → [Проектирование] → [Разработка] → [Тестирование] → [Внедрение]
←—— аналитик здесь ——→
Agile (итеративный):
Спринт 1: [Анализ] [Разработка] [Тест] → инкремент
Спринт 2: [Анализ] [Разработка] [Тест] → инкремент
Спринт 3: ...
←—— аналитик здесь В КАЖДОМ спринте ——→
2. Waterfall (каскадная модель): детальный разбор
2.1. Общая характеристика
Waterfall — классическая модель, пришедшая из строительства и машиностроения. Её суть: завершил фазу — передал результат дальше. Назад не возвращаемся.
Когда применяется:
- Проекты с фиксированным бюджетом и сроками (госзаказ, оборонка)
- Системы с высокими требованиями к безопасности (медицина, авионика, атомная энергетика)
- Проекты, где заказчик чётко знает, что хочет
- Когда жёсткая регуляторика требует полной документации до начала разработки
Недостатки (почему Waterfall критикуют):
- Позднее обнаружение ошибок (на фазе тестирования может выясниться, что требования поняты неверно)
- Сложность внесения изменений (нужен formal change request, который дорогой и долгий)
- Заказчик видит работающий продукт только в конце
2.2. Фазы Waterfall — пошаговый разбор
Фаза 1: Анализ требований (Requirements Analysis)
Что происходит: Аналитик погружается в предметную область, собирает и документирует требования.
Конкретные шаги аналитика:
| Шаг | Что делает аналитик | Результат |
|---|---|---|
| 1. Изучение предметной области | Читает регламенты, нормативные акты, интервьюирует экспертов | Понимание AS-IS |
| 2. Идентификация стейкхолдеров | Составляет карту стейкхолдеров (включая скрытых) | Список заинтересованных лиц |
| 3. Сбор требований | Проводит интервью, анкетирование, воркшопы | Сырой список потребностей |
| 4. Анализ и классификация | Делит на функциональные / нефункциональные, приоритизирует | Структурированные требования |
| 5. Документирование | Пишет SRS / ТЗ | SRS (утверждённый заказчиком) |
Роль аналитика: Максимальная. Это «звездный час» аналитика. Он — главное действующее лицо.
Пример: Для системы «Электронный документооборот» аналитик за 3 недели:
- Изучает 5 внутренних регламентов
- Проводит 10 интервью с начальниками отделов
- Собирает 78 требований
- Пишет SRS на 60 страниц
- Согласует с заказчиком (подпись — переход к фазе 2)
Ключевой вопрос: «Что должна делать система?»
Фаза 2: Проектирование (Design / System Architecture)
Что происходит: На основе SRS архитектор и аналитик проектируют, как система будет устроена технически.
Конкретные шаги аналитика:
| Шаг | Что делает аналитик | Результат |
|---|---|---|
| 1. Функциональная декомпозиция | Разбивает систему на модули | Диаграмма компонентов |
| 2. Проектирование API | Описывает эндпоинты, форматы данных | API-контракты (OpenAPI) |
| 3. Проектирование БД | Строит ER-диаграмму, Data Dictionary | Модель данных |
| 4. Моделирование процессов | Строит BPMN / UML диаграммы | Модели процессов |
| 5. Прототипирование UI | Совместно с UI/UX-дизайнером | Wireframes / мокапы |
| 6. Спецификация интерфейсов | Описывает форматы ввода/вывода | Interface specs |
Роль аналитика: Высокая, но совместно с архитектором. Аналитик отвечает за то, чтобы дизайн соответствовал требованиям. Архитектор — за техническую реализуемость.
Пример: Для того же ЭДО аналитик:
- Выделяет модули: «Авторизация», «Загрузка документов», «Маршрутизация», «Подписание ЭЦП», «Архив»
- Описывает API:
POST /api/v1/documents— загрузка,POST /api/v1/documents/{id}/sign— подписание - Рисует Sequence Diagram для сценария «Подписание документа»
Артефакты: Software Design Document (SDD), API-спецификации, ER-диаграмма, UML-диаграммы.
Ключевой вопрос: «Как технически устроена система?»
Фаза 3: Разработка (Implementation / Coding)
Что происходит: Разработчики пишут код на основе SRS и SDD.
Роль аналитика: Поддерживающая (средняя активность).
- Отвечает на уточняющие вопросы разработчиков
- Уточняет детали требований (но НЕ меняет их без change request)
- Участвует в код-ревью только в части соответствия требованиям (не технической)
Конкретные ситуации:
| Ситуация | Реакция аналитика |
|---|---|
| Разработчик: «В SRS сказано "отправить уведомление", но не указан канал (email/SMS/push)» | Аналитик смотрит в SRS, если там действительно нет — уточняет у заказчика и выдаёт дополнение к SRS |
| Разработчик: «Это требование технически нереализуемо в указанные сроки» | Аналитик обсуждает с архитектором, вместе предлагают альтернативу, согласуют с заказчиком |
| Разработчик: «Я сделал, проверьте, соответствует ли это требованию FR-012» | Аналитик проводит informal review |
Ключевой вопрос: «Я правильно понял требование?»
Фаза 4: Тестирование (Testing)
Что происходит: QA-инженеры проверяют, что система соответствует SRS.
Роль аналитика: Контрольная (средняя активность).
- Ревью тест-кейсов: проверяет, что тесты покрывают все требования из SRS
- Участвует в приёмочном тестировании (UAT — User Acceptance Testing): помогает заказчику проверить, что система делает то, что нужно
- Фиксирует несоответствия и баги (deviation from requirements)
Важно: В Waterfall баг, найденный на этой фазе, стоит в 10–100 раз дороже, чем если бы он был найден на фазе анализа. Поэтому аналитик должен убедиться, что тесты покрывают все сценарии.
Пример: QA написал тест-кейс: «Пользователь загружает документ формата PDF — система сохраняет». Аналитик проверяет: в требовании FR-023 сказано «поддерживаются форматы PDF, DOCX, PNG». Аналитик добавляет тест-кейсы для DOCX и PNG, а также негативный сценарий — загрузка EXE.
Ключевой вопрос: «Система соответствует спецификации?»
Фаза 5: Внедрение (Deployment / Implementation)
Что происходит: Система разворачивается в продуктивной среде, пользователи начинают работать.
Роль аналитика: Поддерживающая.
- Составляет инструкции для пользователей (user manual)
- Проводит обучение пользователей (тренинги)
- Помогает службе поддержки (Helpdesk) — пишет FAQ
- Участвует в опытно-промышленной эксплуатации (ОПЭ)
- Фиксирует первые замечания пользователей для следующей версии
Пример: Аналитик проводит 5 тренингов для операторов ЭДО, записывает видеоинструкцию «Как подписать документ ЭЦП», передаёт в Helpdesk список типовых вопросов и ответов.
Ключевой вопрос: «Пользователи могут работать с системой?»
Фаза 6: Сопровождение (Maintenance)
Что происходит: Система уже работает. Исправляются ошибки, вносятся небольшие улучшения.
Роль аналитика: Минимальная / эпизодическая.
- Анализирует запросы на доработку (change requests)
- Оценивает влияние изменений на существующую архитектуру
- Если изменения значительны — цикл может начаться заново (новая версия → новый Waterfall)
Ключевой вопрос: «Что нужно улучшить в следующей версии?»
2.3. Схема прохождения Waterfall с указанием загрузки аналитика
Фаза: Требования → Проектирование → Разработка → Тестирование → Внедрение → Сопровождение
Загрузка СА: ██████████ ████████ ████ ██████ ████ ██
(100%) (80%) (30%) (50%) (30%) (10%)
Артефакты: SRS SDD + диаграммы — Отчёт по UAT Инструкции Change log
3. Agile / Scrum: роль аналитика в деталях
3.1. Философия Agile vs Waterfall для аналитика
| Аспект | Waterfall | Agile |
|---|---|---|
| Требования | Полный SRS в начале, изменения — формальный change request | Бэклог живёт и evolves; требования уточняются каждый спринт |
| Документация | Подробная, каждый шаг зафиксирован | Минимально необходимая (just enough); упор на работающий продукт |
| Контакт с заказчиком | В начале и в конце проекта | Постоянный (в конце каждого спринта — демо) |
| Ошибки | Обнаруживаются поздно, дорогие | Обнаруживаются рано, дешёвые |
| Роль аналитика | «Архитектор требований»: спроектировал — передал | «Связной»: постоянно уточняет, переприоритизирует |
Важный нюанс: Agile не отменяет аналитика. Он меняет характер его работы. В Agile аналитик не пишет 100-страничный SRS до старта разработки, а постоянно взаимодействует с командой и заказчиком, вытягивая и уточняя требования ровно настолько, насколько нужно для следующего спринта (just-in-time requirements).
3.2. Структура Scrum-команды: роль аналитика
В Scrum нет роли «аналитик» как отдельной позиции в Scrum Guide. Аналитик может быть:
- Членом Development Team — если нанимается как универсал (часто в небольших командах)
- Отдельной ролью рядом с командой — если аналитик работает с Product Owner и командой (часто в крупных компаниях)
В любом случае, аналитик выполняет функцию анализа, независимо от формальной роли.
| Роль в Scrum | Функция | Что делает аналитик |
|---|---|---|
| Product Owner | Владелец продукта: отвечает за ценность и приоритеты | Аналитик помогает PO: собирает требования, детализирует User Stories, оценивает технические риски |
| Scrum Master | Обеспечивает соблюдение Scrum, устраняет блокеры | Аналитик НЕ выполняет роль SM (хотя может помогать с фасилитацией) |
| Development Team | Разработчики, тестировщики, аналитик | Аналитик — полноценный член команды, отвечает за качество требований |
3.3. События Scrum: что делает аналитик?
1. Backlog Refinement (Grooming) — уточнение бэклога
Что это: Регулярная встреча (обычно 1 раз в спринт, 1–2 часа), на которой команда и PO уточняют, оценивают и приоритизируют задачи из бэклога для будущих спринтов.
Цель для аналитика: Подготовить User Stories до состояния «Ready» (готово к разработке), то есть так, чтобы команда могла взять задачу в спринт и начать работать без дополнительных вопросов.
Пошаговый процесс работы аналитика в Grooming:
ДО GRooming (подготовка):
1. Собрать обратную связь от пользователей / заказчика
2. Написать черновики User Stories
3. Проставить acceptance criteria (критерии приёмки)
4. Приложить ссылки на прототипы / диаграммы
5. Проставить предварительный приоритет (совместно с PO)
НА GRooming:
1. Презентовать Story команде (2–3 минуты)
2. Ответить на вопросы: «А что если...?», «А как быть с...?»
3. Зафиксировать уточнения прямо в карточке задачи
4. Помочь команде оценить сложность (Story Points):
— объяснить технические нюансы
— указать зависимости от других Stories
— предупредить о рисках
5. Договориться о критериях готовности (Definition of Ready)
ПОСЛЕ GRooming:
1. Дополнить требования на основе вопросов команды
2. Согласовать изменения с PO
3. Обновить диаграммы / прототипы, если нужно
4. Переместить Story в топ бэклога (status: Ready)
Конкретный пример диалога аналитика на Grooming:
Аналитик: «У нас есть Story: "Как пользователь, я хочу отфильтровать список заказов по дате, чтобы быстро найти нужный". Acceptance Criteria: 1) Поле выбора даты "с" и "по"; 2) По умолчанию — последние 7 дней; 3) Результаты обновляются без перезагрузки страницы.»
Разработчик: «А что, если пользователь выберет дату "по" раньше, чем дату "с"?»
Аналитик: «Хороший вопрос. Давайте добавим: если дата "по" раньше, чем "с" — показывать предупреждение и не применять фильтр. Я обновлю критерии.»
Определение Ready (DoR — Definition of Ready): Чек-лист, по которому команда определяет, что Story готова к спринту:
- Заголовок и описание понятны команде
- Acceptance Criteria сформулированы
- Прототип / ссылка на дизайн приложены (если нужен UI)
- Зависимости от других задач известны
- Технические риски оценены
- Story оценина в Story Points
- PO подтвердил приоритет
2. Sprint Planning — планирование спринта
Что это: Встреча в начале спринта (обычно 2–4 часа для 2-недельного спринта), на которой команда решает, какие задачи войдут в спринт и как они будут реализованы.
Участвуют: Вся Scrum-команда (PO, SM, Development Team, аналитик).
Цель для аналитика: Обеспечить, чтобы все задачи, взятые в спринт, имели чёткие, однозначные требования, и команда понимала, что делать.
Два этапа планирования:
| Этап | Что происходит | Что делает аналитик |
|---|---|---|
| Часть 1: Что мы делаем? (What) | PO представляет цели спринта (Sprint Goal) и топ-приоритет Stories из бэклога | Аналитик помогает PO: напоминает контекст, объясняет бизнес-ценность каждой Story |
| Часть 2: Как мы это сделаем? (How) | Команда разбивает Stories на задачи (tasks), оценивает часы | Аналитик отвечает на технические вопросы по требованиям, уточняет Acceptance Criteria, помогает не забыть граничные случаи (edge cases) |
Что аналитик делает ДО планирования:
- Проверяет, что все Stories в топе бэклога имеют статус Ready
- Готовит ответы на возможные вопросы разработчиков
- Согласует с PO, какие Stories обязательно должны войти в спринт
Что аналитик делает ВО ВРЕМЯ планирования:
| Действие | Пример |
|---|---|
| Переформулирует бизнес-язык в технический | PO: «Нужна аналитика по заказам». Аналитик: «Конкретно: таблица с колонками "Дата, Сумма, Статус" + график по дням. Данные из PostgreSQL, агрегация через SQL» |
| Уточняет границы Story | «Эта Story включает бэкенд API, НО не включает отображение на фронтенде — это следующая Story» |
| Выявляет зависимости | «Story A требует, чтобы была готова Story B (таблица users), поэтому A не может быть в этом спринте, если B не готова» |
| Помогает декомпозировать крупные Stories | «Давайте разобьём "Корзина покупок" на: 1) Добавление товара, 2) Удаление, 3) Пересчёт суммы» |
| Фиксирует технические решения | «Договорились, что для фильтрации используем server-side pagination, а не client-side» |
Результат для аналитика:
- Sprint Backlog (список задач спринта) с чёткими требованиями
- Возможно, несколько новых уточняющих записей в Stories
- Понимание, что нужно подготовить к следующему уточнению бэклога
3. Daily Scrum (стендап) — ежедневная синхронизация
Что это: 15-минутная ежедневная встреча, где каждый отвечает на 3 вопроса: «Что сделал вчера? Что буду делать сегодня? Есть ли блокеры?»
Роль аналитика:
- Кратко отчитывается по своей работе (уточнение требований, подготовка бэклога, анализ)
- Фиксирует блокеры, связанные с неясными требованиями
- Если разработчик говорит: «Я не уверен, как должна работать эта функция» — аналитик берёт в работу уточнение
Важно: Это НЕ встреча для детального обсуждения требований. Если требуется глубокая дискуссия — аналитик назначает отдельную встречу (after-scrum).
4. Sprint Review (Демо) — показ результатов
Что это: Встреча в конце спринта, где команда демонстрирует, что сделано. Участвуют стейкхолдеры, заказчик.
Роль аналитика:
- Готовит сценарий демонстрации (checklist: что показываем, какие данные используем)
- Помогает разработчику показать ровно то, что соответствует Acceptance Criteria
- Фиксирует feedback от стейкхолдеров («А можно ещё вот так?») — эти пожелания уходят в бэклог
Пример: Аналитик перед демо проверяет: «Показываем сценарий "Успешная регистрация", потом "Ошибка при неверном email". Заказчик настаивает, чтобы был ещё "Восстановление пароля" — но это не делали в этом спринте, объясняем, что это в бэклоге на следующий спринт».
5. Sprint Retrospective — ретроспектива
Что это: Встреча команды (без PO и внешних стейкхолдеров) для анализа прошедшего спринта: что было хорошо, что нужно улучшить, какие действия внедрить.
Роль аналитика:
На ретроспективе аналитик говорит о качестве требований и взаимодействии:
| Типичная проблема (голос аналитика) | Действие на ретро |
|---|---|
| «В этом спринте трижды менялись требования в середине задачи — это привело к переделкам» | Предложить: «Давайте договоримся, что после Sprint Planning требования не меняются; если change — выносим в следующий спринт» |
| «Разработчики начали задавать вопросы по Story, которую я не успел подготовить — пришлось ждать ответа 2 дня» | Предложить: «Усилим Definition of Ready: без утверждённых Acceptance Criteria Story не берём в спринт» |
| «Заказчик на демо сказал, что функционал ему не нужен — потратили спринт впустую» | Предложить: «Усилим контакт с заказчиком до спринта — показывать прототипы до разработки» |
| «Тестировщики нашли баги из-за неполных требований (не описали граничные случаи)» | Действие: «На Grooming будем уделять 5 минут на brainstorm граничных случаев для каждой Story» |
| «Взаимодействие с PO было хорошим: он сразу отвечал на вопросы» | Закрепить: продолжать в том же духе |
Формат: Аналитик участвует как равноправный член команды. Его голос важен, потому что он видит «узкие места» на стыке бизнеса и разработки.
Action Items (конкретные улучшения), которые может предложить аналитик:
- Добавить в Definition of Ready пункт: «Прототип утверждён дизайнером»
- Завести в бэклоге технический долг: «Документировать нефункциональные требования»
- Договориться с PO: ответ на вопрос команды — не дольше 4 часов
- Проводить ad-hoc встречу «Требования» перед планированием спринта
3.4. Сравнительная таблица: что аналитик делает в Waterfall vs Agile
| Действие аналитика | Waterfall | Agile |
|---|---|---|
| Сбор требований | Единоразово, в начале (недели-месяцы) | Постоянно, each sprint |
| Документирование | Полный SRS (100+ страниц) | User Stories + Acceptance Criteria (лёгкие артефакты) |
| Уточнение требований | Через change request (формально, долго) | На Grooming / Planning (неформально, быстро) |
| Участие в тестировании | Ревью тест-плана, UAT в конце | Помощь в написании тест-кейсов в каждом спринте |
| Контакт с заказчиком | Фаза требований + UAT | Каждый Sprint Review (раз в 2 недели) |
| Реагирование на изменения | Сложно, дорого | Просто, дёшево (early sprint) |
4. Другие модели SDLC (краткий обзор)
4.1. Iterative (итеративная модель)
Суть: Проект делится на итерации (обычно 2–4 недели), но в отличие от Agile:
- Требования фиксируются в начале
- В каждой итерации — полный цикл: анализ → дизайн → разработка → тест
- Заказчик видит результат после каждой итерации
Роль аналитика: Как в Waterfall, но «размазанная» по итерациям. В каждой итерации — свой мини-SRS для части функционала.
4.2. Spiral (спиральная модель)
Суть: Каждый виток спирали — это анализ рисков + prototip + разработка + планирование следующего витка.
Роль аналитика: Акцент на анализ рисков: аналитик помогает выявить технические и бизнес-риски на каждом витке.
4.3. V-Model
Суть: Каждой фазе разработки соответствует фаза тестирования того же уровня. V-Model — «зеркальный» Waterfall.
Требования ←→ Acceptance Testing
Проектирование ←→ Integration Testing
Детальный дизайн ←→ Unit Testing
Разработка
Роль аналитика: Как в Waterfall, плюс активное участие в написании Acceptance Criteria на уровне требований.
4.4. DevOps-цикл (Continuous Delivery)
Суть: Разработка, тестирование, развёртывание и мониторинг слиты в непрерывный процесс.
Роль аналитика: Аналитик участвует не только в разработке, но и в анализе логов, мониторинга, обратной связи от пользователей → превращает данные в требования для следующего цикла.
5. Как аналитику выбрать модель для проекта: чек-лист
| Вопрос | Если ДА → склоняемся к |
|---|---|
| Требования известны и стабильны? | Waterfall / V-Model |
| Бюджет и сроки строго фиксированы? | Waterfall (но с рисками) |
| Есть регулятор, требующий полную документацию до старта? | Waterfall |
| Заказчик готов к постоянному взаимодействию? | Agile |
| Требования могут меняться в процессе? | Agile |
| Проект высокорисковый (новая технология, инновация)? | Spiral / Agile |
| Нужен быстрый выход на рынок (MVP)? | Agile |
| Команда распределённая? | Agile (Scrum of Scrums) |
Вопросы для самопроверки
- Назовите все 6 фаз Waterfall. На какой фазе загрузка аналитика максимальна?
- Что такое SRS и SDD? В чём разница?
- В чём отличие подхода к требованиям в Waterfall и Agile?
- Что такое Definition of Ready (DoR)? Какие пункты вы бы в него включили?
- Опишите, что делает аналитик на каждом из трёх событий Scrum: Backlog Refinement, Sprint Planning, Sprint Retrospective.
- Почему в Agile аналитик не может «один раз написать требования и забыть»?
- Какую модель SDLC вы выберете для:
- (а) системы управления ядерным реактором;
- (б) мобильного приложения для заказа пиццы;
- (в) внутреннего портала для документооборота небольшой компании? Обоснуйте.
Практическое задание
Кейс: Вам нужно разработать систему бронирования переговорных комнат в офисе на 300 человек.
Часть 1. Предположите, что проект идёт по Waterfall. Напишите:
- Какие артефакты вы создадите на фазе «Требования» (2–3 предложения о каждом)
- Какие артефакты — на фазе «Проектирование»
Часть 2. Предположите, что проект идёт по Agile (Scrum). Напишите:
- Как будет выглядеть ваш Backlog Refinement (что вы подготовите, как пройдёт встреча)
- Какие вопросы вы зададите на Retrospective, если в спринте разработчики 3 раза подходили с вопросом «А как на самом деле должна работать эта функция?»
Формат: свободная форма (документ / таблица).
Дополнительные материалы
- Scrum Guide (последняя версия) — bible для Scrum: https://scrumguides.org/
- Книга: «Scrum и XP: заметки с передовой» — Henrik Kniberg (коротко, практично, бесплатно)
- Книга: «Software Requirements» — Karl Wiegers (детально про требования в разных моделях)
- Стандарт: ISO/IEC/IEEE 12207 — процессы жизненного цикла ПО
- Статья (Agile vs Waterfall): «Agile vs Waterfall: Choosing the Right Methodology for Your Project» (Barry Boehm, 2003 — классика)
- Шаблон: DoR / DoD (Definition of Ready / Definition of Done) — примеры в открытом доступе