Все что нужно знать про Scrum. Впечатления от методологии скрам


Что такое Scrum. Суть методики

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

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

Важными характеристиками Scrum является ее гибкость и ориентированность на клиента, так как она предполагает его (клиента) непосредственное участие в процессе работы.

Scrum не требует внедрения каких-либо дорогостоящих инструментов. Схему методики Scrum вкратце можно описать следующим образом:

1. Для начала необходимо выбрать « Владельца продукта » — человека, обладающего видением того, что вы собираетесь создать или достигнуть.

2. Затем нужно собрать « Команду » , в которую войдут люди, непосредственно выполняющие работу. Они должны обладать навыками и знаниями, которые помогут воплотить идею владельца продукта в жизнь.

3. Нужно выбрать «Скрам-мастера» — того, кто будет следить за ходом реализации проекта, обеспечивать проведение коротких собраний и помогать команде устранять препятствия на пути достижения цели.

4. Приступая к работе, нужно создать максимально полный список всех требований, предъявляемых к продукту или цели. Пункты этого списка должны быть расставлены по приоритету. Список носит название « Бэклог продукта » . Он может развиваться и изменяться на протяжении всего срока реализации проекта.

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

6. Затем участники, скрам-мастер и владелец продукта должны провести первое скрам-собрание , на котором они запланируют спринт определенное время для выполнения части заданий. Продолжительность спринта не должна превышать один месяц. За каждый спринт команда нарабатывает определенное количество баллов. Команда должна постоянно стремиться к тому, чтобы превзойти в новом спринте количество наработанных баллов за предыдущий спринт, то есть ее цель постоянно превосходить свои собственные результаты — « наращивать динамику производительности » .

7. Чтобы все участники были в курсе состояния дел нужно завести скрам-доску с тремя колонками: « Нужно сделать, или бэклог » ; « В работе » ; « Сделано » . На доску участники клеят стикеры с заданиями, которые в процессе работы поочередно перемещаются из колонки « Бэклог » в колонку « в работе » , а затем в « сделано » .

8. Ежедневно проводится скрам-собрание . По выражению Джеффа Сазерленда « это пульс всего процесса Scrum » . Суть его проста ежедневно, на ходу, пятнадцать минут на то, чтобы все дали ответы на три вопроса: « » , « » , « » .

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

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

Недостатки традиционного подхода к управлению проектами

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

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

Почему? Как отмечает Джефф Сазерленд, Генри Гант придумал такие диаграммы еще в 1910 году. Они получили широкое распространение в Первой мировой войне. Однако, « каждый, кто изучал историю этой войны, знает, что ни подготовка кадровых ресурсов, ни система организации никогда не были ее сильными сторонами. Мне не дано понять, почему концепт времен Первой мировой войны становится-де-факто аналитическим инструментом проектирования и применяется даже в XXI веке. Мы отказались от принципов позиционной войны, но каким-то образом ее „ окопные “ организационные идеи остаются популярными и по сей день » .

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

Философия scrum

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

Общее у айкидо и Scrum то, что ими можно овладеть лишь в процессе работы, когда « ваше тело, ваш разум и ваш дух соединяются в единое целое через постоянную практику и стремление к совершенству. Занимаясь айкидо, мы постигаем понятие сюхари (Shu Ha Ri) это одновременно и концепция боевых искусств, и показатель уровня мастерства » .

Суть командной работы в Scrum

Scrum — это, прежде всего, командная работа. Автор выделяет три характеристики лучших коллективов:

    непрекращающийся поиск совершенства;

  • автономность — способность к самоорганизации;
  • многофункциональность. Наличие разных специалистов и культура взаимодействия и взаимопомощи.

Какого размера должна быть команда? Джефф Сазерленд рекомендует малочисленные группы — около семи человек. Он приводит данные, что если группа состоит из более чем девяти человек, то скорость ее работы падает.

Кроме того автор напоминает о «законе Брукса»:

« Если проект не укладывается в сроки, то добавление рабочей силы задержит его еще больше » .

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

Нет мультизадачности

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

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

Суть работы — поток

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

Как его достичь? За состоянием потока стоит внутренняя дисциплина,

« Не должно быть ни одного движения впустую » .

Скрам и счастье

Люди хотят быть счастливыми. Но Джефф Сазерленд уверен, что счастье — это не бездеятельное прозябание, а яркая, насыщенная и активная жизнь. Скрам вносит свой вклад в счастливую жизнь, так как помогает плодотворно работать и действовать.

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

Элементы скрам



Спринты

Как уже отмечалось выше, в начале спринта и для обеспечения открытости и наглядности, нужно завести специальную доску и поделить ее на три колонки: « Бэклог » ; « В работе » ; « Сделано » . Перед каждым спринтом члены команды наклеивают в колонку « Бэклог » стикеры с задачами, которые, по их мнению, они могут выполнить за спринт. В течение спринта, любой член команды, взявшись за задачу, переклеивает стикер из раздела « Бэклог » в колонку « В работе » . После выполнения задачи — в колонку « Сделано » . Таким образом, каждый видит, над чем сейчас работают другие участники.

Однако есть важное замечание — « ничто не переносится в колонку „ Сделано “ до тех пор, пока эта часть проекта не будет опробована клиентом » .

