Scrum – методология управления проектами, которую используют не только IT-компании, например IBM и Spotify, но и издания The New York Times, The Guardian и другие. Она применяется в финансовых, юридических и консалтинговых компаниях, в сфере образования, страхования, на производствах и в органах государственного управления.
Редакция MC.today разобралась, что такое Scrum, как это работает и в чем его плюсы и минусы.
Содержание
- Что такое scrum
- Преимущества и недостатки методологии scrum
- История методологии
- Отличия scrum от других методологий
- Scrum
- Kanban
- Extreme Programming (XP)
- Feature-Driven Development (FDD)
- Dynamic Systems Development Method (DSDM)
- Lean
- Waterfall
- Основы работы по scrum
- Состав scrum-команды
- Developers/разработчики
- Product Owner/владелец продукта
- Scrum Master/scrum-мастер
- Процесс scrum
- Какие известные компании применяют scrum
- Вывод
Что такое scrum
Продуктом может быть что-то физическое, например, новая модель телефона, цифровое – программа, электронная книга, услуга – консультирование по финансам. Еще продуктом может быть идея, к примеру, запатентованный алгоритм выполнения какой-то работы.
Методологию scrum разработали так, чтобы она соответствовала agile-манифесту англ. agile – быстрый, гибкий, адаптивный. – Прим. ред.. Манифест гибкой разработки программного обеспечения приняла в 2001 году группа из 17 независимых американских ученых, программистов и разработчиков.
Agile-манифест утвердил принципы разработки программного обеспечения. Вот главные из них:
- заказчик и его потребности – на первом месте;
- изменение в проекте, даже на последних стадиях реализации – это хорошо, а не плохо;
- разработчики и владелец продукта тесно сотрудничают, лично встречаются и ежедневно обсуждают текущие задачи;
- над проектом работают мотивированные опытные сотрудники;
- прямое общение внутри команды и с клиентом – самое главное для успешного выполнения проекта;
- команда разработчиков постоянно ищет способы, как повысить эффективность своей работы, как качественно и технически правильно выполнить проект.
Есть несколько методологий управления, которые соответствуют Agile Manifesto. Вот самые распространенные:
- Extreme Programming;
- Scrum;
- Feature-Driven Development;
- Dynamic Systems Development Method и другие.
Преимущества и недостатки методологии scrum
Scrum – это гибкая система управления проектом, в которой на первое место ставят интересы клиента. В ней нужно поэтапно выполнять проект, при этом ответственность за каждый этап несет вся команда.
Преимущества методологии scrum:
- Гибкость. Эту методологию применяют тогда, когда продукт создают в условиях, которые быстро меняются. Например, если в процессе разработки программы нужно что-то изменить, но это не должно повлиять на ее конечный вид и функции.
- Быстрая окупаемость. За счет того, что продукт создается точно в срок, заказчик может выйти с ним на рынок в сжатые сроки и продукт начнет продаваться.
- Упор на инновации и творческий подход. Разработчики стараются усовершенствовать и ускорить свою работу, чтобы выделяться среди конкурентов и привлекать новых клиентов. Поэтому ищут и быстро внедряют улучшенные технологии и инструменты в свою работу.
- Снижение расходов. При использовании методологии scrum клиенту не нужно готовить документы по работе и контролировать команду разработчиков. Так вы меньше платите, а значит, снижаете себестоимость продукта. Кроме того, без лишней «бумажной» работы команда может выполнить больший объем задач.
- Мотивация. Каждый член команды знает, за что он отвечает и к какому сроку должен выполнить свои задачи. Еще он может видеть, чем заняты другие. Сотрудник уверен, что если выполнит свой объем работы качественно и в срок, то получит премию.
- Обратная связь. Разработчики постоянно работают с владельцем продукта, регулярно отчитываются перед ним и, если он просит, что-то меняют.
- Прозрачность. Прогресс команды легко отследить в течение спринта. Если за очередной спринт команда что-то не успела, то это сразу видно. И в следующем спринте она постарается решить проблемы или учесть ошибки, чтобы не выбиваться из графика.
У методологии scrum есть недостатки:
- Не подходит для больших команд. Обычно над проектом работают 3–10 человек. Если в команде будет больше людей, то принимать решения они будут дольше и сроки проекта сдвинутся.
- Нужен опыт работы в scrum-команде. Чтобы проект был выполнен, нужно, чтобы каждый из участников команды умел давать обратную связь вовремя и в полном объеме, понимал свое поле ответственности и хотел работать.
- Не подходит для продуктов, которые разрабатывают по строгому плану. Методология scrum подходит для проектов, к которым можно приступать без предварительного стратегического планирования, которые могут меняться в процессе, например, на основе отзывов клиента.
- Не подходит для крупных проектов. Методология хорошо работает на небольших и средних проектах. Если проект крупный, компании могут использовать методологию scrum of scrums. Так всю команду разбивают на мелкие scrums teams, а представитель от каждой такой команды участвует в главной команде – scrum of scrums team.
- Может потребоваться реорганизация. Для того чтобы разработчики могли работать с владельцем продукта, возможно, нужно будет изменить организационную структуру компании. Например, придется сотрудничать отделам, которые ранее не работали вместе.
История методологии
Согласно информации из «Википедии», термин scrum взяли из спортивной игры регби. Он переводится с английского языка как «схватка». Это элемент игры, когда игроки из каждой команды выстраиваются на поле и ждут броска мяча, чтобы продолжить игру.
Впервые термин scrum использовали специалист по менеджменту, а сейчас профессор в Гарвардской школе бизнеса Хиротака Такэути и специалист по теории организаций и почетный профессор Университета Хитоцубаси Икудзиро Нонака в статье The New Product Development Game. Она появилась в журнале Harvard Business Review в начале 1986 года. Чтобы показать преимущества команды, которая умеет самоорганизовываться, авторы взяли для примера команду по регби.
Программист Джефф Сазерленд, разработчик программного обеспечения, инженер-программист Кен Швабер и Майк Бидл развили эту идею и разработали методологию управления scrum. В 1993 году они применили ее в работе Easel Corporation, популярного в то время разработчика программного обеспечения. Об этом Кен Швабер и Майк Бидл написали в 2002 году в книге Agile Software Development with Scrum. В 2004 году вышла книга Кена Швабера «Скрам. Гибкое управление продуктом и бизнесом». В ней автор рассказал, как он применял методологию в компании по разработке программного обеспечения Primavera.
В 2001 году создали Альянс scrum – некоммерческий орган сертификации по принципам agile. Альянс развивает agile-движение, проводит исследования и обучение в этой сфере. Кен Швабер покинул Альянс scrum в 2009 году и создал Scrum.org – организацию, которая обучает и проводит сертификацию по методологии scrum.
Отличия scrum от других методологий
Нет единственно правильной методологии для реализации принципов agile, каждая компания выбирает для себя ту, которая соответствует ее целям, масштабам и особенностям работы.
Вот некоторые из самых распространенных фреймворковангл. framework – «рамки, структура», это заданная структура какого-либо процесса, последовательность этапов работы, конкретная технология. – Прим. ред. agile и их отличия.
Scrum
Это одна из гибких методологий управления проектами. Проект делят на спринты – сроки, в течение которых scrum-команда выполняет определенный объем работ. Обычно это 2–4 недели.
Для визуального контроля процесса есть scrum-доска. На ней записываются задачи, которые нужно выполнить за оговоренный отрезок времени.
Scrum-доска. Источник: studfile.net
Менять что-то в проекте можно только после того, как закончится очередной спринт.
В scrum-команде есть роли:
- product owner – отвечает за то, каким будет продукт на выходе, общается с заказчиком и передает его пожелания разработчикам;
- разработчики – люди, которые непосредственно создают продукт;
- scrum master – занимается организационными вопросами в команде, отвечает за то, чтобы разработка шла по принципам Agile.
Kanban
Простой и наглядный способ управления проектами, который позволяет команде видеть прогресс и план будущих задач. Методология напоминает scrum, но имеет свои отличия.
При выполнении проекта команда использует kanban-доску, чтобы следить, как идет проект, и что-то менять. Kanban-доска – это таблица цифровая или физическая, например белая доска. Задачи в ней записывают в соответствующую колонку, например: «Обсуждается», «Согласовано», «Пишется код», «Тестирование», «Утверждается», «Готово».
Kanban-доска. Источник: studfile.net
Роли в команде не определены, все ее члены действуют сообща. Менять что-то можно в любой момент. В отличие от scrum с системой спринтов, kanban подразумевает непрерывный поток работы.
Extreme Programming (XP)
Методология создана для гибкой разработки программного обеспечения.
В отличие от scrum, она имеет несколько процессов, характерных для сферы IT. Например, разработка через модульное или интеграционное тестирование, code review рецензирование кода – систематическая проверка программного кода, которая помогает обнаружить и исправить ошибки. – Прим. ред. с помощью парного программирования, коллективное владение кодом и так далее.
XP фокусируется на том, как команда должна создавать продукт, в то время как scrum-методология сосредоточена на общей картине – как организована работа команды.
Feature-Driven Development (FDD)
Это гибкая структура управления, при которой разрабатывают план и проектируют каждую функцию программной модели.
Новые программные модели создают через каждые две недели. У FDD более строгие требования к документации, чем у XP. Она больше подходит для опытных в планировании и проектировании команд.
В FDD работа в проекте делится на пять видов:
- разработка модели;
- создание списка функций;
- планирование функций;
- дизайн функций;
- создание функций модели.
Dynamic Systems Development Method (DSDM)
Методология возникла как ответ на потребность рынка в быстром создании качественного программного обеспечения. DSDM так же, как Scrum, XP и FDD, делит проект на спринты.
Эта методология базируется на восьми принципах:
- сосредоточиться на потребностях бизнеса;
- выполнить проект вовремя;
- сотрудничать с владельцем продукта;
- не жертвовать качеством;
- заложить прочный фундамент и без спешки строить на нем проект;
- использовать итеративную разработку англ. iteration – «повторение», это параллельное выполнение работы, анализ результатов и корректировка последующих этапов. – Прим. ред.;
- непрерывно давать обратную связь членам команды;
- контролировать процесс с помощью наглядных инструментов.
Lean
Это философия, подобная agile, а не методология, как, например, scrum.
Lean имеет свои принципы:
- устранить потери;
- усилить обучение;
- принять решение как можно позже;
- предоставить готовый продукт как можно раньше;
- расширить возможности команды;
- обеспечить целостность проекта и видеть целое.
Поскольку agile и lean не противоречат друг другу, scrum-команда может использовать принципы lean, чтобы улучшить свою работу.
Waterfall
Это полностью противоположный scrum подход к работе. Waterfall – линейная и последовательная система управления проектами.
Процесс разбивают на идущие один за другим этапы. Прежде чем приступить к следующей фазе работы над проектом, команда должна на 100% завершить предыдущую.
Такая каскадная модель процесса разработки включает в себя пять этапов:
- написание спецификаций требований к программному обеспечению;
- создание дизайна;
- кодирование;
- тестирование;
- сопровождение.
Waterfall – это негибкая система управления, где нужно долго планировать, а все процессы должны быть строго документированы. Клиенты не участвуют в разработке, а видят только готовый продукт.
Основы работы по scrum
У методологии scrum есть три ключевые особенности:
- Scrum-команда. Это группа не больше десяти человек, в которую входят разработчики, scrum-мастер и владелец продукта. Команда определяет сама, над чем и как будет работать, чтобы достичь результата. Scrum-команда отвечает за результат как единое целое.
-
Спринты. Весь срок работы над проектом разбивается на равные промежутки времени – спринты, не дольше четырех недель.
В начале каждого спринта команда ставит цели и планирует работу. Во время спринта ежедневно проводятся 15-минутные совещания, чтобы каждый мог отчитаться о проделанной работе и рассказать, с какими трудностями столкнулся. В конце спринта команда показывает результат владельцу продукта и получает обратную связь. - Результат работы. Результатом по методологии scrum может считаться только то, что можно полностью использовать. Это не может быть незаконченный код или промежуточный дизайн. Чтобы не было недоразумений, scrum-команда заранее определяет критерии готовности продукта.
Для того чтобы ключевая информация по проекту была понятна и доступна каждому члену команды, в методологии scrum есть специальные понятия, так называемые артефакты:
- Product backlog/журнал пожеланий проекта, еще его называют бэклог продукта. Это перечень рабочих задач в порядке важности. Устанавливает приоритеты владелец продукта.
- User story/история пользователя. Это описание функций продукта с точки зрения пользователя. Истории пользователя входят в бэклог продукта.
- Sprint backlog/журнал пожеланий спринта. В нем прописаны задачи из бэклога продукта. Команда оценивает объем работы по ним, чтобы успеть их выполнить до конца спринта.
- Scrum-доска. Инструмент, где видно, над чем работает scrum-команда. В ней есть такие поля, как «Сделать», «В процессе», «Сделано».
- Burndown chart/диаграмма сгорания задач. Показывает объем выполненной работы по отношению к запланированной в рамках одного спринта. Ее обновляют ежедневно.
- Sprint Goal/цель спринта. Это краткое описание цели спринта, которое помогает команде самостоятельно принимать решения и выбирать, как лучше достигнуть этой цели.
- Increment/инкремент. Это готовая к использованию часть продукта, которая будет реализована к концу спринта.
- Definition of done/критерии готовности. Их определяет scrum-команда.
- Velocity/скорость команды. Измеряется в очках, помогает определить, какой объем работы scrum-команда может сделать за спринт.
Состав scrum-команды
Scrum team, или scrum-команда, – это самоорганизующаяся группа, которая создает продукт. Каждый из ее членов выполняет определенную роль.
Developers/разработчики
Обычно developers – это разработчики программных продуктов, поскольку методология scrum применяется в IT. Однако разработчиками в scrum-команде могут быть, например, маркетологи, если речь идет о разработке тарифов на товары или услуги компании.
Что делают разработчики:
- выполняют задачи в рамках спринта;
- ежедневно отчитываются, вносят информацию для диаграммы сгорания задач и scrum-доски;
- ищут способы улучшить свою работу, помогают друг другу.
Обычно в команде 7–8 разработчиков.
Product Owner/владелец продукта
Владелец продукта представляет интересы клиента, передает разработчикам его требования и комментарии по результатам спринтов. Он создает журнал пожеланий продукта и делится со scrum-командой своим видением конечной цели проекта.
50% своего времени он проводит с клиентами и заинтересованным лицами и 50% времени уделяет работе с командой – отвечает на вопросы, запрашивает информацию у клиента и так далее.
Функции владельца продукта:
- разработать цель и функции продукта;
- создать журнал пожеланий продукта и четко объяснить его команде;
- упорядочить по важности и по очередности задачи, исходя из бэклога продукта;
- сделать так, чтобы каждый участник команды понимал бэклог продукта.
Владелец продукта может быть только один.
Scrum Master/scrum-мастер
Scrum-мастер – «хранитель» процесса, который заботится о комфорте команды. Он создает условия, чтобы члены команды могли легко обсуждать проблемы и находить решения. Он планирует встречи, оповещает об этом всех участников. Scrum-мастер помогает команде работать с другими специалистами компании, которые не включены в scrum team.
По словам маркетолога в One2, специалиста по внедрению scrum в не-IT-компаниях Виталия Цимбалюка, хороший scrum-мастер – это 80% успешного внедрения методологии.
Чем занят scrum-мастер:
- объясняет сотрудникам компании, что такое scrum, обучает принципам работы по этой методологии;
- планирует переход компании на гибкое управление с помощью scrum;
- помогает scrum-команде и заинтересованным лицам использовать свой опыт в работе над проектами;
- делает так, чтобы scrum-команда и клиент могли легко общаться и работать.
Scrum-мастер в команде может быть только один.
Процесс scrum
В первый день спринта команда проводит совещание – sprint planning meeting, на котором определяется кто, что и как будет делать, прописывается, что есть сейчас и каким должен быть результат. Прогресс во время спринта оценивают с помощью scrum-доски, диаграммы сгорания задач и обсуждают на коротких ежедневных встречах команды – daily scrum.
В конце спринта собирают заинтересованных лиц – руководителей или тех, кто финансирует проект, показывают им результаты и просят обратную связь. Это называется sprint review, или обзор итогов спринта. Участники проводят ретроспективный анализ – sprint retrospective, определяют, что можно улучшить. После этого создается план действий, который реализуют в следующем спринте.
Отменить спринт может только владелец продукта, например, если цель спринта уже не актуальна.
Чтобы методология scrum работала лучше, можно:
- Анализировать только последний завершенный спринт, когда вы планируете следующий. Обсуждать с командой ее ожидания от следующего спринта и планы по объему работы.
- Напоминать членам команды о scrum-доске и ее задачах, чтобы никто не отклонялся от заданного курса.
- Обсуждать с командой, чего они достигли и чего хотели бы достичь в следующем спринте. Важно договориться, как сделать проект успешным за счет совместных усилий scrum-команды.
- Установить правила встреч. Например, когда говорит один участник, другие его не перебивают, пока он не закончит. Прерывать докладчика можно только тогда, когда он отклоняется от темы. Каждый член команды должен чувствовать, что его мнение ценят.
- Сократить время ежедневных встреч scrum-команды. Пятнадцати минут достаточно.
- Перед встречами каждый участник должен готовиться. Ему нужно кратко рассказать, что он делал вчера, что планирует делать сегодня. И если ему трудно, то он должен об этом сказать, чтобы коллеги могли ему помочь.
Какие известные компании применяют scrum
В мире гибкую методологию scrum применяют, например:
- американский производитель программного и аппаратного обеспечения IBM;
- компания по разработке ПО Total Attorneys из Чикаго;
- датская компания по разработке ПО Systematic;
- шведская компания по разработке ПО Trifork;
- американский фонд OpenView Venture Partners.
Методологию scrum использует The New York Times, издание The Guardian.
Согласно вакансиям на robota.ua и jobs.dou.ua, этот гибкий метод управления проектами используют:
- банки «ПриватБанк» и ПУМБ;
- операторы мобильной связи Vodafone и «Киевстар»;
- сеть магазинов Eva;
- разработчики цифровых продуктов GlobalLogic Ukraine и SoftServe;
- IT-компании Luxoft, Poster, Human и другие.
Вывод
Методологию scrum используют во многих украинских и зарубежных компаниях. Она помогает разбивать сложные проекты на понятные и выполнимые задачи с определенными сроками.
Эта гибкая методология обозначает четкие роли участников, поэтому ее можно использовать в компаниях с разной спецификой работы.
Встречи по scrum планируются и строго ограничены по времени. Они не отнимают у команды время на саму работу.
Все члены scrum-команды отвечают за успех разработки, поэтому работают слаженно и помогают друг другу. Когда спринты завершаются и команда получает готовую часть продукта, это повышает мотивацию сотрудников.
Клиент работает с владельцем продукта – дает обратную связь, вносит предложения. Поэтому он уверен в том, что после всех спринтов он получит качественный работающий продукт.