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

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

Определение

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

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

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

Команда при применении Скрам методологии самоорганизуется – она будет самостоятельно решать, как выполнять работу и какие именно методы применять на практике. Если компания планирует внедрить Scrum, необходимо заложить время, отведенное на обучение каждого члена команды.

Концепция также предусматривает:

  • открытость;
  • улучшение процессов на постоянной основе;
  • прозрачность.

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

Историческая справка

История методики Scrum начинается в 1980-х годах, когда ученые из Японии проводили исследования в сфере автомобильного производства. Они выяснили, что некоторые автопроизводители (Honda, Toyota) добиваются успеха за счет возможности быстрой адаптации к изменениям на рынке. Это позволяло компаниям быстро выпускать новые модели авто для потребителей.

Японские ученые пришли к выводу, что такой успех связан с применением совершенно новых методологий управления проектами и разработки продуктов. Таких, которые дают возможность быстро адаптироваться к стремительно меняющимся рыночным условиям. Соответствующий подход получил название «нового знания производства» и был описан в книге The New New Product Development Game».

В конце 1980-х Джефф Сазерленд, который на тот момент работал в компании США Easel Corporation, тоже начал искать способы улучшения процедуры разработки программного обеспечения. Он вдохновился идеями Нонаки и Хиротаки, стал применять их труды в своей работе. Так появилась новая концепция управления проектами, которая получила название «Скрам», использующая теорию сложных систем и гибкое управление.

Кен Швабер в 1995 году встретился с Джеффом Сазерлендом и заинтересовался его методологией. Он продолжил работать на Scrum, уточнил и дополнил его принципы и правила, описав все это в книге The Scrum Guide. Это печатное издание вышло в свет в 2010 году.

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

Ключевые задачи и цели

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

Основными задачами Scrum можно назвать:

  1. Управление проектом. Подход обеспечивает структурированное управление проектом. С его помощью можно манипулировать процессом разработки конечного продукта и тщательно следить за достигнутым прогрессом.
  2. Коммуникацию. Методология поддерживает взаимодействие между всеми сторонами проекта. Это благоприятно сказывается на скорости и эффективности решения проблем и достижении общих целей по итогу.
  3. Прозрачность. Scrum позволит добиться прозрачности разработки. Концепция дает возможность всем участникам посмотреть, что происходит с продуктом «здесь и сейчас», какие задачи уже выполнены, а какие – только в процессе реализации.
  4. Адаптивность. Команда сможет быстро реагировать на изменения и адаптироваться под новые условия. Соответствующая особенность имеет особое значение на современном бизнес-рынке, где постоянно происходит что-нибудь новое.
  5. Улучшение качества. Методология позволяет команде все время совершенствовать качество за счет регулярного обмена мнениями и обратной связи. Сюда же можно отнести регулярное внедрение улучшений и оптимизацию процессов.
  6. Управление рисками. Рассматриваемый метод ставит перед собой задачу обеспечения структурированного подхода к управлению рисками, позволяя команде определить и минимизировать их на ранних этапах разработки.

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

  • человек важнее инструментов;
  • взаимодействие с заказчиками важнее контактов;
  • качество итогового продукта важнее документации;
  • готовность вносить изменения в ранее продуманный план действий.

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

Принципы

В Скрам и других agile-методологиях соблюдаются следующие принципы:

  1. Заказчик (владелец продукта) удовлетворяется за счет ранней и непрерывной поставки эффективного и ценного программного обеспечения.
  2. Изменения требований к итоговому продукту приветствуются, даже если они вносятся на поздних стадиях разработки.
  3. Работающие модели программного обеспечения поставляются регулярно. Здесь предпочтение отдается коротким срокам выполнения.
  4. Бизнес-сотрудники и команда разработчиков должны работать совместно. Это происходит на протяжении всего жизненного цикла исходного проекта.
  5. Программные продукты создаются вокруг мотивированных людей.
  6. Наиболее эффективным способом представления и передачи информации считаются личные разговоры. Обсуждениям в agile-методологиях отводится центральное место.
  7. Ключевым критерием оценки достигнутого прогресса является работающее программное обеспечение.
  8. За счет agile-процессов удается добиваться устойчивого и качественного развития не только конкретного проекта, но и всей команды.
  9. Улучшение гибкости достигается за счет привлечения внимания к техническому совершенству и хорошему дизайну конечного продукта.
  10. Максимизация количества работы, которую не нужно делать, достигается за счет простоты. В рассматриваемой концепции каждый обсуждаемый этап дальнейшего развития конечного продукта должен быть четким и понятным.
  11. В основе методологии заложена самоорганизация как команды, так и каждого ее члена. Сюда же относится способность группы людей, трудящихся над проектом, адаптироваться к новым условиям.
  12. Концепции agile подразумевают регулярную оценку и анализ процессов разработки и конечного продукта.

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

Отличие от Agile и Kanban

Kanban, Scrum и Agile – это три метода, позволяющие управлять различными проектами. Чтобы лучше понимать разнице между ними, необходимо помнить о ключевых особенностях каждой концепции.

Для Скрам характерны следующие моменты:

  1. Так называется гибкая методология управления проектами, которая разработана для создания ПО и иных продуктов.
  2. Предусматривается явная структура, включая роли, артефакты и практики.
  3. Работа будет организовываться в виде небольших спринтов (до месяца общей продолжительностью), в которых команда выполняет задачи из Sprint Backlog (списка поставленных целей).
  4. Концепция подчеркивает коллективную ответственность и повышает доверие между членами имеющейся команды.

Kanban предусматривает такие черты и нюансы:

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

