Терминология и определения Agile

Приемочное тестирование

Формальное тестирование, проводимое для определения того, удовлетворяет ли система своим критериям приемки, и чтобы позволить заказчику определить, принимать ли систему или нет.

Методология гибкой разработки программного обеспечения

В гибкой разработке программного обеспечения большое внимание уделяется сотрудничеству, быстрому реагированию на изменения и сокращению потерь на протяжении всего цикла разработки. Гибкая разработка программного обеспечения направлена ​​на то, чтобы код оставался простым, часто тестировался и предоставлял функциональные части приложения, как только они были готовы.

Важный принцип гибкости - доставлять (потенциально) готовое к выпуску программное обеспечение после каждой итерации.

Обработка бэклога



Обработка бэклога - это процесс добавления новых пользовательских историй в бэклог, переориентации существующих историй по мере необходимости, создания оценок и деконструкции больших историй в более мелкие истории или задачи. Вместо того, чтобы обрабатывать бэклог время от времени на протяжении итерации, команда может проводить сеанс обработки бэклога один раз за итерацию.

Нарушение сборки

Когда разработчик добавляет изменения в репозиторий исходного кода, которые приводят к сбою последующего процесса сборки, разработчик «нарушил сборку».

Это должно быть обязательство команды, чтобы избежать поломки сборки, поскольку это замедлит разработку и может стать узким местом для других разработчиков. Когда сборка прерывается, команда разработчиков должна немедленно принять меры, чтобы исправить сборку.

Сборка прерывается, если процесс сборки не может быть успешно завершен по любому количеству причин, включая (но не ограничиваясь) сбой компиляции, компиляцию с недопустимыми предупреждениями или сбой любого количества автоматических тестов.

Процесс сборки / конвейер сборки

Процесс сборки или конвейер сборки - это процесс, в котором история идет от начала до производства, обычно проходя различные этапы и проверки для обеспечения качества.

Конвейер сборки определяет рабочий процесс доставки программного обеспечения и то, что происходит на каждом этапе.

Диаграмма выгорания

График, отображающий общее количество оставшихся часов в день. Он показывает позицию команды в отношении выполнения задач, поставленных перед спринтом. Ось X представляет дни спринта, а ось Y - оставшиеся усилия.

Курица

В схватке «цыпленок» - это жаргонное слово, используемое для обозначения того, кто заинтересован в проекте, но не несет ответственности за работу над задачей в активной итерации. Они могут наблюдать за собраниями команд, но не могут голосовать или разговаривать.

Непрерывная интеграция

Непрерывная интеграция (CI) - это практика экстремального программирования (XP), при которой члены группы доставки часто объединяют свою работу (например, ежечасно или хотя бы раз в день).

Каждая интеграция проверяется автоматизированной сборкой, которая также выполняет тестирование для быстрого и автоматического обнаружения любых ошибок интеграции. Основная цель CI - избежать того, что обычно называют интеграцией или адом слияния.

Межфункциональная команда

Команда состоит из членов со всеми функциональными навыками и специальностями (часто называемыми разносторонними), необходимыми для выполнения проекта от начала до конца.

Клиент

Заказчик обычно определяется как получатель или пользователь продукта. Заказчики могут быть внутренними или внешними по отношению к организации. Заказчик может быть одним человеком, отделом или большой группой.

Внутренних клиентов иногда называют «бизнесом».

Ежедневный стендап

Ежедневное собрание команды обычно проводится в первую очередь утром, чтобы предоставить членам команды обновленную информацию о статусе. Встречи обычно ограничены по времени до 5-15 минут и проводятся стоя, чтобы напомнить людям, что встречи должны быть краткими и по существу.

Определение Done (DoD)

Критерии признания работы выполненной. За определение этих критериев отвечает вся команда, включая бизнес. Как правило, существует три уровня «Готово» (также известное как «Готово-Готово-Готово»):

  • Готово: разработан, работает на компьютере разработчика
  • Готово: проверено запуском модульных тестов, проверкой кода и т. Д.
  • Готово: подтверждено как качество поставки с помощью функциональных тестов, обзоров и т. Д.

Точные критерии того, что составляет «Готово», варьируются в зависимости от конкретных потребностей различных организаций и инициатив.

Эпос

Очень большая пользовательская история, которая в конечном итоге разбивается на более мелкие истории. Эпики часто используются в качестве заполнителей для новых идей и связанных историй, которые будут развиваться в последующих спринтах.

Эпические истории помогают командам Agile-разработки эффективно управлять и обрабатывать свой портфель продуктов.

Оценка

Процесс согласования размера историй или задач в бэклоге продукта. В гибких проектах оценка выполняется командой, ответственной за выполнение работы, обычно с использованием игры планирования или покера планирования.

Экстремальное программирование

Методология гибкой разработки программного обеспечения, предназначенная для повышения качества программного обеспечения и его способности реагировать на меняющиеся требования клиентов.

XP выступает за частые «выпуски» в короткие циклы разработки, что предназначено для повышения производительности и введения контрольных точек, в которых могут быть приняты новые требования клиентов.