« Еще один важнейший аспект спринта: как только команда утверждает список требований, задачи из этого списка блокируются . Никто не имеет права их менять или вносить добавления » . Автор рекомендует это из-за того, что любое вмешательство замедлит работу команды.

Ежедневные собрания

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

Делайте до конца

В Scrum важно научиться чувствовать ритм команды. Наихудший вариант — когда по завершении спринта что-то остается сделанным наполовину. Уж лучше вообще тогда не начинать это дело.

« Израсходованы ресурсы, силы, время, деньги, но полностью функционирующий продукт не получен » .

Планирование в Scrum

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

Что делать потом? Каждый пункт списка нужно оценить на предмет того, сколько на его выполнение уйдет сил, времени и других ресурсов. Каким образом производить оценку? Автор предлагает шкалу относительных оценок. Например, можно сравнивать задачи « в собаках » . Эта проблема — такса или ретривер? А может быть, дог?

Но в любом случае удобнее установить числовые значения. Например, « Такса единица; дог тринадцать; лабрадор стал пятеркой, а бульдог тройкой » .

Автор также предлагает использовать интересную методику покер планирования. Ее суть — каждому участнику процесса планирования дается колода карт с числами Фибоначчи 1, 2, 3, 5, 8, 13 и так далее. Каждый пункт списка, единица работы, которая должна быть оценена, выкладывается на стол.

Требования — это истории

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

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

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

Как планировать спринт

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

После этого команда дружно произносит: « Вперед! » — и принимается за работу

Но что такое работа? Рутина, обязаловка? С точки зрения скрам, работа — это история. Что это значит? Это означает, что вам следует представить человека, которому нужно то, что вы делаете; потом то, что это такое, и, наконец, зачем людям это нужно.

Командам нужно хорошо узнать свою динамику — сколько работы она может выполнить за один спринт. Это поможет ей работать разумнее и устранять все помехи на своем пути.

« Динамика x время = результат. Узнав, насколько быстро вы продвигаетесь, вы сможете понять, когда окажетесь на финише » .

Открытость во всем

Скрам предполагает прозрачность всех действий и процессов.

Это выражается в доске с тремя колонками, к которой имеют доступ все участники команды.

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

Владелец продукта

В скраме предполагается три роли: скрам-команда — исполнители конкретных проектов; скрам-мастер — это тот, кто следит за ходом проекта и помогает команде решать проблемы, и владелец продукта тот, кто решает вопросы концепции продукта и составляет бэклог.

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

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

Минимизация рисков в скраме

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

« Методология Scrum полезна бизнесу тем, что быстро отвечает на вопрос: сможем ли мы заработать деньги, если сделаем то или иное?»

Вам не нужно тратить огромные средства перед тем, как понять, что-то не работает.

Аннотация: Анализируется методология Scrum, рассматриваются рабочие элементы шаблона MicrosoftVisualStudioScrum 2.2, элементы задела работы продукта, элементы работы, спринты, организация команды в методологии Scrum, жизненный цикл проекта ПО, управление работами по продукту, рабочий процесс элемента невыполненной работы, связи между рабочими элементами.

Презентацию к данной лекции Вы можете скачать .

Цель лекции:

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

Введение

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

Рабочие элементы

Рабочие элементы используются для отслеживания, наблюдения за состоянием хода разработки ПО и создания отчетов. Рабочий элемент - это запись , которая создается в Visual Studio Team Foundation Server для задания определения, назначения, приоритета и состояния элемента работы. Для шаблона MicrosoftVisualStudioScrum 2.2.определяет следующие типы рабочих элементов :

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

В методологии Scrum пользовательские требования , которые определяют функциональность продукта, задаются элементами задела работы продукта (ProductBacklogItem - PBI). Элементы задела работы продукта, которые будем называть "элементы работы - ЭР ", представляют собой краткое описание функций продукта и оформляются в произвольной форме в виде кратких заметок. Вначале задаются наиболее важные и понятные всем пользовательские требования - ЭР. Элементы работы могут детализироваться в виде задач. В процессе создания программного продукта ЭР могут уточняться, добавляться или удаляться из списка требований.

Цикл выпуска продукта в Scrum состоит из ряда итераций, которые называются спринтами . Спринт имеет фиксированную длительность, как правило, 1-4 недели. Элементы работы, включенные в очередной спринт, не подлежат изменению до его окончания. Хотя спринт завершается подготовкой работоспособного программного продукта, его текущей функциональности может быть недостаточно для оформления выпуска, имеющего ценность для заказчика. Поэтому выпуск работоспособного программного продукта, который заказчик может использовать, включает, как правило, несколько спринтов.

Организация команды

Организация команды в методологии Scrum определяет три роли :

  • владелец продукта (Product owner);
  • руководитель (ScrumMaster);
  • члены команды (Team members).

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

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

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

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

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

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

Инструментальная и методическая поддержка гибкого подхода к созданию программных продуктов Scrum, реализованная в VisualStudio 2012, позволяет управлять жизненным циклом проекта ПО ( рис. 16.1) .


Рис. 16.1.

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

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

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

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

