Agile Software Development (Agile-методология) — одна из самых популярных в индустрии программного обеспечения. Она отличается гибкостью, итеративным подходом и фокусом на удовлетворенности клиентов. Agile широко применяется ведущими компаниями, потому что способна быстро адаптироваться к меняющимся требованиям и эффективно поставлять высококачественное программное обеспечение.
Мы собрали 50 вопросов по Agile, которые наиболее часто встречаются на собеседованиях и могут быть интересны как новичкам, так и опытным профессионалам. Рассмотрим все основные моменты, включая принципы Agile, фреймворк Scrum, Kanban, Lean, Extreme Programming (XP), Agile-метрики, Agile-инструменты и многое другое, что поможет вам успешно пройти собеседование.
1. Что такое Agile-методология?
Agile-методология — это итеративный и инкрементальный подход к управлению проектами, который предполагает, что проект будет разбит на более мелкие части и постепенно дорабатываться в соответствии с изменяющимися требованиями. Главные приоритеты Agile — гибкость, сотрудничество и удовлетворённость клиентов.

2. Объясните разницу между традиционной моделью Waterfall и моделью Agile
Вот некоторые ключевые различия между моделью Waterfall и моделью Agile.
| Аспект | Agile | Waterfall |
|---|---|---|
| Модель жизненного цикла проекта | Модель непрерывного итерационного жизненного цикла проекта | Линейная, последовательная модель, где этапы проекта следуют строго друг за другом |
| Процесс | Процесс разработки делится на спринты | Процесс разработки делится на несколько последовательных этапов, каждый из которых должен быть завершен до начала следующего |
| Гибкость | Изменения могут вноситься на любом этапе | Требования формируются в самом начале, на других этапах это делать сложно и затратно |
| Вовлечение клиента | Постоянное взаимодействие с клиентами и обратная связь | Клиенты практически не участвуют в процессе, и отзывы принимаются крайне редко |
| Срок поставки | Сроки могут меняться в зависимости от новых требований и обратной связи, функциональное ПО доступно очень быстро | Сроки поставки определены в начале проекта и потом, как правило, не меняются |
3. Какие бывают типы Agile-методологий?
Наиболее распространенные типы:
- Kanban
- Scrum
- Разработка на основе функций (FDD)
- Разработка на основе поведения (BDD)
- Бережливая разработка
- Адаптивная разработка (ASD)
- Кристалл
- Экстремальное программирование (XP)
4. Каковы основные компоненты Agile?
5 ключевых компонентов Agile:
- Пользовательская история
- Спринты
- Ежедневные стендап-встречи
- Kanban-доска
- Бэклог продукта
5. Что такое Agile-фреймворки?
Agile-фреймворк — это своего рода «дорожная карта», которая помогает командам работать эффективно. Это набор правил и инструментов для планирования, управления и выполнения задач.
Существует 2 основных типа Agile-фреймворков. Первый — для небольших отдельных команд, а второй — для больших организаций с большим количеством команд.

6. Что такое Agile-процесс?
Это итеративный и пошаговый подход, который подразумевает разбиение проекта на более мелкие части и адаптацию к изменяющимся требованиям. Он строится на сотрудничестве, гибкости и постоянном совершенствовании.
7. Какие важные части включает Agile-процесс?
Ключевыми элементами Agile-процесса являются:
- Пользовательская история
- Итеративная разработка
- Кросс-функциональные команды
- Непрерывная интеграция и доставка
- Ежедневные стендап-встречи
- Ретроспективы
- Бэклог продукта
- Диаграмма сгорания задач
- Agile-инструменты
8. Каковы преимущества и недостатки Agile-процесса?
Преимущества:
- Гибкость и адаптивность
- Удовлетворенность клиентов благодаря обратной связи
- Более быстрая поставка (через поставку небольших функциональных частей за короткие итерации)
- Улучшение качества за счет постоянного тестирования и интеграции
- Прозрачность прогресса
Недостатки:
- Гибкость Agile может привести к неопределенности в сроках и масштабах проекта
- Постоянная вовлеченность клиентов имеет решающее значение, и если клиенты недоступны или не заинтересованы, это может замедлить процесс разработки
- Возможное отсутствие подробной проектной документации, т. к. Agile уделяет больше внимания работающему ПО, чем документации
- Высокие требования к коммуникации, что может оказаться ресурсоемким
- Итеративный и адаптивный характер Agile может затруднить прогнозирование конечного результата
9. Объясните итеративную и инкрементальную разработку в Agile
Итеративная разработка
Подразумевает повторение циклов или итераций процесса разработки. Работа делится на более мелкие части, и каждая часть проходит полный цикл разработки. Каждый цикл включает планирование, проектирование, кодинг, тестирование и рецензирование. Для уточнения и улучшения последующих итераций собирается обратная связь.
Инкрементальная разработка
Инкрементальная разработка похожа на создание чего-то маленькими шагами. Работа разбивается на части, называемые инкрементами. Каждая часть добавляет что-то новое к тому, что у вас уже есть. Это похоже на сборку полностью рабочих частей в единое целое. Команда разработчиков добавляет функционал последовательно, причем каждый инкремент основывается на предыдущих.