Другие элементы экстремального программирования включают в себя: парное программирование, обширные обзоры кода, модульное тестирование, непрерывную интеграцию и многие другие.

Характерная черта

Связанная бизнес-функция или атрибут программного продукта или системы. Функции обычно включают в себя множество подробных (единичных) требований. Одна функция обычно реализуется через множество историй.

Функции могут быть функциональными или нефункциональными; они обеспечивают основу для организации рассказов.

Последовательность Фибоначчи

Последовательность чисел, в которой следующее число получается путем сложения двух предыдущих (например, 1, 2, 3, 5, 8, 13, 21, 34…). Последовательность используется для определения размера историй в методах гибкой оценки, таких как планирование в покере.

Препятствие

Все, что мешает члену команды выполнять работу максимально эффективно, является препятствием. Каждый член команды имеет возможность объявить о препятствиях во время ежедневных встреч.

Задача ScrumMaster - как можно скорее устранить препятствия, чтобы команда могла продолжать работать.

Итерация

Период (продолжительностью от 1 недели до 2 месяцев), в течение которого группа Agile-разработки создает приращение завершенного программного обеспечения. Вся система фазы жизненного цикла (требования, дизайн, код и тестирование) должны быть выполнены во время итерации, а затем продемонстрированы, чтобы итерация была принята как успешно завершенная.

В начале итерации бизнес или владелец продукта определяет следующий (с наивысшим приоритетом) фрагмент работы, который должна выполнить команда. Затем группа разработчиков оценивает уровень усилий и обязуется завершить часть работы во время итерации.

Канбан

Канбан - это инструмент, созданный на основе бережливого производства и связанный с отраслью гибких практик, которая широко называется бережливой разработкой программного обеспечения. Канбан ограничивает количество незавершенных работ, которое может выполняться одновременно.

Основное различие между Kanban и Scrum заключается в том, что Scrum ограничивает незавершенную работу с помощью спринтов, а Kanban ограничивает незавершенную работу, ограничивая объем работы, который может выполняться за один раз (например, N задач или N историй).

Бережливая разработка программного обеспечения

Бережливая разработка программного обеспечения или просто бережливое производство ориентирована на сокращение потерь и оптимизацию потока создания ценности программного обеспечения.

Минимально жизнеспособный продукт (MVP)

Наименьший рабочий продукт, который может быть построен, протестирован и доставлен за определенное время, который представляет ценность для пользователей.

Парное программирование

Метод гибкой разработки программного обеспечения, при котором два программиста работают вместе на одной рабочей станции. Один набирает код, а другой просматривает каждую строку кода по мере того, как она набирается. Человек, набирающий текст, называется драйвером. а человека, просматривающего код, называют наблюдателем или навигатором. Два программиста часто меняются ролями.

Свинья

Кто-то, кто отвечает за выполнение задачи на активной итерации. Это противоположно Цыпленку. Свиньи активно участвуют в проекте.

Планирование покера

Planning Poker - это основанный на консенсусе метод оценки, который в основном используется для оценки усилий или относительного размера задач при разработке программного обеспечения. Команда использует серию Фибоначчи или размер футболок для оценки историй во время планирования игры в покер.

Продукт

В широком смысле продукт относится к набору функций, которые интегрированы и упакованы в выпуски программного обеспечения, которые предлагают ценность для клиента или рынка.

Владелец продукта

Владелец продукта - одна из ключевых ролей в Scrum. В обязанности Владельца продукта входит:

  • Формирование, развитие и распространение видения продукта
  • Создание и руководство командой разработчиков для обеспечения максимальной ценности для клиента.
  • Мониторинг проекта относительно его целей по рентабельности инвестиций и инвестиционного видения
  • Принятие решения о том, когда создавать официальный релиз

Резерв продукта

Бэклог продукта похож на список желаемых функций, которые бизнес хочет предоставить в долгосрочной перспективе. Это сборник историй и задач, над которыми команда будет работать в какой-то момент в будущем.

Владелец продукта ведет этот список отставания по продукту в соответствии с бизнес-приоритетами и потребностями. Элементы невыполненной работы должны отражать план развития бизнеса.

Рефакторинг

Изменение существующего программного кода с целью улучшения общего дизайна. Рефакторинг обычно не меняет наблюдаемого поведения программного обеспечения; улучшает его внутреннюю структуру.

План выпуска

План выпуска - это график выпуска программного обеспечения в производство. Типичные планы выпуска включают ключевые функции, которые должны быть предоставлены, а также соответствующие даты выпуска.

Ретроспектива

Встреча с ограничением по времени, проводимая в конце спринта, на которой команда изучает свои процессы, чтобы определить, что удалось, а что можно улучшить. Ретроспектива - ключ к постоянному совершенствованию.

Положительным результатом ретроспективы является определение одного или двух высокоприоритетных элементов действий, над которыми команда хочет работать в следующей итерации или выпуске.

Scrum

