В чем разница между Scrum, Kanban и XP?

В чем разница между Scrum, Kanban и XP?

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

В методологии Agile проекты разбиваются на куски или небольшие фрагменты пользовательской функциональности, называемые пользовательскими историями. Владелец продукта несет ответственность за приоритезацию этих пользовательских историй, которые затем непрерывно доставляются короткими двухнедельными циклами под названием Sprints(спринты) или итерациями.

В этой статье мы рассмотрим различия между Scrum, Kanban и XP.

На высоком уровне есть три варианта гибкой методологии:

Scrum

Процесс Scrum

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

Канбан

Доска канбан

Kanban был первой разработкой инженеров Toyota, а слово Kanban в японском языке означает «визуальный сигнал» или «карта». Канбан может адаптироваться к проектам программного обеспечения и не-программного обеспечения, а его принципы:

  • Визуализирование рабочего процесса.
  • Это можно сделать, используя стену карты или планшет Канбан, со столбцами на доске, представляющими состояния или этапы рабочего процесса, и карты, представляющие рабочие элементы.
  • Ограничение выполняемыой работы.
  • Ограничение незавершенного производства является краеугольным камнем Канбана. Например, если команда работает сразу по пяти позициям и не добивается прогресса, то мы должны сократить это число до двух или трех, чтобы можно было управлять работой и прогрессом. Выберите наиболее важные, наиболее ценные рабочие элементы. Всегда работайте над следующей самой важной вещью.
  • Управление потоком.
  • Весь смысл внедрения системы Канбана заключается в том, чтобы добиться позитивных изменений. Прежде чем вы сможете создать это изменение, вы должны знать, что нужно изменить. Необходимо отслеживать, измерять и сообщать поток работы через каждое состояние или шаг, чтобы оценить положительные или отрицательные эффекты пошаговых и эволюционных изменений.
  • Ясность процесса.
  • Обеспечение четкого понимание механизма процесса для достижения рационального, объективного обсуждения вопросов и упрощения консенсуса в отношении предложений по улучшению. Примером политики, которую вы можете сделать явной, является определение «сделано». Фактически, вы можете иметь определение «сделано» для каждого шага вашего рабочего процесса, то есть перед тем, как элемент сможет быть готов к движению вперед, он должен соответствовать определенным критериям.
  • Улучшение совместной работы.

Чтобы по-настоящему использовать Kanban, команды должны сотрудничать. Мы не должны забывать, что Kanban подобен любому гибкому методу. Стремитесь к постоянному сотрудничеству и постоянному совершенствованию. Если вы не постоянно совершенствуетесь, но делаете все другие части метода Канбана, вы упускаете суть.

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

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

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

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

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

1. Процесс планирования работы над проектом

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

2. Малые релизы

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

3. Общая методология

Все члены команды XP используют общие имена и описания для руководства разработкой и общения на общих условиях.

4. Простой дизайн

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

5. Тестирование

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

6. Рефакторинг

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

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

Весь код написан двумя программистами, работающими на одном ПК.

8. Коллективная собственность

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

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

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

10. 40-часовая неделя

Команда XP не работает сверхурочно, чтобы команда оставалась хорошо отдохнувшей, внимательной и эффективной.

11. Клиент в доступности

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

12. Стандарт кодирования

Все программисты пишут код одинаково. Это позволяет им работать в парах и совместно использовать код.

Тем временем, хочу напомнить, что эффективный тестировщик очень ценен на рынке труда, поэтому стать успешным в этой сфере Вам помогут наши курсы тестировщиков.