10. Что такое Agile-тестирование?
Agile-тестирование — это тип тестирования ПО, основанный на принципах Agile. Все члены команды проекта вместе со специальными экспертами и тестировщиками участвуют в Agile-тестировании.
Оно не является отдельной фазой, а выполняется на всех этапах разработки и происходит регулярно на протяжении всего жизненного цикла разработки.
11. Каковы принципы Agile-тестирования?
- Непрерывное тестирование проводится уже на ранних этапах и часто в течение всего процесса разработки.
- Постоянная обратная связь предполагает непрерывное взаимодействие между разработчиками, тестировщиками и стейкхолдерами.
- Совместный подход, когда разработчики, тестировщики и другие участники команды сотрудничают на протяжении всего жизненного цикла проекта.
- Быстрая обратная связь позволяет сокращать время на проверку результата итерации.
- Высокое качество ПО благодаря регулярному тестированию, быстрому выявлению и устранению проблем в рамках одной итерации.
- Меньше документации, т. к. Agile-команды используют единый чек-лист, фокусируясь на текущих потребностях клиентов, а не на обширной документации.
- Подход к разработке на основе тестирования. Этот проактивный метод тестирования помогает выявлять и решать проблемы на ранних этапах процесса разработки.
- Удовлетворенность клиентов, т. к. Agile-подход фокусируется на потребностях клиентов способствуют повышению их удовлетворенности.
12. Какими качествами должен обладать хороший Agile-тестировщик?
- Адаптивность. Среда Agile динамична, с постоянно меняющимися требованиями. Хороший Agile-тестировщик должен быть гибким и уметь быстро адаптироваться к ним
- Умение работать в команде. Agile придает большое значение командной работе и сотрудничеству, поэтому Agile-тестировщик должен легко сотрудничать с разработчиками, владельцами продуктов и другими членами команды, чтобы обеспечить общее понимание требований и результатов.
- Коммуникационные навыки. В Agile важна четкая и эффективная коммуникация, Agile-тестировщик должен уметь формулировать концепции тестирования, сообщать о проблемах и предоставлять обратную связь таким образом, чтобы ее могли легко понять как технические, так и нетехнические члены команды.
- Критическое мышление. Agile-тестировщикам необходимо мыслить критически, чтобы выявлять потенциальные проблемы, оценивать риски и предлагать эффективные стратегии тестирования.
- Умение решать проблемы. Поскольку Agile-тестировщики играют ключевую роль в обеспечении корректной работы ПО и его соответствия стандартам качества, они должны уметь анализировать проблемы и быстро устранять неполадки.
- Навыки автоматизации. Agile-тестировщики обязательно должны владеть инструментами тестирования, языками сценариев и фреймворками.
13. Что такое рефакторинг?
Рефакторинг в Agile — это улучшение внутренней структуры кода без изменения его функции. Это позволяет масштабировать программу и снижает дальнейшие расходы на обслуживание.
14. В чем разница между бэклогом спринта и бэклогом продукта?
| Характеристика | Бэклог спринта | Бэклог продукта |
|---|---|---|
| Определение | Бэклог спринта — это подмножество Бэклога продукта, выбранное для конкретного спринта. Он включает список задач, которые команда разработчиков обязуется выполнить в течение этого конкретного спринта | Бэклог продукта — это список всех задач, требований и улучшений для вашего продукта, который включает новые функции, исправления ошибок и улучшения, ранжированные по степени важности. Он динамичен и основан на совместной работе |
| Владение | Команда разработчиков | Владелец продукта |
| Объем | Ограничен одним спринтом | Охватывает весь проект |
| Временные рамки | Зависит от продолжительности спринта | Продолжается на протяжении всего проекта |
| Уровень детализации | Более подробные задачи и истории пользователей | Высокоуровневый,могут отсутствовать подробные спецификации |
| Ранжирование по приоритетам | Решение принимает команда разработчиков | Решение принимает владелец продукта |
| Цель | Это гайд для работы в рамках конкретного спринта | Предоставляет комплексный обзор проекта |
| Внесение изменений | Изменения вносятся в ходе планирования каждого спринта | Регулярно обновляется с учетом отзывов и потребностей |
15. Что такое Zero Sprint и Spike?
Нулевой спринт (Zero Sprint)
Термин «нулевой спринт» иногда используется для обозначения начального спринта или итерации, которая происходит перед официальным запуском проекта. Можно сказать, что это подготовительный спринт, когда команда настраивает среду разработки, устанавливает рабочие процессы и решает любые предварительные задачи.
Спайк (Spike)
Spike в Agile — это ограниченное по времени исследование для анализа и получения данных по определенному аспекту проекта. Спайки часто используются, когда есть путаница или надо понять технологию и оценить решение перед внедрением.
16. Что означает «velocity» в Agile?
В Agile «velocity», т. е. скорость — это метрика, которая измеряет объем работы, которую команда может выполнить за один спринт. Обычно измеряется в таких единицах, как пользовательские истории или сторипоинты.
17. Каковы популярные Agile-инструменты?
- Jira
- Slack
- Maven
- Jenkins
- Docker
- Kubernetes
18. Когда лучше всего использовать Agile-модель?
Не существует единого «подходящего момента» для Agile. Эта методология может подойти, если проект:
- имеет неопределенные требования;
- требует быстрых циклов обратной связи;
- рассчитан на работу в небольших командах;
- имеет высокую сложность или риск.
19. Что такое ежедневные стендап-встречи?
Daily Stand-Up (ежедневная стендап-встреча) — это, по сути, короткая планерка, на которой команда дает краткий отчет о том, над чем она работает. На этой встрече каждый встает и отвечает на три вопроса: что он делал вчера, что он делает сегодня, есть ли у него какие-либо препятствия или проблемы. Цель встречи — быстро решить проблемы и убедиться, что работа команды синхронизирована.
20. Какие препятствия существуют на пути внедрения Agile-процесса?
- Недостаточные или неподходящие инструменты и технологии могут препятствовать эффективному внедрению Agile.
- Пассивная позиция клиентов может привести к недопониманию, задержке обратной связи и проблемам с поставкой продукта, соответствующего их ожиданиям.
- Недостаточная квалификация команды может привести к трудностям при выполнении работы, задержкам в реализации проекта и недовольству заинтересованных сторон.
- Проблемы при проектировании систем с учетом непредвиденных требований
- Сопротивление, культурные противоречия или непонимание в рамках существующих организационных структур и практик
21. Различия между Agile и Scrum
Agile — это методология, основанная на итеративной разработке. Можно сказать, что это широкая философия или набор принципов, которые направлены на согласование разработки проекта и продукта с требованиями заказчика и общими целями компании. Agile охватывает разные подходы.
Scrum — это конкретный фреймворк в рамках Agile, легкая, итеративная и инкрементальная структура. Scrum разбивает разработку на этапы или ограниченные по времени циклы, называемые «спринтами». В Scrum-команде есть Scrum-мастер и владелец продукта, которые работают в тесном сотрудничестве.
22. Когда лучше использовать Waterfall вместо Scrum?
Waterfall подходит, если компании участвуют в проектах со следующими характеристиками:
- пользовательские истории и требования к функциям четко определены;
- команда разработчиков более 10 человек;
- есть готовый стек DevOps и разработчики с опытом его использования;
- проект подразумевает минимум изменений после начала разработки;
- руководство стремится тщательно контролировать процесс и управлять деятельностью команды разработчиков.
23. Сколько длится Scrum-цикл?
Обычно 2-4 недели, и каждый новый спринт начинается с момента завершения предыдущего.
24. Что такое Scrum of Scrums?
Scrum of Scrums — это метод масштабирования Scrum на несколько команд. Если коротко, то это координация работы, при которой несколько scrum-команд собираются вместе, чтобы создать более крупную scrum-команду для решения поставленных задач.
25. Дайте определение эпику, пользовательским историям и задачам
- Epic (Эпик) — крупный блок работы, состоящий из более мелких задач и пользовательских историй, которые команда выполняет в течение нескольких спринтов. В парадигме Agile эпики имеют решающее значение, поскольку они дают командам полезный, общий словарь и метод для использования при организации своей работы.
- User Story (Пользовательская история) — описание потребности пользователя, которое связывает сами задачи с их ценностью. Во время спринта или встречи по планированию итерации команда решает, какие истории она будет решать в течение этого спринта.
- Task (Задача) — это отдельная единица работы, вытекающая из пользовательской истории. Обычно выполняется одним человеком.
26. Что такое разработка через тестирование?
Разработка через тестирование (Test-Driven Development, TDD) — это процесс, в котором сначала пишутся тесты, а потом код. И это повторяется в коротких циклах: тест → код → проверка → рефакторинг.
27. Что такое Манифест Agile? Каковы его ценности и принципы?
Манифест Agile (Agile Manifesto) — это основа Agile, документ, сформулированный в 2001 году и описывающий ценности и принципы Agile-разработки. Он основан на 4 ценностях и подкреплен 12 принципами и которые помогают реализовать эти ценности.
4 ценности Манифеста Agile:
- Люди и взаимодействие важнее процессов и инструментов. В Agile акцент делается на важности эффективного общения и сотрудничества между членами команды.
- Рабочее ПО важнее комплексной документации. Поставка функционального ПО — основной критерий прогресса.
- Сотрудничество с заказчиками важнее согласования условий контракта. Agile призывает заказчиков и стейкхолдеров к активному участию на протяжении всего процесса разработки.
- Реагирование на изменения важнее следования плану. Agile называют гибкой методологией именно потому, что она предусматривает способность адаптироваться к изменениям даже на поздних этапах процесса разработки.