Scrum - это среда для разработки сложных программных продуктов в итеративном и инкрементном режиме и наиболее широко признанная среда Agile.

Скрам состоит из серии коротких итераций, называемых спринтами, каждая из которых заканчивается доставкой части рабочего программного обеспечения.

Скрам Команда

Скрам-команда - это кросс-функциональная и самоорганизующаяся группа, которая отвечает за доставку программного обеспечения.

В команду scrum входят люди разного уровня подготовки, которые понимают требования клиентов и проводят разработку, кодирование и тестирование программного обеспечения. Также могут быть включены дополнительные навыки (например, дизайн пользовательского интерфейса, удобство использования и т. Д.).

Команда Scrum несет ответственность за все рабочие обязательства и результаты.

Скраммастер

Скрам-мастер отвечает за поддержание процесса Скрама и общее состояние команды. Скрам-мастер гарантирует, что команда полностью функциональна и продуктивна, устраняя любые препятствия, которые могут препятствовать ее прогрессу. ScrumMaster также организует церемонии Scrum.

Шип

История или задача, направленные на ответ на вопрос или сбор информации, а не на реализацию функций продукта, пользовательских историй или требований.

Иногда создается пользовательская история, которую невозможно оценить, пока команда разработчиков не выполнит некоторую реальную работу по решению технического вопроса или проблемы дизайна. Решение состоит в том, чтобы создать «всплеск», то есть историю, цель которой - дать ответ или решение.

Спринт

При разработке продукта спринт - это установленный период времени, в течение которого конкретная работа должна быть завершена и подготовлена ​​к рассмотрению. Типичная продолжительность спринта обычно составляет 2 недели и обычно не превышает 4 недель.

Бэклог спринта

Список функций, пользовательских историй или задач, которые извлекаются из журнала отставания продукта для рассмотрения для завершения во время предстоящего спринта. Функции бэклога продукта и пользовательские истории разбиты на задачи, чтобы сформировать бэклог спринта во время собрания по планированию спринта.

История Ухода

В сеансах обработки историй детали пользовательских историй конкретизируются. Критерии приемки написаны и разработаны. Рассказы также оцениваются на этом этапе.

Цель этого занятия - убедиться, что каждый, кто участвует в разработке и тестировании историй, разделяет общее понимание контекста историй до того, как приступить к разработке историй.

Сессии по обработке историй обычно проводятся в середине следующего спринта, чтобы команда знала о рабочей нагрузке для следующего спринта.

Участниками являются scrum-команда, scrum-мастер и product owner.

Планирование спринта

Сессии по планированию спринта проводятся непосредственно перед началом нового спринта. На этом занятии команда определяет задачи, которые необходимо выполнить, и решает, сколько очков истории они могут набрать для предстоящего спринта.

Перед сессиями планирования спринта истории должны быть разработаны и оценены во время сессий обработки историй, чтобы не тратить время зря при планировании спринта.

Участники - Скрам-мастер и Скрам-команда.

История пользователя

Пользовательская история (также известная как история) может рассматриваться как требование, функция, имеющая определенную ценность для бизнеса.

Истории описывают работу, которую необходимо выполнить, чтобы реализовать функцию продукта. Истории - это основная единица общения, планирования и переговоров между командой Scrum, владельцами бизнеса и владельцем продукта.

Истории состоят из следующих элементов:

  • Описание, обычно в деловых терминах
  • Размер, для приблизительной оценки, обычно выражается в сюжетных пунктах (например, 1, 2, 3, 5).
  • Один или несколько критериев приемлемости с кратким описанием того, как история будет проверяться.

Задача

Задачи - это описание фактической работы, которую выполняет человек или пара, чтобы завершить рассказ. Это управляемые, выполнимые и отслеживаемые единицы работы. Обычно в истории есть несколько задач.

Технический долг

Термин, придуманный Уорд Каннингем описать обязательства, которые берет на себя организация, занимающаяся разработкой программного обеспечения, когда она выбирает подход к проектированию или созданию, который целесообразен в краткосрочной перспективе, но увеличивает сложность и является более дорогостоящим в долгосрочной перспективе.

Размер футболки

Метод оценки работы, необходимой для завершения рассказа в размерах футболок, то есть малых (S), средних (M), больших (L) или X-Large (XL).

Timebox

Временной ящик - это период времени фиксированной длины, выделенный для достижения некоторой цели. В гибкой разработке итерации и спринты являются примерами временных рамок, которые ограничивают незавершенную работу и поэтапный прогресс.

Скорость

Скорость измеряет, сколько работы команда может выполнить за итерацию. Скорость часто измеряется рассказами или сюжетными точками. Скорость также может измерять задачи в часах или эквивалентных единицах.

Скорость используется для измерения того, сколько времени потребуется конкретной команде для достижения будущих результатов, путем экстраполяции на основе ее предыдущих результатов.

Работа в процессе

Любая незавершенная работа, которая уже повлекла за собой капитальные затраты для организации. Любое программное обеспечение, которое было разработано, но не развернуто в производственной среде, можно считать незавершенным.