Методологии разработки ПО
💡 Методология — это способ, по которому команда организует работу над продуктом.
Разные компании используют разные методы. QA-инженер должен понимать:
- как устроена команда,
- как двигаются задачи,
- когда и как тестируется продукт,
- в каком порядке происходят этапы,
- какие ритуалы и правила есть в процессе.
Ниже — самые популярные модели разработки, встречающиеся в 99% компаний.
🟦 1. Waterfall (Водопад, каскадная модель)
💧 Самая старая и самая строгая модель.
🧠 Суть
Работа идёт строго по этапам сверху вниз:
1️⃣ Сначала анализ требований
2️⃣ Потом дизайн
3️⃣ Потом разработка
4️⃣ Потом тестирование
5️⃣ Потом релиз
Буквально как было описано в SDLC.
Это как строительство дома:
сначала фундамент → стены → крыша → отделка.
Если на этапе крыши выяснилось, что хотели другую планировку — поздно 🙂
✔ Плюсы Waterfall
❌ Минусы Waterfall
- почти невозможно изменить требования
- ошибки во время анализа всплывают только в конце
- тестирование начинается слишком поздно
- исправления очень дорогие
- Нелтзя вернуться к предыдущему этапу или перескочить на следующий раньше
📍 Когда используется
- требования известны заранее
- проект небольшой
- проект на неконкурентном рынке (госка и всё, что с ней связано)
- изменений не будет
- заказчик хочет фиксированный бюджет
🟦 Agile (Гибкие методологии)
🌿 Аджайл — это не модель, а скорее философия.
- люди важнее процессов
- изменения — норма
- работающее ПО важнее документации
- сотрудничество с заказчиком — постоянное
- продукт развивается итерациями
Agile — это как образ мышления:
гибко, по чуть-чуть, маленькими шагами, быстро и постоянно улучшая продукт.
Scrum и Kanban — это методологии, которые следуют философии Agile. Им мы уделим основное внимание
🧩 Kanban: что это и как работает
🧩 1. Что такое Kanban
Kanban — это метод управления задачами, который помогает команде видеть весь процесс работы на одной доске и выполнять задачи плавно, без перегрузок.
💡 Представь, что это конвейер — задача проходит путь от начала до завершения.
👉 не бежать быстрее, а убрать пробки, где процесс застревает.
Здесь важен непрерывный поток задач.
📋 2. Главная идея Kanban
🟦 Визуализация
Всё должно быть видно на доске.
🟧 Ограничение незавершённых задач
Не берём новые задачи, пока не закончили текущие.
🟩 Оптимизация потока
Постоянно улучшать процесс, чтобы задачи двигались быстрее.
🧱 3. Kanban-доска
Это главный инструмент Kanban.
Она состоит из колонок, каждая из которых — этап работы.
По сути, Kaiten, в котором организовано наше учебное пространство — это Kanban-доска.
🎚 4. WIP-лимит — главное правило Kanban
WIP = Work In Progress
👉 это ограничение количества задач, которые находятся в работе.
Зачем это нужно:
- команда не перегружается
- каждая задача доводится до конца
- меньше переключений
- больше фокуса
- меньше ошибок
💡 Это как правило: «возьми только одну тарелку еды — доедай, а не набирай пять сразу».
🔄 5. Как работает Kanban (полный цикл)
1️⃣ Задача появляется → попадает в колонку To Do
2️⃣ Исполнитель берёт задачу в работу → переносит в In Progress
3️⃣ Завершает → передаёт на тестирование
4️⃣ Тестировщик проверяет → «Ready for Release»
5️⃣ После релиза → «Done»
Каждое движение задач отслеживается визуально.
🧪 6. Ритуалы Kanban (каденции)
Kanban более гибкий, чем Scrum: обязательных встреч меньше.
Но есть 7 типов встреч, которые помогают улучшать поток.
📍Не запоминай их, просто ознакомься
🟦 1. Daily Meeting — Ежедневная встреча
Кто над чем работает, что блокирует, нужна ли помощь.
🟧 2. Replenishment Meeting — Пополнение задач
Решают, какие новые задачи можно добавить, а какие — лучше подождут.
🟩 3. Delivery Planning — Планирование поставки
Команда оценивает, готова ли партия задач к выпуску.
🟨 4. Service Delivery Review
Обсуждают качество выполнения задач и сроки.
🟪 5. Operations Review
Менеджеры обсуждают, как работают команды и где улучшить.
🟫 6. Risk Review
Команда анализирует ошибки и риски.
🟫 7. Strategy Review
Обсуждаются долгосрочные цели и направление продукта.
💡 В реальности компании часто объединяют эти встречи, чтобы не тратить много времени.
📏 7. Метрики Kanban
Метрики нужны, чтобы понимать, насколько эффективно движется поток задач. 📍Не запоминай, просто прочитай
⏱ 1. Lead Time или Time to Market, TTM — Время поставки
Сколько времени проходит от появления задачи до готовности.
🚧 2. Cycle Time — Время выполнения
Сколько времени задача находится в работе.
📦 3. Throughput — Пропускная способность
Сколько задач команда делает за неделю/месяц.
📊 4. Tasks in Progress — Количество задач в работе
Если их слишком много — команда перегружена.
💸 5. Cost of Delay — Цена задержки
Какие потери возникают, если задача задерживается.
8. Преимущества Kanban
- 🚀 быстрее выводит задачи в продакшен
- 🔄 легко адаптируется под изменения
- 🔍 даёт полную прозрачность
- ❤️ снижает стресс (нет гонки за спринтом)
- 🎛 улучшает управляемость процессов
- 💡 помогает улучшать прогнозы сроков
⚠️ 9. Недостатки Kanban
- ❌ сложно оценивать сроки заранее
- ❌ нет чётких ролей — нужна дисциплина
- ❌ можно легко нарушить баланс задач
- ❌ неопытным командам тяжело ограничивать WIP
Канбан может использоваться не только как отдельная методология, но и как инструмент, который используется в других методологиях.
Например, канбан можно встретить даже в Waterfall разработке, и тем более вы всегда встретите канбан в SCRUM'е.
SCRUM: что это, как работает и зачем нужен QA
Scrum — это один из самых популярных способов организации работы в IT-командах.
90% QA-инженеров работают именно в Scrum, поэтому понимание этого подхода — обязательный навык.
🧩 1. Что такое Scrum
Scrum (скрам) — это методология, в которой команда делит работу на короткие отрезки — спринты (обычно 1–2 недели).
Каждый спринт команда делает небольшой, но готовый кусочек продукта.
💡 Представь сериал, который выходит по сериям.
Каждая серия — законченная часть истории.
Также и в Scrum — каждая итерация создаёт мини-продукт.
- 🟢 короткие итерации (спринты)
- 🔄 постоянные улучшения
- 🧑🤝🧑 самоуправляемая команда
- 🎯 работа по приоритетам
- 💬 много общения и прозрачности
🧱 2. Роли в Scrum
Каждая роль отвечает за свой кусок ответственности.
Ролей только три — и это делает систему простой.
👨🎨 1. Product Owner (PO) — Владелец продукта
Кто это: человек, который понимает, что нужно бизнесу и пользователю.
📌 Что он делает:
- собирает требования
- выставляет приоритеты
- управляет бэклогом продукта
- принимает готовую работу от команды
- отвечает за то, что мы делаем, и зачем
💡 Пример:
Если команда — ресторан, то PO — это человек, который решает, какое меню нужно клиентам.
На практике роль владельца продукта часто выполняет ПМ (проджект менеджер)
🧑🏫 2. Scrum Master
Кто это: человек, который помогает команде правильно использовать Scrum.
📌 Что делает:
- убирает препятствия (блокеры)
- организует встречи
- следит, чтобы команда соблюдала Scrum
- улучшает процессы
- помогает команде работать эффективнее
💡На западе скрам-мастер — это чаще отдельный человек. Но на территории СНГ эта роль не прижилась, так как это человек, который "нифига не делает и деньги получает". Поэтому чаще всего роль скрам-мастера у нас достаётся тому же ПМу или тимлиду.
🧑💻 3. Development Team — Команда разработки
📌 Что делает команда:
- берет задачи в спринт
- оценивает работу
- выполняет задачи
- сама решает, как именно работать
- несёт ответственность за результат
💡 В Scrum все равны и самоорганизуются.
Нет начальников, нет приказов сверху.
🧺 3. Артефакты Scrum
Это ключевые элементы, которые помогают команде понимать, что делать и куда двигаться.
📌 1. Product Backlog — Бэклог продукта
Это список всех задач и требований, которые нужно реализовать.
Бэклог всегда живой: задачи добавляются, меняются, удаляются.
📌 2. Sprint Backlog — Бэклог спринта
Это список задач, которые команда берёт на ближайшие 1–2 недели.
💡 Эти задачи уже зафиксированы — менять их нельзя.
📌 3. Increment — Инкремент
Это результат работы за спринт: маленький, но готовый кусочек продукта.
✔ работает форма регистрации
✔ можно добавить товар в корзину
✔ реализована сортировка
🔄 4. Основные ритуалы Scrum (мероприятия)
В Scrum есть 5 обязательных встреч.
Они помогают команде работать согласованно. Про них нужно знать.
🗂 1. Sprint Planning — Планирование спринта
Product Owner говорит:
👉 «Вот приоритеты. Самое важное — вот это.»
Команда отвечает:
👉 «Мы можем взять вот эти задачи. Этого — хватит на спринт.»
📅 2. Daily Standup — Ежедневный стендап
Каждый участник отвечает на 3 вопроса:
1️⃣ Что сделал вчера?
2️⃣ Что буду делать сегодня?
3️⃣ Есть ли блокеры?
💡 Это не отчёт перед начальником.
Это синхронизация команды.
🧪 3. Sprint Review — Обзор спринта
Команда показывает, что сделано.
Владелец продукта принимает или отклоняет работу.
💡 Это не экзамен, а демонстрация результата.
📈 4. Sprint Retrospective — Ретроспектива
Цель — не ругать, а улучшать процесс.
🏃 5. Спринт
Это сама итерация — обычно 1–2 недели.
Во время спринта команда:
🧠 5. Принципы Scrum, которые должен понимать QA
📌 Принцип 1: маленькие шаги
Не всё и сразу → выпускаем кусками.
📌 Принцип 2: постоянная обратная связь
Чаще показываем продукт — меньше ошибок.
📌 Принцип 3: прозрачность
📌 Принцип 4: саморганизация
📌 Принцип 5: гибкость
Изменения — нормальная часть работы.
🔍 6. Почему Scrum важен для QA
- проверяет инкременты
- уточняет требования у PO
- участвует в планировании
- оценивает задачи
- помогает команде заранее находить риски
- следит за качеством всего спринта
В Scrum QA — не «тот, кто проверяет».
Он — участник создания продукта.
🎯 7. Преимущества Scrum
✔ Для бизнеса:
✔ Для команды:
✔ Для QA:
⚠️ 8. Недостатки Scrum
- нужны дисциплина и самоорганизация
- требуется активное участие заказчика
- любые изменения могут ломать сроки
💡 Главная разница:
👉 Scrum работает итерациями
👉 Kanban работает потоком
Мы разобрали 3 самых популярных методологии. Помимо них есть и другие, лучше знать их названия и примерный смысл:
🟩 V-Model (V-модель)
📐 Улучшенная версия Водопада, но ориентирована на тестирование.
🧠 Суть
Каждому этапу разработки соответствует свой этап тестирования.
- анализ требований ↔ тестирование требований
- дизайн ↔ тестирование архитектуры
- разработка ↔ модульное тестирование
✔ Плюсы
- тестирование включено с самого начала
- много типов проверки
- подходит для систем, которые не должны ломаться (медицина, авто, банки)
❌ Минусы
📍 Где используется
🟨 Incremental Model (Инкрементная модель)
🧠 Суть
Продукт делится на части («инкременты»).
Каждая часть проходит полный цикл разработки:
Анализ → Дизайн → Код → Тест → Релиз
И только после этого команда берёт следующую часть.
Это как собирать конструктор LEGO:
сначала блок 1, затем блок 2 и т.д., пока не получится цельный продукт.
✔ Плюсы
❌ Минусы
📍 Где используется
- приложения, которые нужно выпускать быстро
- проекты с понятной базовой логикой
- когда важны регулярные релизы
🟥 RAD Model (Rapid Application Development — быстрая разработка)
⚡ Очень быстрый метод для больших команд профессионалов.
🧠 Суть
Разработка идёт параллельно большими блоками.
Каждый блок — как маленький отдельный проект.
Команды работают одновременно, быстро создают прототипы, показывают их заказчику, получают обратную связь и дорабатывают.
✔ Плюсы
❌ Минусы
📍 Где используется
🟪 6. Iterative Model (Итеративная модель)
🔄 Делаем продукт версиями, каждая версия — лучше предыдущей.
🧠 Суть
Команда создаёт первую простую версию продукта — неидеальную, но рабочую.
Потом улучшает её в следующей итерации.
И снова.
И снова.
Пример:
как рисование Моны Лизы:
1️⃣ Сначала набросок
2️⃣ Потом цвет
3️⃣ Потом детали
Эту методологию можно назвать предшественником SCRUMа.
✔ Плюсы
❌ Минусы
📍 Где используется
🟫 7. Spiral Model (Спиральная модель)
🌀 Разработка в виде циклов с анализом рисков.
Очень похожа на инкрементную, но делает упор на:
1️⃣ Планирование
2️⃣ Анализ рисков
3️⃣ Создание прототипа
4️⃣ Проверка и решение, двигаться дальше или нет