28. Что такое диаграммы Burn-Up и Burn-Down?
Эти диаграммы обычно используются в Agile-проектах для визуализации прогресса и отслеживания оставшейся работы.
Диаграммы Burn-Down (Сгорание)
- Отслеживает оставшуюся работу, показывает прогресс до завершения проекта.
- Полезно для соблюдения дедлайнов и раннего выявления проблем.
Диаграммы Burn-Up (Накопление)
- Отслеживает выполненную работу и показывает общий прогресс.
- Полезно для анализа общего прогресса и понимания изменений.
29. Какие бывают типы Burn-Down диаграмм?
- Sprint Burn-Down (диаграмма сгорания спринта)
- Release Burn-Down (диаграмма сгорания релиза)
- Epic Burn-Down (диаграмма сгорания эпика)
- Cumulative Flow Diagram (накопительная диаграмма потока)
30. Назовите три основных Agile-фреймворка, кроме Scrum
- Kanban
- Экстремальное программирование (XP)
- Разработка на основе функций (FDD)
31. Что такое Канбан?
Kanban — это популярный метод Agile. Изначально разрабатывался как часть производственной системы TPS (Toyota Production System) и имеет в основе принцип «вытягивания» задач, когда каждый шаг можно сделать только если для него есть освободившееся место.
Суть Kanban в визуализации рабочих процессов на специальных досках и ограничении Work In Progress (WIP), когда определяются лимиты на количество задач, одновременно находящихся в процессе выполнения.

