Как команда Scrum учитывает инфраструктурные задачи на совещании по планированию?


33

Как команда Scrum учитывает задачи разработки и инфраструктуры на совещании по планированию?

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

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

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

Ответы:


25

На самом деле это не пользовательские истории. Это истории заинтересованных сторон. Если на самом деле за программное обеспечение не платят пользователи, редко бывает, что история создается исключительно для их выгоды.

Я приведу пару примеров:

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

Большинство технических историй на самом деле приносят пользу бизнесу, но редко для пользователей. Фразировка их по-другому может помочь. Я обычно использую шаблон Криса Мэтта:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

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

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

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


3
Семантика ... ИМХО это идет вразрез с гибкой философией; добавление необходимого разделения, где оно не дает никакой реальной ценности, кроме теплых нечетких чувств.
Аарон Макивер

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

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

1
@ Soronthar Где это заканчивается? «Чтобы снизить уровень разочарования, мы, как команда разработчиков, хотим создать свои собственные правила». Это одна из причин того, что вы по-прежнему сосредоточены на пользователе, и это все. Задачи должны быть скрыты от ПО; поскольку ПО не должно заниматься этими деталями.
Аарон Макивер

9
О, и на всякий случай неясно - меня больше заботит выполнение полезной работы, чем Scrum. Или Бережливый. Или BDD. Я также считаю, что наиболее полезная работа в области программного обеспечения связана с обучением и управлением рисками. Когда методология мешает выполнять полезную работу, я склоняюсь к полезной работе.
Lunivore

12

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


3
Я думаю, что для команд опасно стирать различие между вещами, которые непосредственно ценны для пользователя, и вещами, которые, как мы надеемся, обеспечивают косвенную ценность. В частности, подход «все, что нам нравится, является ценным» поощряет разработчиков золото и инфраструктуру ради инфраструктуры. Я настоятельно рекомендую людям считать только истории, имеющие прямую ценность для бизнеса, в сторону скорости, потому что это единственное, за что клиенты будут платить наличными.
Уильям Пьетри

3
Вальс с медведями. Все, что вы делаете по-настоящему ценно, в основном ценно, потому что никто не делал этого раньше (в противном случае есть другие, более дешевые способы сделать это). Большая часть того, что мы делаем, является ценной, так как мы учимся делать что-то новое. Задачи инфраструктуры помогают нам получать отзывы о новых вещах и учиться быстрее. Я с @Kristo, если это поможет нам учиться быстрее.
Лунивор

@Lunivore - Разница в том, что никто не платит вам за обучение. Они платят вам за то, что вы делаете с обучением. Команды всегда должны уделять время, чтобы улучшить свои инструменты и знания. Но считая это как скорость, путают это с видом работы, которую команда должна сделать.
Уильям Пьетри

Это не только инструменты и знания. Мысленный эксперимент от Эшли Джонсон: подумайте о последнем проекте, который вы сделали. Подумайте, сколько времени потребуется, чтобы сделать это снова с теми же людьми, теми же требованиями, теми же технологиями, но изучив все, что вы узнали. Цитаты из PM составляют примерно от 25% до 33% - остальное - это то, сколько мы учимся в программных проектах. Прочтите сообщение Дэна Норта об Умышленном открытии: dannorth.net/2010/08/30/introduction-deliberate-discovery
Лунивор

11

Делай их постепенно.

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

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


+1: решение Spike в первый раз, затем рефакторинг, чтобы оно было лучше и надежнее во второй раз.
С.Лотт

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

И вам все равно нужно уделять время регулярным размышлениям и совершенствованию процессов.
Майкл

@ Кристо, я не думаю, что твой менеджер по работе с клиентами позволил бы тебе сойти с рук. Даже без установленной скорости вы сделаете правильное предположение и согласуете значение, которое будет предоставлено для тех первых спринтов. Плюс, если вы заметите, что @ S.Lott предполагает, что вы все равно не будете доставлять.
Майкл

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

6

ИМХО, идеальный подход заключается в том, чтобы поместить инфраструктурные усилия как задачи в пользовательскую историю, где она в первую очередь имеет значение; как вы упомянули.

Принимая ваш пример; создание и развертывание вручную подразумевает, что это постоянное усилие и не имеет формы завершения. Это существует бесконечно.

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

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


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

На самом деле эта инфраструктурная работа должна быть частью определения выполненного.
Игорь Попов

4

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

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


2

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


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

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

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

2

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

  • Ревизионная система управления;
  • Автоматизированная система сборки;
  • IDE и другие инструменты разработчика;
  • Серверы разработки;
  • Процесс развертывания; а также
  • Процесс и стандарты проекта.

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

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


1
+1: если этого нет, Agile действительно сложно. Стабильная, проверенная инфраструктура и платформа являются своего рода предпосылкой для гибкости.
С.Лотт

1

Учтите следующее:

  • Команда Scrum добавляет основные функции в существующий пакет продуктов.

  • Существует необходимость в обновлении технологий / инструментов / утилит разработки, чтобы быть в курсе последних событий, основываясь на передовых разработках.

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

  • Поскольку Компания получает непрямое значение из этих пунктов я полагаю , что в интересах прозрачности это Отставание продукта Пункты (PBIS).

  • Команда оценивает эти элементы и обрабатывает их так же, как и любой PBI.

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

Я не хочу, чтобы размер PBI искажался из-за такого рода работы инфраструктуры. Я хочу посмотреть, что делается, и понять, за что я плачу.

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


0

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


2
ХР не рекомендует этого. Некоторые люди делают, но это определенно не является частью экстремального программирования, как определено Beck, et al. Лично я считаю Iteration Zero плохой идеей.
Уильям Пьетри

Другая проблема: вы не всегда начинаете с 0, вы можете понять, что вам нужно что-то сейчас или в следующем спринте.
Энди Визендангер

@William: см. «Планирование экстремального программирования» Кента Бека, глава 15, стр. 66.
Стивен А. Лоу,

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

@William: ага, я вижу, к чему ты клонишь. Я не имел в виду всю программную инфраструктуру, только то, что вы упомянули
Стивен А. Лоу,

0

В нашей команде мы делаем следующее:

  1. Предположим, что коэффициент фокусировки ниже .
  2. Попробуйте включить такие задачи в пользовательские истории, которые действительно нуждаются в их реализации.
  3. Если некоторые задачи абсолютно необходимы, но не дают прямой бизнес-ценности (например, переносить юнит-тесты из одной среды в другую), в начале спринта мы создаем список «непрерывных задач» . Это связанные с развитием задачи, которые не являются историями, но команда разработчиков хочет, чтобы они были выполнены. Мы перечисляем эти задачи на нашей доске, по-прежнему отделяя их от историй. Во время спринта на каждой ежедневной встрече мы проверяем, что было сделано для их достижения.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.