Top.Mail.Ru

Как использовать Agile и Scrum

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

Add author snippet

Содержание

Зачем внедрять гибкие технологии

Классический, или каскадный метод управления проектами предусматривает подготовку технического задания (часто довольно громоздкого), в котором должны быть учтены все детали, предусмотрены риски и рассчитаны затраты. Разработка начинается после обсуждения и согласования всех нюансов техзадания. Главный недостаток этой методики в том, что при ее использовании не всегда можно предугадать возможные риски, связанные как с бизнес-процессами, так и с человеческим фактором. Так, представители заказчика могут намеренно откладывать внедрение ПО, руководствуясь какими-то своими соображениями. Даже собрав все требования на этапе аналитики, нельзя быть уверенным в том, что заказчик не дополнит их новыми пунктами в процессе работы. Кроме того, разработчик ПО должен мгновенно реагировать на отзывы пользователей. Т. е. длительная подготовка здесь не работает, и нужен более гибкий подход к управлению проектом.

Классическая схема управления проектом

Преимущества методологии

Концепция Agile и построенный на ее идеях метод Scrum – это несколько иной взгляд на проблемы управления проектами. Он основан на итерациях, решении небольших задач с минимальным количеством функций, когда можно запустить ПО с базовым функционалом и постепенно его дополнять. Согласно принципам Agile, изменения требований приветствуются даже на поздних стадиях разработки. Такие изменения должны использоваться для повышения конкурентоспособности продукта. Главные плюсы этой гибкой системы управления:
  • не нужно составлять длинное ТЗ. Достаточно сформировать первоначальный список задач с учетом пожеланий заказчика, в который впоследствии могут вноситься изменения;

  • возможность запустить проект, даже если закончились бюджетные средства. ПО будет рабочим, но с ограниченным функционалом;

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

Начни с бэклога

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

Бэклог – список функций, которыми нужно наделить ПО

Внедряй спринты

Scrum создавался как технология, способная ускорить разработку и сделать ее более гибкой. Для реализации этой цели используются так называемые спринты – фиксированные отрезки времени длительностью от одной до четырех недель. Весь процесс разработки делится на определенное количество спринтов. На практике это выглядит следующим образом: команда берет в работу несколько задач из бэклога. Каждое задание разбивают на минимально возможные тикеты. Затем определяется время, необходимое для решения поставленных задач. В Scrum используются относительные величины временных периодов. Например, если на самую простую функцию у любого участника команды уйдет не более часа, то время выполнения других задач определяется относительно этого тикета: в 2, 3 или 5 раз дольше. Т. е. спринт можно рассматривать как небольшой релиз, позволяющий увидеть очередную работающую функцию ПО.

Распредели роли в команде

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

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

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

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

  • все владели кодировкой и понимали, как работает ПО;

  • в процессе работы над проектом не происходило изменений в составе коллектива;

  • была возможность пригласить дизайнеров или аналитиков по мере необходимости на короткие тикеты;

  • была предусмотрена возможность работать удаленно.

Контролируй процессы

Процесс Scrum

Лучший способ отслеживания и визуализации прогресса работы – использование диаграммы сгорания задач. На ней изображают две линии, одна из которых – запланированный график работ, другая – реальный. Сопоставляя эти линии, можно понять, требуются ли изменения в бэклоге, или можно работать в прежнем режиме. Для контроля эффективности команды разработчиков используют специальные Scrum-показатели:
  • Focus Factor – коэффициент, позволяющий увидеть, насколько реальное время работы отличается от запланированного. Т. е. фокус-фактор позволяет оценить степень собранности команды;

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

Организуй работу команды

В Scrum Agile сотрудник затрачивает минимум времени на отчетность. Достаточно 3–5 минут, чтобы доложить руководителю: что было сделано вчера, какой объем запланирован на сегодня, и что мешает выполнению задач. После этого специалист может продолжать заниматься проектом. Решение всех возникающих проблем – задача руководителя. Каждый спринт заканчивается ретроспективой, когда участники команды на общей встрече рассказывают о возникающих в ходе работы препятствиях и предлагают способы их преодоления. Руководитель выбирает наиболее продуктивные идеи и принимает решение об их использовании в следующем спринте. Организация рабочего процесса также должна быть гибкой. Можно, например, разбить день на части: шесть часов команда трудится по спринтам, два оставшиеся – занимается решением срочных и случайных вопросов. Первый спринт часто заканчивается спешкой из-за слишком оптимистичного отношения команды к дедлайнам, дальше процесс выравнивается.

Работа команды по спринтам

Демонстрируй проект

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

Изучи инструменты для контроля

Некоторым скрам-мастерам удобнее работать по старинке, составляя графики и таблицы на бумаге: каких-то ограничений здесь нет. Многим хорошо подходят таблицы в Google Docs. Т. е. старший специалист может организовать рабочую зону вручную или использовать для этого один из специальных сервисов, например:
  • Trello  – хороший выбор для небольших проектов, который легко внедряется в рабочий процесс без долгой адаптации участников команды. Сервис позволяет быстро оценивать прогресс по нескольким направлениям в режиме реального времени и на одном экране;

  • Scrumban – удобный для маленьких и средних проектов, с разными досками, вложенными задачами и подзадачами;

Инструмент для контроля маленьких и средних проектов

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

Удобный инструмент контроля проекта

Как начать использовать Agile и Scrum на проекте

Для практического применения Agile и Scrum необходимо:
  • научиться составлять и вести бэклог, вносить в него изменения и выделять наиболее приоритетные задачи;

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

  • сформировать по возможности команду с неизменным составом. Выделить из нее специалиста на роль скрам-мастера;

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

  • научиться правильно организовывать работу. Ежедневно интересоваться состоянием дел всех участников команды, проводить ретроспективу, планировать время на тикет с запасом. При необходимости – обучать «чайников» (заниматься коучингом и менторингом);

  • практиковать демонстрацию проекта после каждого спринта;

  • выбрать наиболее удобный для себя инструмент контроля.

Курсы в IMBA

При переходе с традиционной методологии на Agile важно понимать, что это прежде всего другой способ мышления, когда придется решать привычные проблемы новыми способами. Гибкий подход подталкивает к быстрой и изобретательной адаптации к изменениям. Agile – это не набор правил и предписаний, а реализация идеи «Проверь и приспособься». Именно быстрой и сравнительно безболезненной реакцией на изменения объясняется растущая популярность методологии среди компаний, которые стремятся сделать свои процессы более гибкими.
Хочешь стать частью команды, которая использует такую современную и интересную методологию? Тогда курсы по профессии Product-менеджер, Java- или Phyton-программист для тебя. Участников ждет множество теории и практики от ведущих экспертов. Не откладывай на завтра то, что может быть полезно уже сегодня. Измени свою жизнь к лучшему и выйди на новый уровень.