32. Что такое техника Planning Poker?
Planning Poker (Покер планирования) — это способ совместной оценки усилий для выполнения задач.
Каждый член команды получает набор карточек с числами, представляющими сложность задачи. После обсуждения задачи каждый показывает карту с оценкой, и если есть разница, участники команды обсуждают задачу, пока не придут к единому мнению.
33. Что такое Sprint Planning, Sprint Review и Sprint Retrospective?
Планирование спринта (Sprint Planning)
Это встреча в начале спринта, когда команда решает, над какими задачами будет работать. На планировании спринта расставляются приоритеты, создается план предстоящей работы, формируется Sprint Backlog.
Обзор Спринта (Sprint Review)
Это встреча в конце спринта, на которой команда демонстрирует стейкхолдерам выполненную работу, собирает обратную связь и обсуждает корректировки, необходимые для следующего спринта.
Ретроспектива спринта (Sprint Retrospective)
Это своего рода рефлексия команды, когда участники обсуждают завершенный спринт, делятся, что прошло хорошо, что можно улучшить, какие изменения внедрить в следующем спринте.

34. Что значит «Increment» (инкремент) в Agile?
«Инкремент» в Agile — это небольшая, завершенная часть проекта, которая добавляет новую функциональность к продукту. Так каждый инкремент вносит вклад в прогресс, делая продукт более полноценным и готовым к использованию.
35. Назовите стандартные Agile-метрики
- Отслеживание прогресса выполнения задач, обычно представленное в виде диаграмм выработки
- Скорость команды
- Время производства
- Время цикла
- Качество кода
- Покрытие кода юнит-тестами
- Успешность деплоя
- Индекс потребительской лояльности или просто удовлетворённость клиентов
36. Что такое Release Candidate?
В Agile «релиз-кандидат» (Release Candidate) — это версия продукта, которая считается потенциальным кандидатом на поставку. Она считается «почти финальной», но еще проходит тщательное тестирование, чтобы выявить и устранить все оставшиеся проблемы, прежде чем она может быть официально выпущена для пользователей.
37. Что означает Story Point в Scrum?
«Story Point» — это условная единица измерения сложности реализации пользовательской истории или задачи в бэклоге продукта. Это способ для Agile-команд выразить сложность рабочих элементов не временем, а трудоемкостью.
38. С какими проблемами чаще всего сталкиваются при внедрении Agile-разработки?
- Необходимость больше взаимодействовать с заказчиками
- Зависимость от тестирования
- Руководство страдает больше, чем разработчики
- Требуется дополнительная подготовка до внедрения методологии
39. Когда не следует использовать Agile?
- Если проект не срочный, слишком сложный или включает в себя новые и неопределенные элементы.
- Если команда не умеет самоорганизовываться и в ней не хватает опытных разработчиков.
- Если заказчик настаивает на жестком контроле и подробной документации для каждого цикла разработки
- Если заказчик предпочитает традиционные методологии и не желает рассматривать гибкие подходы
- Если организация не желает инвестировать в продвижение Agile-практик среди разработчиков, тестировщиков и руководства
40. Что такое Product Roadmap?
Дорожная карта продукта (Product Roadmap) — это инструмент, который используется для стратегического планирования продукта. Он определяет, какие фичи и цели будут реализованы в течение заданного периода времени. Product Roadmap помогает согласовать работу со всеми заинтересованными сторонами.