Для Agile актуальны следующие характеристики:

  1. Концепция разработки программного обеспечения, которая подчеркивает сотрудничество и быстрые реакции на изменения.
  2. Agile – это не конкретная идея. Методология представляет собой некоторый набор принципов и ценностей, включая удовлетворение клиента, сотрудничество с заказчиком, работающий продукт, а также ответ на изменения и так далее.
  3. Данный подход подчеркивает гибкость и способность быстро адаптироваться к изменяющимся окружающим условиям.

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

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

Этапы работы

Методика Scrum включает в себя следующие этапы работы (реализации):

  1. Планирование. В самом начале каждого спринта команда и владелец продукта (или его представитель) планируют цели, время, объем предстоящих работ, а также ожидаемые от спринта результаты.
  2. Итерация (или спринт). Работа в рассматриваемой методологии базируется на итерациях, которые называются спринтами. Они длятся от 1 до 4 недель. Команда разработчиков в процессе всего спринта выполняет свои задачи, совершенствуя исходный проект.
  3. Постоянное обновление. Команда все время занимается обновлением исходного продукта за счет новых функциональных возможностей, исправления обнаруженных ошибок и других нововведений.
  4. Проверка. Каждый спринт заканчивается проверкой полученного продукта. Команда представляет достигнутый результат заказчику/владельцу проекта.
  5. Ретроспектива. Необходима для того, чтобы команда могла провести анализ выполненной работы, выявить проблемы и подобрать методы оптимизации дальнейших действий.
  6. Планирование следующего спринта. Каждый спринт заканчивается не только проверкой, но и планированием нового этапа разработки. Команда должна будет определить новые сроки, цели и объем предстоящих работ.

Планирование спринта в управлении проектами Scrum состоит из нескольких шагов:

  1. Предварительная оценка предстоящего объема работ.
  2. Определение целей. Здесь участие принимает не только команда разработчиков, но и владелец продукта.
  3. Создание плана спринта. На этом этапе команда программистов определяет, какие задачи будут выполняться в рамках спринта, как это произойдет, кто будет нести ответственность за каждый пункт.
  4. Оценка рисков.
  5. Создание бэклога спринта. Команда разработчиков создает список задач (бэклог) для выполнения в рамках спринта.
  6. Определение сроков спринта.
  7. Завершение планирования. На этом этапе владелец продукта окончательно согласовывает с командой план спринта и договаривается о дальнейших шагах.

Результатом станет только готовый к использованию продукт или его версия.

Ключевые элементы

Система Scrum включает в себя 10 ключевых элементов. К ним относят:

  1. Команду разработчиков. Это группа специалистов, которая будет трудиться над программным обеспечением. Называется Development Team.
  2. Владелец продукта. Представитель заказчика, который несет ответственность за расставление приоритетов задач, определение ключевых требований, мгновенное принятие решений.
  3. Скрам-мастер – человек, несущий ответственность за поддержание процесса работы команды в соответствие с принципами Scrum. Он следит за устранением препятствий и обеспечением эффективной концепции взаимодействия между членами команды.
  4. Журнал продукта – список задач и требований к проекту, который поддерживается и управляется владельцем.
  5. Журнал спринта – список задач, выбранных командой разработчиков для выполнения на текущем этапе. Спринты и итерации могут повторяться.
  6. Спринт – промежуток времени, отведенный для работы над единой задачей в Scrum.
  7. Планирование спринта – встреча, во время которой команда и владелец продукта определяют объем работы и цели на текущий спринт.
  8. Ретроспектива. Встреча, на которой анализируются полученные результаты от последнего спринта. Команда будет искать способы улучшения процесса работы в будущем.
  9. Обзор спринта. Во время него заказчику или владельцу итогового продукта демонстрируются достигнутые результаты в рамках последнего спринта.
  10. Инкремент продукта. Это – новая функциональность, добавленная в продукт в процессе работы команды во время спринта.

Без всего этого работа по Scrum невозможна.

Состав команды

В Scrum существуют разнообразные роли. Они распределяются между участниками команды:

  • разработчики;
  • владелец продукта;
  • Scrum-мастер.

Разработчики – это специалисты, которые совместно трудятся над программным обеспечением. Сюда можно отнести тестировщиков, программистов, дизайнеров и других работников IT. Разработчики в Scrum:

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

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

В его обязанности входят такие задачи:

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

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

В его обязанности входят:

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

В Scrum могут встречаться другие члены – эксперты по тем или иным технологиям, product-менеджеры, аналитики.

Преимущества и недостатки

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

К преимуществам Scrum относят:

  1. Гибкость и адаптивность.
  2. Улучшение качества итогового продукта. Связано это с тем, что разработчики могут сосредоточиться на создании высококачественного проекта при помощи регулярных ретроспектив и обзоров.
  3. Улучшение коммуникации между специалистами.
  4. Развитие всей группы разработчиков. Каждый ее участник сможет проявить себя, а также высказаться и выслушать коллег.
  5. Быстрый запуск программного обеспечения на рынок.

Недостатки у этой концепции следующие:

  1. Сложная реализация – требуется хорошая координация и эмуляция работы группы.
  2. Низкая эффективность там, где нужен строгий контроль за бюджетом и сроком сдачи продукта.
  3. Высокая степень зависимости от команды.
  4. Небольшое внимание, уделяемое документации.
  5. Необходимость поддержки руководства. Если руководитель не готов поддерживать, концепт может оказаться неэффективным.

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

Интересует управление проектами? Возможно, вам будут интересны следующие курсы в Otus:

  1. «Product Manager IT-проектов».
  2. «Senior Product Manager».