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

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

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

Модель водопада

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

Итеративная инкрементальная модель

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

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

Agile Development

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

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

Гибкий манифест

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

Магический манифест выглядит следующим образом:

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

  • Физические лица и взаимодействия над процессами и инструментами
  • Рабочее программное обеспечение по полной документации
  • Сотрудничество с клиентами по заключению договоров
  • Реагирование на изменение в соответствии с планом

Определение элементов гибкого манифеста

Элементы манифеста слева можно описать следующим образом:

Предмет манифеста Описание
Физические лица и взаимодействия Важное значение должно быть уделено:
  • самоорганизация и самомотивация членов команды
  • непрерывное взаимодействие для работы, разъяснения, информация среди членов команды
Рабочее программное обеспечение Поставка рабочего программного обеспечения через короткие промежутки времени помогает получить доверие и уверенность клиентов в команде.
Сотрудничество с клиентами Постоянное участие клиента в команде разработчиков обеспечивает связь необходимых изменений.
Ответ на изменение Сосредоточьтесь на быстром реагировании на предлагаемые изменения, что стало возможным с короткими итерациями продолжительности.

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

Основные принципы гибкой

Agile Manifesto основывается на следующих принципах:

Принцип Описание
Удовлетворение и доставка Удовлетворенность клиентов через раннее и непрерывное рабочее программное обеспечение.
Приветственное изменение Приветствуем меняющиеся требования, даже на более поздних этапах разработки.
Доставить часто Доставляйте рабочее программное обеспечение часто (еженедельно, а не ежемесячно).
Связь - это ключ Обеспечьте тесную связь разработчиков с деловыми людьми на ежедневной основе.
Экология и доверие Создавайте проекты вокруг мотивированных людей.Дайте им необходимую поддержку и верьте им.
Лицевая связь Поощряйте личную беседу, чтобы обеспечить эффективную и эффективную связь.
Программное обеспечение как меру прогресса Рабочее программное обеспечение является основным показателем прогресса.
Устойчивое развитие Содействовать устойчивому развитию с возможностью поддерживать постоянный темп развития.
Внимание к деталям Постоянное внимание к техническому совершенству и хорошему дизайну.
Сила меньше Простота важна.
Самоорганизующиеся команды Регулярное внимание команды к эффективному изменению ситуации.

Гибкие методологии

Методология разработки динамической системы (DSDM)

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

Scrum

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

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

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

Тестируемое развитие (TDD)

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

Опираться

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

Kanban

Это система для улучшения и поддержания высокого уровня производства. Канбан - это один из методов, благодаря которому «Just-In-Time» (JIT), стратегия, которую организации используют для контроля затрат на инвентаризацию, достигается. Канбан стал эффективным инструментом поддержки функционирования всей системы производства, и это оказалось отличным способом для улучшения.