41. Что такое Pair Programming и его преимущества?
Парное программирование (Pair Programming) — это метод разработки, при котором два разработчика работают вместе за одним компьютером. Один пишет код, он — «Driver», второй наблюдает, следит за качеством и подсказывает, он — «Navigator». При этом они могут менять свои роли.
Преимущества парного программирования:
- Одна голова — хорошо, а две — всегда лучше
- Обнаружить ошибки в коде становится проще
- Обмен опытом и обучение в процессе
- Команда развивает коммуникацию
42. Какую ценность может принести QA Agile-команде?
QA (специалист по качеству) подходит к тестированию истории уникальными способами, дает быстрый фидбек разработчикам и помогает быстро исправлять баги и делать продукт более качественным.
43. Что такое Application Binary Interface (ABI)?
Application Binary Interface (двоичный интерфейс приложений) — это интерфейс между двумя программными модулями, один из которых в основном находится на уровне машинного кода. Он описывает, как данные кодируются и декодируются.
44. Что такое Tracer Bullet?
Tracer Bullet (Трассирующая пуля) — это пробный вариант решения, который применяется, чтобы понять, как работает весь процесс, и проверить, является ли он практичным. Это похоже на Spike, только направлен на быстрое создание прототипа для проверки жизнеспособности продукта.
45. Что означает термин «Impediment» в Agile?
Impediment (Препятствие) — в Agile это любое препятствие или барьер, которые мешают команде достигать своих целей. Эти препятствия могут принимать различные формы и включать технические проблемы, отсутствие ресурсов и даже просто плохую коммуникацию. Быстрое выявление и устранение препятствий имеет решающее значение в Agile для обеспечения плавного хода работы и помощи команде в эффективной доставке ценности.
46. Для чего проводятся Sprint Planning Meetings?
Sprint Planning Meetings (Совещания по планированию спринта) проводятся перед началом каждого спринта. На них команда решает, какой набор элементов может быть разработан и поставлен в предстоящем спринте, и создает бэклог спринта, выбрав для этого истории из исходного бэклога продукта.
47. Где применяются Scrum и Kanban?
Обе методологии используются для повышения эффективности процессов разработки ПО. Scrum больше подходит для проектов с меняющимися требованиями, а Kanban используется там, где важен непрерывный поток задач.
48. Каковы основные роли в Scrum
Scrum-команда состоит из Scrum-мастера, владельца продукта и команды разработчиков.
49. Что значит «Build Breaker»?
Это ошибка или какое-то изменение в коде, которые в итоге приводят к нарушению процесса сборки. Под сборкой понимается процесс преобразования исходного кода в исполняемый файл или развертываемый артефакт. И пока баг не исправлен, дальнейшая сборка невозможна и работа команды блокируется.
50. Какими качествами должен обладать хороший Scrum-мастер?
Хороший Scrum-мастер — это как полезный проводник для команды. Он решает проблемы и следит за тем, чтобы все могли хорошо работать вместе. Поэтому Scrum-мастер должен уметь:
- слушать и находить компромиссы;
- решать проблемы и устранять препятствия;
- мотивировать команду и помогать ей становиться лучше;
- учиться и постоянно совершенствоваться.
Перевод статьи «Agile Software Development Interview Questions».