Ежедневные Scrum-собрания имеют продолжительность 15 - 30 минут. Целью таких собраний является выявление проблем, которые тормозят процесс разработки, и определить действия по их нейтрализации. Для простых проблем принимается решение по их устранению, а сложные проблемы откладываются на последующие спринты. В ходе ежедневного Scrum-собрания руководитель задает темп спринта, акцентирует команду на наиболее важных элементах списка невыполненных работ . Каждый член команды сообщает, что было сделано вчера, что будет делать сегодня и какие имеются препятствия в работе. Если на ежедневном Scrum-собрании возникают вопросы, для решения которых необходимы специалисты, которых в команде нет, тогда руководитель берет на себя анализ и возможные пути разрешения данного вопроса.

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

Управление невыполненной работой

Список Невыполненная работа по продукту является одним из ключевых артефактов в методологии Scrum. Успех Scrum-команды во многом определяется качественным содержанием данного списка. Список НВР обычно включает пользовательские описания функциональности - элементы работы, а также может включать нефункциональные требования. Для создания списка НВР в TFS могут применяться различные клиентские сервисы ( рис. 16.2):

  • командный обозреватель Visual Studio;
  • веб-доступ черезTeam Web Access;
  • Microsoft Office Excel;
  • Microsoft Office Project.


Рис. 16.2.

Владелец продукта на основе требований и пожеланий клиентов формирует список функций продукта в виде элементов задела работы продукта, которые помещает в список Невыполненная работа по продукту . При создании нового элемента невыполненной работы для него устанавливается состояние "Новый" ( рис. 16.3).


Рис. 16.3.

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

Список Невыполненная работа по продукту является главным документом для Scrum-команды. На основе данного списка команда создает другие рабочие элементы, составляющие спринты и выпуски. Для Элементов невыполненной работы команда создает задачи и тестовые случаи. Задачи детализируют элемент работы и определяют конкретную реализацию требований пользователя. Тестовые случай необходимы для проверки соответствия функциональности кода требованиям пользователя. Если тестовый случай не проходит, то создается рабочий элемент "Ошибка". При блокировании задачи из-за невозможности её выполнения в текущем спринте создают рабочий элемент "Препятствие". Scrum- команда может создавать вспомогательные рабочие элементы (ошибки и препятствия) в отношении элементов, на которые они влияют (задачи и тестовые случаи) и связывать эти элементы ( рис. 16.4).


Рис. 16.4.

Для отслеживания хода выполнения проекта, можно создавать отчеты, отражающие наиболее важные данные для текущего проекта. В процессе создания ПО можно пользоваться стандартными отчетами или создавать собственные отчеты. Отчеты можно создавать, настраивать и просматривать с помощью Excel , Project или служб Reporting ServicesSQL Server .

Методология Scrum имеет следующие положительные стороны:

  • пользователи начинают видеть систему спустя всего несколько недель и могут выявлять проблемы на ранних стадиях разработки программного продукта;
  • интеграция технических компонентов происходит в ходе каждого спринта и поэтому проблемы проекта (если они возникают) выявляются практически сразу;
  • в каждом спринте команда фокусируется на контроле качества;
  • гибкая работа с изменениями в проекте на уровне спринта.

