В настоящее время Agile – это широко используемая методология в управлении проектами, и существует высокий спрос на Scrum-мастеров, разработчиков и тестировщиков в Agile-проектах. В этой статье мы собрали топ вопросов по Agile для подготовки к собеседованию.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание:
Вопросы на собеседовании по Agile
Вопрос 1. Что такое Agile-методология?
Agile-методология – это методология разработки программного обеспечения, основанная на итеративном и инкрементальном подходе, который позволяет командам быстро адаптироваться к изменениям и непрерывно улучшать продукт.
Вопрос 2. Чем Agile-методология отличается от традиционных методологий?
Основное различие между Agile-методологией и традиционными подходами заключается в том, что Agile использует инкрементальную модель разработки. Здесь фазы разработки и тестирования проходят одновременно, в то время как в традиционной методологии тестирование начинается только после завершения разработки.
Agile-методология обеспечивает гибкость, поскольку в нее легче вносить изменения. В традиционной методологии внесение изменений затруднено, так как требования утверждаются до начала разработки.
В Agile-методологии требуется меньше документации. Благодаря быстрой доставке разработчики вносят изменения в код в зависимости от потребностей. В то время как в традиционной методологии процесс разработки начинается только после того, как команда получает готовые документированные требования.
Заказчики задействованы на всех этапах Agile-разработки программного обеспечения, анализируя продукт и предлагая изменения, если это необходимо. В традиционной методологии заказчики вовлечены в основном на этапе сбора требований. Обычно они видят готовый продукт на последних этапах жизненного цикла разработки.
Вопрос 3. Можете ли вы назвать несколько Agile-фреймворков?
Ниже перечислены некоторые Agile-фреймворки:
- Scrum
- Kanban
- Crystal
- Dynamic Systems Development Method (DSDM, метод разработки динамических систем)
- Feature Driven Development (FDD, разработка, управляемая функциональностью)
- Adaptive Software Development (ASD, адаптивная разработка ПО)
- Lean Software Development (LSD, бережливая разработка ПО)
Вопрос 4. Что такое Agile-манифест?
Agile-манифест – это документ по Agile-разработке программного обеспечения, подготовленный 17 единомышленниками-практиками в области разработки программного обеспечения. Он опубликован в феврале 2001 года. Манифест построен на 4 основных ценностях и 12 вспомогательных принципах.
Вопрос 5. Назовите четыре основные ценности Agile-манифеста?
Ниже перечислены четыре основные ценности Agile-манифеста:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее согласования условий контракта.
- Готовность к изменениям важнее следования плану.
Вопрос 6. Назовите 12 принципов Agile-манифеста?
Ниже перечислены 12 принципов Agile-манифеста:
- Нашим главным приоритетом является удовлетворение потребностей заказчика за счет раннего и непрерывного предоставления программного обеспечения.
- Приветствуются изменения требований даже на поздних этапах разработки. Agile-процессы используют изменения для обеспечения конкурентных преимуществ заказчика.
- Регулярное внедрение обновленных версий программного обеспечения, с периодичностью от нескольких недель до нескольких месяцев, предпочтение отдается более короткому временному промежутку.
- Бизнесмены и разработчики должны ежедневно работать вместе на протяжении всего проекта.
- Мотивированные специалисты — основа успешного проекта. Создавайте условия, обеспечивайте поддержку, и доверьте им выполнение работы.
- Наиболее эффективным и действенным методом передачи информации команде разработчиков и внутри нее является беседа лицом к лицу.
- Работающее программное обеспечение – это основной показатель прогресса.
- Agile-процессы способствуют устойчивому развитию. Заказчики, разработчики и пользователи должны поддерживать постоянный темп разработки на протяжении всего проекта.
- Постоянное внимание к техническому совершенству и хорошему дизайну повышает гибкость.
- Простота – умение сосредотачиваться только на самом важном и исключать лишнюю работу.
- Лучшие архитектуры, требования и дизайны возникают в самоорганизующихся командах.
- Через регулярные промежутки времени команда оценивает свою работу, размышляет о том, как стать более эффективной, а затем корректирует свою работу соответствующим образом.
Вопрос 7. Что такое экстремальное программирование?
Экстремальное программирование или XP – одна из гибких методологий разработки программного обеспечения. Здесь используется объектно-ориентированный подход, и он следует тем же практикам, которые включены в Agile-манифест.
Экстремальное программирование ответственно за введение концепций, которые сегодня широко используются в качестве стандартных практик, таких как пользовательские истории, непрерывная интеграция и разработка, управляемая тестами. Одно из преимуществ экстремального программирования заключается в том, что оно позволяет учитывать меняющиеся требования в любой момент жизненного цикла разработки.
Вопрос 8. Назовите пять основных принципов экстремального программирования?
Ниже перечислены пять основных принципов экстремального программирования:
- Коммуникация. Этот принцип акцентирует внимание на своевременной и тесной связи между соответствующими сторонами (в основном разработчиками и заинтересованными лицами).
- Простота. Основная идея этого принципа заключается в том, чтобы сначала работать над непосредственными функциями и сохранять простоту. Код должен быть написан так, чтобы его можно было легко реализовать, а в случае необходимости изменения — выполнить рефакторинг.
- Обратная связь. Существует три источника, используемых для сбора обратной связи. Во-первых, при проведении модульного тестирования фиксируется обратная связь о системе. Во-вторых, при проведении приемочного тестирования фиксируется обратная связь от клиента. В-третьих, в процессе “игры планирования” собирается обратная связь от других членов команды разработки.
- Смелость. Принцип, который подчеркивает, что команде нужно обладать уверенностью при разработке функций. Agile-команда также должна быть готова к тому, что требования могут измениться в будущем, и эти изменения придется включить в код.
- Уважение. Этот принцип сосредоточен на уважении между всеми членами команды, а также самоуважении.
Вопрос 9. Назовите четыре основные направления экстремального программирования?
Ниже перечислены четыре основных направления экстремального программирования:
- Планирование
- Дизайн
- Кодирование
- Тестирование
Вопросы 10. Что такое рефакторинг?
Рефакторинг – это процесс изменения существующего исходного кода без изменения его функциональности.
Вопрос 11. Что такое парное программирование?
Парное программирование – это техника, используемая в Agile-разработке программного обеспечения, при которой два разработчика работают в одной команде. Один из них выполняет роль “ведущего” (driver), а другой – “штурмана” (navigator или observer). “Ведущим” является разработчик, который непосредственно пишет код и фокусируется на решении текущих задач. А “штурман” – это разработчик, который внимательно следит за процессом написания кода, предлагает идеи, проверяет логику и может указывать на ошибки. При необходимости они могут меняться ролями.
Вопросы 12. Назовите преимущества парного программирования?
Ниже перечислены различные преимущества парного программирования:
- Парное программирование приводит к улучшению качества кода и уменьшению количества ошибок в нем, поскольку другой разработчик постоянно проверяет код по мере его написания.
- Парное программирование облегчает поиск решений любых проблем, возникающих в процессе кодирования, поскольку другой разработчик может помочь.
- Это позволяет легко передавать знания, так как если один из разработчиков более опытен, он может научить другого.
Вопрос 13. Какие существуют техники оценки в Agile?
Техники оценки в Agile используются для того, чтобы оценить объем работы, которую нужно выполнить. Вот несколько популярных техник оценки в Agile:
- Planning Poker (Покер планирования)
- T-shirt sizes (Размеры футболок)
- Affinity Estimation (Оценка по сходству)
- Sorting Method (Метод сортировки)
- The Bucket System (Система оценки “ведерками”)
- Three-Point Method (Метод трех точек)
- Dot Vote (Точечное голосование)
Вопрос 14. Расскажите про технику “Покер планирования”.
Покер планирования – это техника оценки, которая предполагает сотрудничество между членами команды. Он проводится разработчиками перед началом итерации.
- Каждый участник получает колоду карт с числами, обычно используя последовательность Фибоначчи. Эти числа представляют собой сюжетные точки или дни.
- Владелец продукта объясняет команде пользовательскую историю или задачу, которую нужно оценить. Разработчики могут продолжить обсуждение, если у них возникнут вопросы.
- После обсуждения каждый участник выбирает карту из своей колоды, которая, по его мнению, соответствует объему работы, необходимого для выполнения задачи. Оценка происходит анонимно.
- Все карты раскрываются одновременно, и если все они одинаковые, то задача оценивается по значению карты.
- Если значения карт различаются, происходит дальнейшее обсуждение, и оно продолжается до тех пор, пока все члены команды не придут к единому мнению.
Вопрос 15. Расскажите про технику оценки в размерах футболок.
Оценка в размерах футболок – это метод оценки, используемый для измерения размера пользовательской истории, который применяется в основном тогда, когда нужно оценить относительно большие элементы в бэклоге. При этой технике задачи оцениваются в терминах размеров футболок (XS, S, M, L, XL). Решение о размере задачи принимается на основе открытой дискуссии в команде.
Вопрос 16. Что такое бережливая разработка программного обеспечения?
Бережливая разработка программного обеспечения (Lean Software Development, LSD) – это итеративная Agile-методология, которая позаимствовала принципы бережливого производства и внедрила их в процесс разработки программного обеспечения.
Некоторые из принципов бережливости, которые были адаптированы для разработки ПО:
- быстрая доставка заказчику;
- устранение потерь, т.е. выявление и сокращение всех видов неэффективных действий, ресурсов и затрат в процессе разработки;
- оптимизация времени и ресурсов разработки;
- повышение качества продукта и т. д.
Вопрос 17. Что такое Kanban?
Как и Scrum, Kanban – один из популярных фреймворков, используемых в Agile-разработке программного обеспечения. Kanban – это японское слово, означающее “доска объявлений”. В этой системе рабочие элементы или пользовательские истории отображаются на Kanban-доске, что позволяет всей команде видеть статус каждой задачи в режиме реального времени. Задачи перемещаются по колонкам, обозначающим стадии их выполнения (например, “Запланировано”, “В процессе”, “Готово”).
Kanban позволяет разрабатывать продукт в одном большом цикле, без деления на итерации (как в Scrum).
Kanban является инкрементальным, то есть работа над продуктом выполняется постепенно, с добавлением новых функциональностей по мере их готовности, а не итеративным, как в Scrum, где каждая итерация заканчивается выпуском новой версии продукта.
Вопрос 18. Что такое Scrumban?
Scrumban – это методология Agile-разработки, которая представляет собой комбинацию Scrum и Kanban.
Scrumban чаще всего используется в проектах по поддержке и сопровождению, где процессы Scrum улучшаются за счет принципов Kanban. Это помогает команде оптимизировать рабочие процессы.
Часть Scrum в Scrumban заключается в определении объема работы, который может быть выполнен за спринт, и расстановке приоритетов задач.
Часть Kanban используется для улучшения процессов и визуализации рабочего процесса с помощью доски. Scrumban использует систему pull из Kanban, при которой задачи непрерывно вытягиваются из бэклога по мере готовности команды к их выполнению.
Вопрос 19. Что такое разработка через тестирование?
Разработка через тестирование (Test-Driven Development, TDD) – это процесс разработки программного обеспечения, при котором сначала пишутся тесты, а затем создается код. Тесты пишутся для проверки того, что код будет делать именно то, что требуется.
Ниже перечислены основные правила процесса разработки TDD:
- Сначала пишется юнит-тест, описывающий какую-либо функцию системы.
- Следующий шаг – запуск теста. Он должен завершиться неудачей, потому что функция еще не реализована в системе.
- Далее пишется код для внедрения функции в систему. Основная идея – написать простой код, достаточный для прохождения теста.
- Рефакторинг кода по мере необходимости.
- Повторить описанные выше действия для других функций системы.
Вопрос 20. Что такое DevOps?
DevOps – это набор идей и практик, объединяющих разработку программного обеспечения (Dev) и эксплуатацию информационных технологий (Ops). DevOps объединяет команду разработчиков и операционную команду для обеспечения высококачественного и надежного программного обеспечения и сокращения времени разработки.
Вопрос 21. В чем разница и сходство между Scrum и Agile?
- Agile- это методология разработки программного обеспечения. Она основана на инкрементальных методах разработки, где целью является быстрое предоставление работающего продукта. В то время как Scrum – это один из фреймворков, который реализует принципы Agile.
- Agile использует инкрементальный и итеративный подход для завершения проектов. Scrum также является инкрементальным и итеративным.
Вопрос 22. Можете ли вы вкратце объяснить суть Agile-тестирования?
Agile-тестирование – это процесс тестирования программного обеспечения, который следует принципам Agile-разработки программного обеспечения. Процесс Agile-разработки – это итеративный процесс, в котором требования постоянно меняются в соответствии с потребностями заказчика. Agile-тестирование – это непрерывный процесс, который выполняется одновременно с процессом разработки и включает в себя непрерывное тестирование системы до тех пор, пока не будет достигнуто желаемое качество программного обеспечения.
Вопрос 23. Какого подхода вы должны придерживаться как Agile-тестировщик, если требования постоянно меняются?
- При создании тест-кейсов команда Agile-тестирования должна сосредоточиться на написании общих тест-кейсов, которые легко можно будет адаптировать к изменениям.
- Agile-тестировщик должен сотрудничать с владельцем продукта и бизнес-аналитиком, чтобы понимать изменившиеся требования и риски, связанные с изменениями, для модификации тест-кейсов.
- Команда тестирования должна приступать к автоматизации тестирования только после того, как требования будут утверждены.
Вопрос 24. Какими качествами должен обладать хороший Agile-тестировщик?
Ниже перечислены важные качества, которыми должен обладать хороший Agile-тестировщик:
- Agile-тестировщик должен обладать глубокими знаниями Agile-принципов и концепций.
- Agile-тестировщик должен уметь быстро и четко понимать требования проекта.
- Тестировщик должен обладать хорошими коммуникативными навыками, поскольку Agile-процесс предполагает постоянное взаимодействие с бизнес-аналитиками, разработчиками и другими тестировщиками.
- Agile-тестировщик должен уметь работать с изменяющимися требованиями. Он должен понимать риски, возникающие в связи с изменениями, и уметь модифицировать тест-кейсы в соответствии с меняющимися требованиями.
Вопрос 25. Назовите методы Agile-тестирования.
Ниже перечислены некоторые методы Agile-тестирования:
- Behaviour Driven Development (BDD, поведенческая разработка)
- Acceptance Test-Driven Development (ATDD, разработка на основе приемочных тестов)
- Exploratory Testing (Исследовательское тестирование)
- Session-Based Testing (Сессионное тестирование)
Вопрос 26. Каковы этапы жизненного цикла Agile-тестирования?
Жизненный цикл Agile-тестирования делится на следующие этапы:
- Планирование тестирования (Agile Test Planning) – на этой фазе заинтересованные стороны составляют план тестирования и определяют результаты.
- Ежедневные Scrum-встречи (Daily Scrums) – эти встречи включают в себя обсуждение статуса тестирования, проведенного за предыдущий день, и постановку целей тестирования на день.
- Анализ тестирования (Test Agility Review) – эти встречи проводятся еженедельно с заинтересованными сторонами, чтобы проанализировать прогресс.
- Готовность к релизу (Release Readiness) – на этом этапе проводится обзор функций, чтобы проверить их готовность к запуску в производство.
- Анализ последствий (Impact Analysis) – на этом этапе собираются отзывы заинтересованных сторон и разрабатываются цели на следующий жизненный цикл.
Вопрос 27. В чем разница между инкрементальной и итеративной разработкой?
При итеративном методе разработки программное обеспечение разрабатывается и передается заказчику поэтапно. После получения обратной связи от заказчика программа дорабатывается и снова разрабатывается в следующих итерациях (спринтах), а затем передается заказчику.
При инкрементальном методе разработки программное обеспечение разрабатывается по частям (инкрементам). Каждый инкремент содержит завершенную часть некоторой функциональности системы.
Вопрос 28. Что такое релиз-кандидат?
Релиз-кандидат – это функциональная сборка системы, которая выпускается внутри компании для тестирования. Эта сборка не используются для развертывания в продакшене (на реальных пользователях). Тестирование сборки проводится для того, чтобы убедиться в отсутствии критических проблем в системе.
Релиз-кандидат представляет собой версию кода или сборки, выпущенную для того, чтобы убедиться, что во время последнего периода разработки в системе не осталось серьезных ошибок. Он используется для тестирования и эквивалентен финальной сборке.
Вопросы 29. Что такое нарушение сборки (build breaker)?
Нарушение сборки (build breaker) – это ситуация, когда ошибка в программном обеспечении останавливает компиляцию (процесс сборки) и вызывает предупреждения или сбои в автоматизированной тестовой среде. Это происходит, когда разработчики случайно вносят ошибки в код.
Вопрос 30. Как QA может повысить ценность Agile-команды?
- Тестировщики участвуют в сессиях анализа рисков, чтобы определить риски и меры по их предотвращению.
- Тестировщики изучают возможные сценарии поведения пользователей, помогают в создании критериев приемки.
- Они проводят исследовательское тестирование новых разработанных функций.
- Они могут обеспечить непрерывную и быструю обратную связь с разработчиками по мере тестирования программного обеспечения.
- Тестировщики участвуют в автоматизированном тестировании.
- Тестировщик помогает выявить дефекты.
- Тестировщики думают нестандартно, рассматривая различные сценарии тестирования, что помогает расширить тестовое покрытие и выявить больше дефектов.
Вопрос 31. Каковы преимущества Agile-модели?
- Agile-модель поддерживает быструю и непрерывную доставку программного обеспечения.
- Будучи гибкой моделью, Agile-модель помогает приспособиться к любым изменениям, предложенным клиентами.
- Agile предполагает высокое взаимодействие между различными членами команды, что помогает быстро выявлять любые проблемы в процессе разработки.
- Agile-модель помогает увеличить количество программного обеспечения для клиентов, поскольку поставки осуществляются быстро и после каждого инкремента заказчик получает рабочий продукт.
- Заказчики могут просматривать продукт в процессе и после каждого инкремента. Это дает им уверенность в том, что процесс разработки идет в верном направлении.
Вопрос 32. Каковы недостатки Agile-модели?
- Поскольку требования часто меняются, разработчики не всегда могут иметь возможность точно оценить весь объем работы.
- Agile уделяет меньше внимания документации. Это может стать проблемой для новых участников проекта.
- Заказчик должен регулярно участвовать во встречах и предоставлять обратную связь. Если заказчик недоступен, то это может замедлить проект.
- Если заказчик не сможет четко объяснить конечные цели проекта, команда может пойти в неправильном направлении, что приведет к ошибкам и переработкам.
- Для гибкого процесса разработки требуются опытные разработчики, обладающие навыками разработки системы и способные принимать быстрые и важные решения в ходе этого процесса.
- Agile предполагает постоянное взаимодействие всех участников команды, что может увеличивать затраты времени и требовать больше энергии от команды.
Вопросы на собеседовании на должность Scrum-мастера
Вопрос 33. Можете ли вы вкратце объяснить, что такое Scrum?
Scrum – это один из самых популярных фреймворков гибкой методологии Agile. В Scrum есть несколько ключевых этапов: определение требований, анализ, проектирование, развитие и доставка продукта.
В Scrum создается список требований, который называется бэклог продукта. Чтобы выполнить эти требования, работа делится на короткие циклы – спринты. Каждый спринт содержит определенные задачи из бэклога продукта и длится от 2 до 4 недель.
Вопрос 34. Почему Scrum называют легким фреймворком?
Scrum называют легким фреймворком, потому что в нем мало правил и практик. Этот фреймворк гибкий и легко адаптируется к изменениям в требованиях. В Scrum разработка продукта делится на спринты, которые имеют небольшую продолжительность.
Вопросы 35. Когда используется Scrum?
Ниже перечислены случаи, когда при разработке программного обеспечения стоит использовать Scrum:
- Когда требования неясны.
- Когда высока вероятность изменения требований в процессе разработки.
- Мы также можем использовать Scrum, когда есть потребность в регулярной доставке работающего продукта.
- Когда команда разработки самоорганизована и кросс-функциональная (может выполнять разные задачи).
Вопрос 36. Назовите три столпа Scrum.
Ниже перечислены три столпа Scrum:
- Прозрачность – все аспекты процесса разработки продукта должны быть видны всем участникам: команде разработчиков, заказчику, Scrum-мастеру и др.
- Проверка – на регулярной основе участники должны просматривать артефакты Scrum и выяснять, есть ли что-то, что препятствует прогрессу.
- Адаптация – если в ходе проверки обнаруживаются какие-либо проблемы, необходимо внести коррективы или изменения в процесс для их устранения.
Вопросы 37. Что такое спринт?
Спринт – это короткий и ограниченный по времени период, в течение которого команда разработчиков выполняет определенный объем работы, чтобы создать готовую версию продукта. Это основная единица разработки в Scrum.
Вопрос 38. Сколько длится цикл Scrum?
Длительность цикла Scrum или спринта зависит от команды и размера проекта. Продолжительность спринта не может превышать месяца (4 недели). Как правило, в среднем спринт длится несколько недель.
Вопрос 39. Какие артефакты (документы) являются основными в Scrum?
К основным артефактам Scrum относятся:
- Бэклог продукта – список задач, которые ведет владелец продукта. Он состоит из требований, улучшений, функций и т. д.
- Бэклог спринта – список задач, выбранных из бэклога продукта, которые должны быть завершены в определенном спринте.
- Инкремент – включает в себя список всех задач бэклога продукта, которые были завершены в течение спринтов. Это один из результатов работы Scrum-команды.
Вопрос 40. Расскажите о различных мероприятиях, которые проводятся в каждом спринте Scrum.
Scrum состоит из следующих четырех мероприятий, которые используются для проверки и адаптации:
- Планирование спринта. При планировании спринта происходит детальное обсуждение работы над проектом, которая будет выполняться в течение спринта.
- Ежедневный Scrum (Daily Scrum). Ежедневная встреча, на которую отводится 15 минут для обсуждения деятельности команды разработчиков на ближайшие 24 часа. Он также включает в себя обсуждение работы, выполненной за последние 24 часа.
- Обзор спринта. Проводится в конце спринта для обсуждения результатов и готового инкремента.
- Ретроспектива спринта. Ретроспектива спринта проводится для того, чтобы команда разработчиков могла проанализировать свою работу и обсудить улучшения или изменения, которые можно сделать в следующем спринте для повышения эффективности.
Вопрос 41. Что такое планирование спринта?
При планировании спринта составляется план работ, которые необходимо выполнить в конкретном спринте. Для месячного спринта планирование спринта ограничено 8 часами. Scrum-мастер отвечает за то, чтобы участники поняли цель планирования.
Ниже приведены два вопроса, на которые необходимо ответить во время планирования спринта:
- Что может быть сделано в течение спринта? Владелец продукта обсуждает цель спринта и выбирает задачи из бэклога продукта для включения в бэклог спринта.
- Как будет выполняться работа? Основываясь на бэклоге спринта, команда разработчиков должна решить, как она будет работать над созданием готового инкремента.
Вопрос 42. Что такое ежедневный Scrum?
Ежедневный Scrum – это встреча, на которой обсуждается деятельность команды разработчиков на ближайшие 24 часа. На нее отводится не более 15 минут. В ходе встречи даются ответы на следующие вопросы:
- Что я делал вчера?
- Что я буду делать сегодня?
- Вижу ли я какие-либо препятствия, которые мешают команде достичь цели спринта?
Цель ежедневной Scrum-встречи – проконтролировать ход выполнения задач из бэклога спринта.
Вопрос 43. Что такое обзор спринта?
Обзор спринта проводится в конце спринта для проверки инкремента. В обзоре участвуют заказчик и команда разработчиков. В ходе этого мероприятия участники рассказывают о том, что было сделано в спринте, обсуждают проблемы, с которыми столкнулась команда разработчиков, дают обратную связь и т. д. При необходимости обновляется бэклог продукта и предоставляются материалы для планирования следующего спринта.
Вопрос 44. Что такое ретроспектива спринта?
Ретроспектива спринта проводится после обзора спринта и перед планированием следующего. Она включает в себя анализ последнего спринта и внесение изменений для повышения эффективности в будущем.
Для месячного спринта ретроспектива ограничена 3 часами . Ответственность за проведение мероприятия и мотивацию других членов команды на повышение эффективности спринта лежит на Scrum-мастере.
Вопрос 45. Что такое бэклог продукта?
Бэклог продукта – это список задач, которые необходимо выполнить. Он состоит из требований, функций, улучшений, изменений и т. д. Его ведет владелец продукта, который отвечает за его содержание. Бэклог продукта постоянно совершенствуется по мере разработки продукта и изменения требований.
Вопросы 46. Что такое бэклог спринта?
Определенные элементы бэклога продукта выбираются для конкретного спринта. Этот список элементов называется бэклогом спринта. Это подмножество беклога продукта, над которым работает команда в течение спринта.
Вопрос 47. Что такое нулевой спринт?
Перед началом первого спринта необходимо выполнить определенные действия, такие как создание среды разработки, подготовка бэклога продукта и другие виды планирования, связанные с предстоящим спринтом. Этот этап называется нулевым спринтом. Он также известен как начальный спринт или нулевой спринт.
Вопрос 48. Что такое Стори Поинт (Story Point)?
Стори Поинт (Story Point) – это единица измерения для оценки общих усилий, необходимых для реализации элемента бэклога продукта или любой другой работы. Есть несколько факторов, которые можно учитывать при расчете требуемых усилий: объем работы, сложность работы и любой риск, который может возникнуть в процессе работы.
Вопрос 49. Что такое диаграмма нарастания (Burn Up chart)?
Диаграмма нарастания используется в управлении проектами для отслеживания хода работ по проекту. Она показывает, сколько работ по проекту было выполнено, а также общий объем работ по проекту.
Вертикальная ось на диаграмме представляет собой общую работу и завершенную работу. Единицами измерения на этой оси могут быть стори поинты, рабочие часы или рабочие дни. Горизонтальная ось представляет собой время, в качестве которого могут выступать спринты (итерации), дни или недели.
На диаграмме хорошо виден эффект изменения объема.
Вопрос 50. Что такое диаграмма сгорания (Burn Down chart)?
Диаграмма сгорания используется в управлении проектами для отслеживания хода работ по проекту. Она показывает количество незавершенных работ по проекту. Вертикальная ось на диаграмме представляет собой оставшийся объем работы. Единицами измерения по этой оси могут быть стори поинты, рабочие часы или рабочие дни. Горизонтальная ось представляет собой время, которое измеряется в спринтах (итерациях).
На диаграмме эффект изменения объема отображается как отрицательный прогресс команды разработчиков, поскольку он не показывает общий объем работы.
Вопрос 51. Какие существуют типы диаграмм сгорания?
Существует четыре типа диаграмм сгорания:
- Диаграмма сгорания дефектов (Defect burn down chart)
- Диаграмма сгорания релиза (Release burn down chart)
- Диаграмма сгорания продукта (Product burn down chart)
- Диаграмма сгорания спринта (Sprint burn down chart)
Вопрос 52. Что такое диаграмма сгорания дефектов (Defect burn down chart)?
Диаграмма сгорания дефектов – это визуальное представление оставшейся работы по дефектам. Вертикальная ось этой диаграммы отображает оставшийся объем работы в бэклоге дефектов, который измеряется количеством дефектов. Горизонтальная ось показывает время, измеряемое в спринтах (итерациях).
Вопрос 53. Что представляет собой диаграмма сгорания релиза (Release burn down chart)?
Диаграмма сгорания релиза используется для отслеживания прогресса выпуска продукта. Она показывает оставшийся объем работы по релизу. Вертикальная ось на диаграмме представляет собой оставшийся объем работ в релизе. Единицами измерения на этой оси могут быть часы, дни или стори поинты. Горизонтальная ось представляет собой время, измеряемое в спринтах, то есть итерациях.
Вопрос 54. Что представляет собой диаграмма сгорания продукта (Product burn down chart)?
Диаграмма сгорания продукта – это визуальное отображение оставшихся работ в бэклоге продукта (списка задач). Вертикальная ось на диаграмме сгорания продукта представляет собой оставшийся объем работы в бэклоге продукта. Единицей измерения на этой оси являются стори поинты. Горизонтальная ось представляет собой время, измеряемое в спринтах, то есть итерациях.
Вопрос 55. Что представляет собой диаграмма сгорания спринта (Sprint burn down chart)?
Диаграмма сгорания спринта – это визуальное отображение оставшейся работы по конкретному спринту. Вертикальная ось на диаграмме сгорания спринта представляет собой оставшийся объем работы в спринте. Единицами измерения по этой оси могут быть стори поинты, рабочие часы или рабочие дни. Горизонтальная ось представляет собой время, измеряемое в днях.
Вопрос 56. Что такое спайк (spike)?
Термин “спайк” произошел из экстремального программирования (XP). Иногда во время выполнения какой-то задачи разработчики и члены команды сталкиваются с проблемой, решение которой им неизвестно. В таких случаях они могут провести исследование или эксперимент, чтобы найти подходящее решение. Это исследование и называется “спайк”.
Спайк – это эксперимент или вложение времени, которое помогает команде разработчиков оценить сложность задачи. Спайк добавляется в бэклог владельцем продукта. Спайки бывают двух типов – функциональные и технические. Например, если задача требует интеграции с программным обеспечением стороннего разработчика. Если разработчики никогда раньше не работали с этим ПО, им понадобится время, чтобы его изучить. Владелец продукта может выделить день или два на это исследование и создать спайк в бэклоге.
Вопрос 57. Что такое пуля-трассировщик (tracer bullet)?
Иногда пользовательские истории бывают сложными и трудно оцениваемыми, особенно если в них содержатся новые архитектурные элементы, которые неизвестны разработчикам. В таких случаях можно использовать пулю-трассировщик совместно со спайком для проверки решения.
С помощью пули-трассировщика одна из частей задачи будет реализована в виде готового решения с минимальным количеством кода, и на основе этого будет собрана обратная связь. Исходя из реализации одного компонента, можно продолжить разработку других частей истории.
Вопрос 58. Что такое скорость (Velocity) в Scrum?
Скорость – это ключевая метрика в Scrum, которая используется для измерения объема работы, который команда разработчиков может выполнить за один спринт. Скорость также может использоваться для оценки сроков выполнения будущих релизов.
Вопрос 59. Как измерить скорость (Velocity) в Scrum?
Существует два типа скорости – фактическая и ожидаемая.
Фактическая скорость рассчитывается по следующей формуле:
Фактическая скорость = Общее количество выполненных стори поинтов/ Количество спринтов
Ожидаемая скорость рассчитывается по следующей формуле
Ожидаемая скорость = Общее количество предполагаемых стори поинтов/ Количество спринтов
Вопрос 60. Что такое пользовательская история (User Story)?
Пользовательские истории – это простые описания, используемые для представления бизнес-требований с точки зрения конечного пользователя. Пользовательские истории легче понять по сравнению с обычными требованиями или сценариями использования.
Вопрос 61. Как расшифровывается аббревиатура “NVEST” в Scrum?
“INVEST” описывает критерии качества хорошей истории и расшифровывается следующим образом:
I (Independent) – пользовательская история должна быть независимой, чтобы не зависеть от других историй;
N (Negotiable) – в каждой истории должно быть место для переговоров;
V (Valuable) – история должна приносить пользу конечному пользователю;
E (Estimable) – история пользователя должна быть оцениваемой, чтобы можно было правильно спланировать спринт;
S (Small) – история должна быть небольшой, чтобы ее можно было завершить за 3-4 дня;
T (Testable) – история должна быть тестируемой, то есть включать критерии приемки.
Хорошая пользовательская история соответствует всем этим критериям. Если она не соответствует им, то команде следует переписать историю.
Вопрос 62. Назовите три компонента пользовательской истории.
Ниже перечислены три компонента (3C) пользовательской истории:
- Карточка (Card) – история пользователя в ее необработанном виде, записанная в физической форме на карточке (стикере). Стандартный формат пользовательской истории таков: “Как [тип пользователя], я хочу [цель], чтобы [какая-то причина]”.
- Беседа (Conversation) – обсуждение деталей карты между клиентами, владельцами продукта, тестировщиками и т. д.
- Подтверждение (Confirmation) – определение критериев приемки, чтобы команда могла убедиться, что история была успешно реализована.
Вопрос 63. Что такое эпик?
Эпик – это большая пользовательская история, которая может быть разделена на несколько маленьких историй. Один эпик может охватывать несколько спринтов.
Вопрос 64. Что такое задача в Scrum?
Задача – это техническая работа, которую команда разработчиков выполняет для того, чтобы завершить элемент бэклога продукта в установленные сроки.
Вопрос 65. Каковы основные роли в Scrum?
Ниже перечислены основные роли в Scrum:
- Владелец продукта (Product Owner) – отвечает за представление требований команде. Владелец продукта должен иметь четкое видение того, каким должен быть продукт, и эффективно доносить это видение до команды.
Он также управляет бэклогом продукта: создает, упорядочивает и обеспечивает прозрачность элементов бэклога. - Команда разработки (Development Team) – это разработчики, тестировщики и бизнес-аналитики. Команда разработчиков отвечает за предоставление качественного программного обеспечения в виде пригодного для использования инкремента в конце спринта. Команда должна быть самоорганизованной и кросс-функциональной. Важно отметить, что в Scrum нет никаких должностей для членов команды, кроме как разработчика, независимо от того, какие задачи он выполняет.
- Scrum-мастер (Scrum Master) – является лидером команды разработчиков. Он отвечает за то, чтобы команда разработчиков правильно выполняла задания спринта. Scrum-мастер – это тот, кто отвечает за управление спринтом.
Вопрос 66. Что вы понимаете под целью спринта?
Цель спринта – это задача, поставленная для конкретного спринта. Цель создается во время планирования спринта до его начала и содержит список задач бэклога продукта, которые должны быть выполнены для достижения определенной функциональности.
Вопрос 67. Что такое доска задач в Scrum?
Доска задач – это инструмент для отслеживания прогресса текущего спринта. Она визуально отображает бэклог спринта, где команда может видеть задачи, которые уже выполнены, находятся в работе и которые еще не начаты.
Вопрос 68. Что такое препятствие (impediment) в Scrum?
Препятствие – это то, что влияет на продуктивность команды и замедляет прогресс.
Вопрос 69. Можете ли вы привести несколько примеров препятствия?
В Scrum препятствиями могут быть:
- Технические проблемы
- Организационные проблемы
- Неквалифицированные члены команды
- Проблемы с заинтересованными сторонами
- Проблемы с инфраструктурой
- Стихийные бедствия
Вопрос 70. Что такое Scrum of Scrums?
Scrum of scrums – это Agile-методика, позволяющая увеличить количество ежедневных совещаний, когда над одним проектом работают большие команды. В этой технике группы делятся на Agile-команды по 5-10 человек. Каждая подгруппа или команда назначает “посла” от своей команды, который участвует в ежедневных встречах с другими командами.
Заключение
На этом мы завершаем список вопросов и ответов на собеседовании по Agile. Если у вас возникнут какие-либо вопросы или предложения, вы можете сообщить нам об этом в комментариях.
Перевод статьи «Top Agile Methodology Interview Questions You Must Prepare».