Scrum - Обзор

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

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

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

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

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

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

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

Гибкая разработка

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

Ранние реализации гибких методов включают Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), адаптивную разработку программного обеспечения, разработку на основе функций (1997) и метод разработки динамических систем (DSDM) (1995). Теперь они все вместе именуютсяagile methodologies, после того, как в 2001 году был опубликован Agile Manifesto.

Agile манифест

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

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

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

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

То есть, хотя предметы справа имеют ценность, мы ценим предметы слева больше ".

… Манифест для гибкой разработки программного обеспечения, авторы: Бек, Кент и др. (2001)

Определение пунктов манифеста Agile

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

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

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

Ключевые принципы гибкой разработки

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

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

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

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

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

Scrum

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

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

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

Разработка через тестирование (TDD)

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

Опираться

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

Канбан

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

Заключение

За последние 10 лет количество историй успеха, в которых компании значительно улучшили успех и производительность своих групп ИТ-разработчиков и проектов, с помощью гибких методов постоянно растет. Это привело к тому, что гибкая разработка стала широко применяться в различных отраслях, включая СМИ и технологии, крупные корпорации и даже правительство.

Agile Framework помогает командам извлечь выгоду из:

  • Более быстрое время доставки / выхода на рынок
  • Уменьшите неопределенность и риск
  • Повышение рентабельности инвестиций (ROI) за счет концентрации внимания на ценности для клиентов

Среди этих различных гибких методологий Scrum оказался чрезвычайно успешным во всем мире за последние 20 лет.