Ключевые термины

  • Что представляет собой спринт в методологии Scrum.
  • Какие роли определены в организации команды в методологии Scrum.
  • Кто отвечает за качественный выпуск программного продукта в методологии Scrum.
  • Поясните содержание жизненного цикл проекта ПО в методологии Scrum.
  • Поясните содержание рабочего процесса элемента невыполненной работы.
  • Поясните возможные связи между рабочими элементами.
  • Упражнения

    1. Проведите исследование (поиск по интернету) применимости методологии Scrumдля проектирования программных систем.
    2. Проанализируйте причины распространения методологии Scrum для создания эффективных программных решений.
    3. Проведите исследование (поиск по интернет) программного инструментария методологии Scrum для платформ отличных от Microsoft.Net.

    Недавно мы в MakeRight.ru с удовольствием прочитали книгу «Scrum. Революционный метод управления проектами» Джеффа Сазерленда. О чем она? В двух словах - о том, как организовать слаженную командную работу.
    Начав внедрять элементы скрама на практике, мы пришли к выводу, что идеи книги действительно работают.

    Революционный ли это метод, как указано в названии? Не знаем. Но, возможно, те, кто не читал книгу и не знаком с методикой, почерпнут для себя ряд полезных идей из нашего саммари (краткого изложения). Итак…

    Что такое Scrum. Суть методики

    «Порвите свои визитки. Избавьтесь от званий и титулов, от руководителей и иерархических структур. Дайте людям свободу делать то, что они считают правильным, и возможность нести за это ответственность. Результаты вас поразят ».

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

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

    Важными характеристиками Scrum является ее гибкость и ориентированность на клиента, так как она предполагает его (клиента) непосредственное участие в процессе работы.

    Scrum не требует внедрения каких-либо дорогостоящих инструментов. Схему методики Scrum вкратце можно описать следующим образом:

    1. Для начала необходимо выбрать «Владельца продукта» - человека, обладающего видением того, что вы собираетесь создать или достигнуть.
    2. Затем нужно собрать «Команду», в которую войдут люди, непосредственно выполняющие работу. Они должны обладать навыками и знаниями, которые помогут воплотить идею владельца продукта в жизнь.
    3. Нужно выбрать «Скрам-мастера» - того, кто будет следить за ходом реализации проекта, обеспечивать проведение коротких собраний и помогать команде устранять препятствия на пути достижения цели.
    4. Приступая к работе, нужно создать максимально полный список всех требований, предъявляемых к продукту или цели. Пункты этого списка должны быть расставлены по приоритету. Список носит название «Бэклог продукта». Он может развиваться и изменяться на протяжении всего срока реализации проекта.
    5. Участники команды должны оценить по своей системе оценок каждый пункт на предмет сложности и затрат, которые потребуются для его выполнения.
    6. Затем участники, скрам-мастер и владелец продукта должны провести первое скрам-собрание, на котором они запланируют спринт - определенное время для выполнения части заданий. Продолжительность спринта не должна превышать один месяц. За каждый спринт команда нарабатывает определенное количество баллов. Команда должна постоянно стремиться к тому, чтобы превзойти в новом спринте количество наработанных баллов за предыдущий спринт, то есть ее цель - постоянно превосходить свои собственные результаты - «наращивать динамику производительности».
    7. Чтобы все участники были в курсе состояния дел нужно завести скрам-доску с тремя колонками: «Нужно сделать, или бэклог»; «В работе»; «Сделано». На доску участники клеят стикеры с заданиями, которые в процессе работы поочередно перемещаются из колонки «Бэклог» в колонку «в работе», а затем в «сделано».
    8. Ежедневно проводится скрам-собрание. По выражению Джеффа Сазерленда «это пульс всего процесса Scrum». Суть его проста - ежедневно, на ходу, пятнадцать минут на то, чтобы все дали ответы на три вопроса: «Что ты делал вчера, чтобы помочь команде завершить спринт?», «Что ты будешь делать сегодня, чтобы помочь команде завершить спринт?», «Какие препятствия встают на пути команды?».
    9. По завершении спринта команда делает его обзор - проводит встречу, на которой участники рассказывают, что сделано за спринт.
    10. После показа результатов работы за спринт участники проводят ретроспективное собрание, на котором обсуждают, что команда делала хорошо, что можно сделать лучше, что можно улучшить прямо сейчас.

    Недостатки традиционного подхода к управлению проектами

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

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


    Изображение с сайта www.quickiwiki.com

    «С распространением в 1980-е годы персональных компьютеров стало проще создавать разные затейливые диаграммы - и делать их по-настоящему комплексными - они превращались в подлинные художественные произведения. Весь ход проекта детально размечен. Каждый отдельный шаг. Любая стадия. Всякая дата поставки. Действительно, диаграммы Ганта производят глубокое впечатление. Существует лишь единственная проблема: они всегда неправильны - без исключения ».

    Почему? Как отмечает Джефф Сазерленд, Генри Гант придумал такие диаграммы еще в 1910 году. Они получили широкое распространение в Первой мировой войне. Однако, «каждый, кто изучал историю этой войны, знает, что ни подготовка кадровых ресурсов, ни система организации никогда не были ее сильными сторонами. Мне не дано понять, почему концепт времен Первой мировой войны становится-де-факто аналитическим инструментом проектирования и применяется даже в XXI веке. Мы отказались от принципов позиционной войны, но каким-то образом ее „окопные“ организационные идеи остаются популярными и по сей день».

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

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

    Планы рассыпаются в прах. Альтернатива - это Scrum

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

    Слово scrum («схватка») автор позаимствовал из игры в регби. Оно «обозначает метод командной игры, позволяющий завладеть мячом и вести его дальше по полю, а для этого нужны слаженность, единство намерений и четкое понимание цели. „Схватка“ представляет собой идеальную модель полного взаимодействия игроков ». И это именно то, что требуется для успешной командной работы.


    Изображение с сайта brendanmarsh.com

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

    «Каждый спринт планируется предварительно на специальных встречах. Участники оценивают, какой объем работ, на их взгляд, они смогут сделать, скажем, в течение следующих двух недель. Из списка задач, расставленных по приоритетам, они выбирают очередные единицы работы, предназначенные для выполнения, записывают их на стикеры, которые приклеивают на стену. Группа решает, сколько единиц работы они в состоянии выполнить за предстоящий спринт.
    На завершающей стадии спринта участники снова собираются вместе и показывают друг другу, чего удалось достичь за время совместной работы. Они смотрят, сколько единиц работы, занесенных на стикеры, действительно доведены до конца. Не все удается выполнить? Значит, для этого спринта было отобрано слишком много задач. Бывает наоборот - недостаточное количество задач. В данном случае важно другое: у группы развивается чувство собственной скорости
    ».

    Когда все участники поделятся своими результатами работы, команда начинает разбирать все, что было сделано за спринт, но делая упор не на обсуждение продукта, а на то, каким образом он делался. «Как улучшить сотрудничество в следующем спринте? Что препятствовало в последнем спринте? Из-за чего мы продвигаемся не так быстро, как хотим?» - вот вопросы, которые они ставят перед собой ».

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

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

    Философия scrum

    В методике Scrum нашло свое отражение увлечение автором книги японскими боевыми искусствами. По его словам, в Японии к «Scrum не относятся как к сиюминутной причуде. Японцы расценивают Scrum как подход к решению вопросов, как образ действий, как способ существования бытия - в общем, как образ жизни. Когда я обучаю людей этой методике, я часто рассказываю о своем многолетнем опыте занятий японским боевым искусством айкидо ».

    Общее у айкидо и Scrum то, что ими можно овладеть лишь в процессе работы, когда «ваше тело, ваш разум и ваш дух соединяются в единое целое через постоянную практику и стремление к совершенству. Занимаясь айкидо, мы постигаем понятие сюхари (Shu Ha Ri) - это одновременно и концепция боевых искусств, и показатель уровня мастерства».

    Суть командной работы в Scrum
    Scrum - это, прежде всего, командная работа. Автор выделяет три характеристики лучших коллективов:
    • непрекращающийся поиск совершенства;
    • автономность - способность к самоорганизации;
    • многофункциональность. Наличие разных специалистов и культура взаимодействия и взаимопомощи.
    На многофункциональности стоит заострить внимание особо. Автор приводит пример многофункциональной команды из спецназа - группу «Альфа» (команда «А»). Каждая такая «команда „А“ сформирована таким образом, чтобы все ее члены были разносторонними мастерами боевой подготовки, что позволяет им выполнять операции от начала до конца. Бойцы спецназа постоянно проводят обучение взаимозаменяемости по нескольким специальностям. Команда должна быть уверена, что если убьют обоих медиков, то, скажем, специалист по связи сможет оказать первую медицинскую помощь раненому товарищу. Существенная особенность, отличающая работу спецназа от действий „обычных“ армейских сил, заключается в том, что „зеленые береты“ самостоятельно выполняют и сбор разведывательных данных, и планирование операций. В их практике не допускается передача эстафетной палочки от одного подразделения другому - ведь именно в таких „швах“ таится слабое место, из-за которого возникают ошибки ».

    Какого размера должна быть команда? Джефф Сазерленд рекомендует малочисленные группы - около семи человек. Он приводит данные, что если группа состоит из более чем девяти человек, то скорость ее работы падает.

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

    Главный в команде - это скрам-мастер. Его обязанность - обеспечивать короткие собрания, их открытость, помогать группе идти сквозь помехи, которые мешают работе, вести команду по пути постоянного совершенствования «и регулярно искать ответ на вопрос «Как нам делать еще лучше то, что мы уже делаем хорошо?».
    Нет мультизадачности
    Автор предостерегает от мультизадачности - на самом деле ее нет, наш мозг не может выполнять два действия одновременно, он просто переключается между задачами, а общее время выполнения каждой из них увеличивается по сравнению с тем, если бы мы выполняли их поочередно. Методика Scrum предполагает, что нужно поочередно выполнять все задачи, а не «сбалансированно вести пять проектов одновременно».
    «Действуя традиционным методом, то есть пытаясь делать все и сразу, группа завершит свои три проекта до конца июля. Если группа подойдет к делу, вооружась гибкой стратегией, например, Scrum, и будет работать поочередно над каждым проектом, минимизируя затраты времени и сил на переключение контекста, она сможет закончить все к началу мая ».
    Никаких переработок
    Уставшие сотрудники становятся более рассеянными и хуже выполняют свою работу. Недостаток энергии ведет к тому, что люди принимают больше импульсивных и неверных решений, и снижается их эффективность.
    «Этот феномен окрестили „истощение эго“. Идея заключается в том, что принятие любого решения требует от вас энергетических затрат. Это странный вид истощения - вы не чувствуете физического утомления, но ваша способность принимать взвешенные решения снижается. Что на самом деле меняется, так это наш самоконтроль - наша способность быть дисциплинированными, вдумчивыми и просчитывать последствия ».

    Вывод: в нерабочее время отдыхайте, полностью отдалитесь от работы, заряжайтесь приятными впечатлениями.
    «Методология Scrum подразумевает, что те, кто применяет ее, перестают измерять свою работу только часами. Часы отражают лишь затраты. Измеряйте лучше результат. Кого волнует, сколько кто-то потратил времени на то, чтобы что-то сделать? Единственное, что имеет значение, - как быстро и качественно это было сделано ».
    Суть работы - поток
    Scrum помогает попасть в «поток» - состояние наивысшей концентрации, когда вы делаете то, что нужно, не затрачивая на это усилий, не заставляя себя и не подгоняя. Автор считает, что главное для успешной работы - достичь и управлять этим состоянием. «В своей работе вам нужно достичь главного - управления потоком, не требующего никаких усилий. В боевых искусствах или медитативных практиках мы достигаем чувства единения в движении, которое не требует усилий, - это энергия, беспрепятственно текущая сквозь нас. Когда вы смотрите на великих танцоров или певцов, то чувствуете, как они покоряются этой энергии. К достижению такого состояния мы должны стремиться в нашей работе».

    Как его достичь? За состоянием потока стоит внутренняя дисциплина.

    «Не должно быть ни одного движения впустую ».
    Скрам и счастье
    Люди хотят быть счастливыми. Но Джефф Сазерленд уверен, что счастье - это не бездеятельное прозябание, а яркая, насыщенная и активная жизнь. Скрам вносит свой вклад в счастливую жизнь, так как помогает плодотворно работать и действовать.

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

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

    Элементы скрам

    Спринты
    Как уже отмечалось выше, в начале спринта и для обеспечения открытости и наглядности, нужно завести специальную доску и поделить ее на три колонки: «Бэклог»; «В работе»; «Сделано». Перед каждым спринтом члены команды наклеивают в колонку «Бэклог» стикеры с задачами, которые, по их мнению, они могут выполнить за спринт. В течение спринта, любой член команды, взявшись за задачу, переклеивает стикер из раздела «Бэклог» в колонку «В работе». После выполнения задачи - в колонку «Сделано». Таким образом, каждый видит, над чем сейчас работают другие участники.


    Изображение с сайта nyaski.ru

    Однако есть важное замечание - «ничто не переносится в колонку „Сделано“ до тех пор, пока эта часть проекта не будет опробована клиентом».

    «Еще один важнейший аспект спринта: как только команда утверждает список требований, задачи из этого списка „блокируются“. Никто не имеет права их менять или вносить добавления ».

    Автор рекомендует это из-за того, что любое вмешательство замедлит работу команды.
    Ежедневные собрания
    Суть в том, чтобы они проводились стоя, каждый день, в одно и то же время, их длительность не превышала пятнадцать минут и на них участники задавали одни и те же три вопроса: «Что ты делал вчера, чтобы помочь команде завершить спринт?», «Что ты будешь делать сегодня, чтобы помочь команде завершить спринт?», «Какие препятствия встают на пути команды?».
    Делайте до конца
    В Scrum важно научиться чувствовать ритм команды. Наихудший вариант - когда по завершении спринта что-то остается сделанным наполовину. Уж лучше вообще тогда не начинать это дело.
    «Израсходованы ресурсы, силы, время, деньги, но полностью функционирующий продукт не получен ».
    Планирование в Scrum
    Как происходит процесс планирования в Scrum? Для начала нужно составить список всех вещей, которые влияют на вашу цель. После этого расставить их по приоритетности. В случае если вы не будете укладываться во временные и финансовые рамки, тогда вы легче сможете исключить последние пункты списка.

    Что делать потом? Каждый пункт списка нужно оценить на предмет того, сколько на его выполнение уйдет сил, времени и других ресурсов. Каким образом производить оценку? Автор предлагает шкалу относительных оценок. Например, можно сравнивать задачи «в собаках». Эта проблема - такса или ретривер? А может быть, дог?

    Но в любом случае удобнее установить числовые значения. Например, «Такса - единица; дог - тринадцать; лабрадор стал пятеркой, а бульдог - тройкой ».

    Автор также предлагает использовать интересную методику покер планирования. Ее суть - каждому участнику процесса планирования дается колода карт с числами Фибоначчи - 1, 3, 5, 8, 13 и так далее. Каждый пункт списка, единица работы, которая должна быть оценена, выкладывается на стол. «Затем каждый участник группы берет ту карту, число на которой, по его мнению, соответствует объему необходимых усилий, и кладет ее на стол рубашкой вверх. Затем все одновременно открывают карты. Если расхождение не больше чем на две карты (скажем, пятерка, две восьмерки и тринадцать), команда просто их складывает, берет среднее арифметическое (в данном случае 6,6) и переходит к следующей задаче. Помните, мы говорим об оценках, а не о жестких планах. И оценках небольших фрагментов проекта. Если расхождение получается более чем на три карты, тогда те, кто положил карты с самым большим и самым маленьким значением, объясняют, почему они так считают. Затем проводится еще один раунд покера планирования. В противном случае они лишь усреднят оценки, что сделает результаты слишком приблизительными».

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

    «Представьте, что вы составляете „пожелание пользователя Amazon.com“. Пробный вариант выглядит так: „Мне как потребителю нужен крупнейший в мире магазин книг, где я могу купить любую книгу в любое время“.

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

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

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

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

    После этого команда дружно произносит: «Вперед!» - и принимается за работу

    Но что такое работа? Рутина, обязаловка? С точки зрения скрам, работа - это история. Что это значит? Это означает, что вам следует представить человека, которому нужно то, что вы делаете; потом то, что это такое, и, наконец, зачем людям это нужно.

    Командам нужно хорошо узнать свою динамику - сколько работы она может выполнить за один спринт. Это поможет ей работать разумнее и устранять все помехи на своем пути.

    «Динамика x время = результат. Узнав, насколько быстро вы продвигаетесь, вы сможете понять, когда окажетесь на финише ».
    Открытость во всем
    Скрам предполагает прозрачность всех действий и процессов.

    Это выражается в доске с тремя колонками, к которой имеют доступ все участники команды.

    «Секретность - яд. Ничто не может держаться в тайне. Все должны знать всё, включая финансовые данные. Запутывание следов нужно только тем, кто ищет собственной выгоды ».
    Расстановка приоритетов

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

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

    Как правильно расставить приоритеты?

    «Для этого нужно выяснить, какие пункты списка:

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

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

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

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

    Минимизация рисков в скраме
    Так как в скраме предусмотрена пошаговая сдача проекта, то это способствует минимизации рисков. Это помогает быстрее показывать клиенту продукт и получать от него обратную связь.
    «Методология Scrum полезна бизнесу тем, что быстро отвечает на вопрос: сможем ли мы заработать деньги, если сделаем то или иное? »

    Вам не нужно тратить огромные средства перед тем, как понять, что-то не работает.
    Как внедрить Scrum прямо сейчас

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

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

    О нас

    Мы рассказываем о ключевых идеях из лучших книг жанра нон-фикшн. В нашей

    Для начала. Scrum и Agile - в чем разница? Если коротко, Agile - это философия, семейство гибких подходов к разработке ПО. Scrum - один из таких подходов. У него есть братик - Kanban. Он тоже подход, используемый в Agile.

    Елена Трускова рассказывает:

    На этой неделе я прошла двухдневный тренинг по Agile/Scrum (произносится «эджайл» и «скрам»). По гибким методологиям разработки программного обеспечения написано много заумной и не очень литературы, многое я читала. Но только после двухдневного погружения в тему у меня наконец собралось базовое понимание предмета, из которого я пишу эту заметку.

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

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

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

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

    Эджайл

    (англ.agile -«проворный, шустрый, сообразительный»)

    Концепция гибкости:

    Подставьте свой вид деятельности вместо слова «разработка» - и эти принципы станут близкими и понятными.

    «Работающий продукт - основной показатель прогресса», «простота как искусство минимизации лишней работы» и «люди и взаимодействие важнее процессов и инструментов» - правда, звучит разумно?

    Скрам

    (англ. scrum - толкотня в борьбе за мячик в регби)

    Тут стоит напомнить, что это моя личная и субъективная точка зрения на скрам. Здесь я размышляю о применимости элементов скрама как в творческих проектах, далеких от IT, так и в индивидуальной работе (скажем, над блогом). Много точных деталей для этого придется упустить; я стараюсь сохранить простоту текста и не перекормить читателя терминологией.

    Жесткость скрама заключается в структуре. Есть некий набор подходов, работающих вместе лучше, чем по отдельности. Вытащить что-нибудь и заиспользовать вам, я надеюсь, никто не запретит.

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

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

    Иметь такую уверенность в скраме не страшно, поскольку каждый марш-бросок длится ровно один спринт (четкий отрезок времени, обычно от одной до четырех недель). После того, как спринт закончился, наступает момент анализа: а как мы его прошли? Что можно было бы сделать еще лучше в следующий раз?

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

    Команда в скраме

    Стандартный размер скрам-команды - 7 плюс-минус 2 человека. То есть от пяти до девяти. Бывает скрам-масштабирование: можно из 25 команд состроить систему работы над гигантской задачей. Но основная единица скрама - команда.

    В каждой команде есть:

    • участники (в случае IT - разработчики, кто эти семь человек у вас - решите сами)
    • продакт оунер (product owner, владелец продукта). Его роль: понимать рынок и пользователя, формулировать задачи на языке бизнеса и пользователей, держать в голове осознание того, в каком направлении должны развиваться ценность и польза, придумывать и отбирать задачи для развития продукта. Что-то вроде руководителя продукта (не команды).
    • скрам мастер (scrum master, скрам-евангелист). Его роль: следить за процессом, наблюдать за внутренней жизнью команды, мотивировать людей, устранять препятствия. Что-то вроде тренера.
      Вокруг команды есть пользователи и стейк-холеры (stakeholders, заказчики). К этим людям продакт оунер ходит советоваться.

    Устройство спринт

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

    У продакт оунера есть список идей от бизнеса для осчастливливания пользователей. Он называется «продакт бэклог» (product backlog, список продуктовых идей). В нем идеи отсортированы по важности и значимости.

    В каждом спринте есть спринт бэклог (sprint backlog, список задач на спринт) - отсортированный список идей, которые команда решила сделать за ближайший спринт. Смысл скрама в том, что команда сама оценивает сложность каждой задачи и решает, какие задачи войдут в очередной спринт.

    Задача в спринте имеет известный команде вес (известно, сколько времени на неё уйдет), к ней прикреплен исполнитель, она является понятной и важной. Если неизвестно, сколько времени уйдет на задачу, нужно её разбить на более мелкие части.

    В начале своей жизни команда всегда плохо планирует. Это объективная реальность. Но она ведет статистику того, что ей удается сделать за спринт, и со временем планирует всё точнее. Ей помогает итоговая встреча спринта - ретроспектива. На ней можно обсудить слабые моменты уходящего спринта и придумать способы делать по-другому.

    Обычно в спринт влезает 5 плюс-минус 2 идеи. Если идеи слишком большие, команда их дробит так, чтобы в каждом спринте можно было что-нибудь маленькое, да показать.

    В скраме идеи называются юзер-сториз (user stories, истории про пользователей) и формулируются так: «Я как (роль?) хочу (что?) для того, чтобы (зачем?)». Таким образом команда видит не только функциональность, но и смысл её создания, причем для конкретной роли: пользователь, заказчик, покупатель.

    Результатом спринта всегда является что-то, что можно показать. Показывает работу команда на демо в конце спринта.

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

    Структура спринта

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

    Каждый день есть стендап-митинг (stand up meeting, совещание стоя) на 15 минут. Делать его стоя важно: если кто-то заболтается, остальные красноречиво будут переминаться с ноги на ногу и чесать ухо. Можно использовать какой-то предмет, чтобы говорил в один момент времени только один участник, и передавать его по кругу.

    Каждый участник стендапа по очереди отвечает на три вопроса:

    • что я сделал вчера
    • что я сделаю сегодня
    • что меня тормозит

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

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

    В конце спринта происходит демо (demo, демонстрация) с показом того, что удалось создать в течение спринта, спринт-ревью (sprint review, обзор спринта) с пересмотром продакт-беклога и разговорами о том, ЧТО мы делаем, а также ретроспектива (retro) - что мы делали не самым лучшим образом весь спринт и хотим улучшить далее - о том, КАК мы это делаем.

    «Если бы у меня было восемь часов для того, чтобы срубить дерево, я бы шесть часов потратил на заточку топора». (приписывается лесорубу и президенту Аврааму Линкольну)

    Scrum, наверное, самая популярная методология разработки программного обеспечения. Что же представляет собой Scrum? Это своеобразный каркас, позволяющий успешно решать проблемы разработки ПО высокой сложности и значимости. Данная методология обладает замечательной гибкостью функционала, что позволяет проводить такие тонкие настройки, что дистрибутивы программы, установленные на компьютерах разных разработчиков, могут кардинально отличаться друг от друга. Также Scrum является доступной и понятной, но одновременно сложной в глубоком освоении. Методология Scrum в используется довольно успешно уже не один год. Рассмотрим основы данной методологии.

    Роли в проекте

    Стандартный Scrum включает в себя три базовые роли. О них и поговорим подробнее:

    • Product owner (PO). Это своеобразное связующее звено, с помощью которого происходит «общение» команды разработчиков проекта с заказчиком. Главной целью РО является повышение ценности проекта и деятельности команды в глазах заказчика. Метод достижения данной цели – Product Backlog, содержащий отсортированные в порядке важности рабочие задачи проекта (Bug, Task, Story и некоторые другие).
    • Scrum master (SM). Цель, которую преследует данная роль, – помощь команде проекта в повышении эффективности ее работы. Достигается она путем устранения препятствий и проблем, возникающих в то время, когда происходит разработка проекта, а также дополнительной мотивацией персонала.
    • Development team (DT). Команда разработки, которая включает в себя квалифицированных сотрудников, работающих над непосредственной реализацией проекта. Scrum Guide (руководство по работе в данной программе) рекомендует набирать в команду не более 7-8 человек. Меньшая численность команды грозит недостаточной производительностью труда. Большая – высокими расходами на поддержание коммуникации между членами команды.

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

    Процесс Sprint – основа методологии

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

    Перед запуском очередного Sprint осуществляется Sprint Planning, целью которого является оценка состояния Product Backlog и создание Sprint Backlog, содержащего набор задач для текущего этапа Sprint. Главной особенностью любого Sprint является наличие четко обозначенной цели, которую необходимо достигнуть за отведенный срок.

    Во время работы над проектом ежедневно проводится так называемый Daily Scrum («планерка»), на котором каждый участник проекта оценивает свою вчерашнюю деятельность, а также составляет план текущего рабочего дня. Основополагающей задачей Daily Scrum является оценка статуса проекта и прогресса текущего Sprint, а также ранний мониторинг проблем, с которыми может столкнуться команда разработчиков проекта. По завершении каждого Sprint осуществляются Sprint Review и Sprint Retrospective, которые определяют степень эффективности команды в прошедшем Sprint, а также прогнозируют производительность работы над проектом в следующем Sprint.

    Некоторые особенности методологии

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

    • Возникающие сбои в работе Scrum зачастую просто являются результатом неверного применения функционала программы. Эта методология очень чувствительна к максимально точной организации рабочего процесса, основные принципы которой описаны в документе под названием Scrum Guide.
    • Scrum должен применяться для управления проектами, требования к которым не вступают в противоречия с идеологией данной программы. Крайне не рекомендуется использование Scrum в fixed-cost или fixed-time проектах. Так, суть данной методологии подразумевает возможность внесения изменений в проект на любом этапе его разработки.
    • Методология Scrum ориентирована на потребности клиента, и ее можно адаптировать к различным типам работы.
    • Важной особенностью и преимуществом является возможность выдавать потенциально рабочий и функциональный продукт по завершении каждого Sprint.
    • Так как Scrum является членом программной «семьи» Agile, в ее функционале не предусмотрена возможность планирования коммуникаций и реакции на риски. Это сильно препятствует и даже делает невозможным какое-либо противодействие нарушениям правил.
    • Продуктивная работа в Scrum должна проводиться профессиональной и многофункциональной командой проекта, создание которой сопряжено с немалыми затратами на отбор и обучение персонала.

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

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

    Пояснительная записка Данное занятие было составлено и проведено к 69-летию победы, т. е., относится к лексической теме «День Победы»....

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

    Одной из самых актуальных проблем для простых интернет-пользователей и владельцев сайтов / форумов является массовая рассылка . Со спамом...
    Вопрос, касающийся ритуалов на кладбище – колдовской закуп. Я маг Сергей Артгром расскажу что такое закуп в ритуалах черной магии....
    б. еТЛЙО нБЗЙС ОЕЧЕТПСФОЩИ УПЧРБДЕОЙК оБЫБ ЦЙЪОШ УПУФПЙФ ЙЪ УПВЩФЙК. зМПВБМШОЩИ, ВПМШЫЙИ, НБМЕОШЛЙИ Й УПЧУЕН НЙЛТПУЛПРЙЮЕУЛЙИ. хРБМ...
    К огромному сожалению, такое явление, как повышенная нервная возбудимость, стало на сегодняшний день нормой. Эта проблема встречается как...
    В настоящее время мышцы классифицируют с учетом их формы, строения, расположения и функции. Форма мышц . Наиболее часто встречаются...
    Зевота – это безусловный рефлекс, проявляющийся в виде особого дыхательного акта происходящего непроизвольно. Все начинается с...