Как заставить Scrum работать в команде с определенными ролями?

13

Некоторая справочная информация

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

  • 5 разработчиков (со стажем от 2 до 5 лет, я один из них)
  • 3 сотрудника по внедрению (они занимаются развертыванием и обучением программного обеспечения)
  • и 1 руководитель проекта.

Мы разрабатываем множество небольших и средних проектов, и их сроки обычно пересекаются. Развитие идет так:

  1. «Клиент» дает нам набор начальных требований
  2. Мы разрабатываем систему по указанной спецификации
  3. Представить указанную систему «клиенту»
  4. «Клиент» предъявляет нам дополнительные требования на основании указанной презентации
  5. Повторяйте 2-4, пока «клиент» не исчерпает новые требования или не закроется дата назначения развертывания
  6. Настройте и разверните систему

Это, вместе с тем фактом, что именно «клиент» большую часть времени обрабатывает сроки (это красный флаг, как я вижу здесь в «Программистах» и «PM.SE»), и мы не следуем определенным методическим руководствам разработки к ковбойскому кодированию, почти не поддерживаемому коду и ошибкам, которые попадают в производство, среди прочего. Вот почему мы решили использовать Agile-методологию, такую ​​как Scrum.

Почему Скрам?

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

Проблема со скрамом

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

Вопрос

Повлияет ли это на эффективность Scrum как методологии? Нужно ли вносить другие изменения для компенсации? Или лучше отказаться от этой мысли и подумать о другой методологии?

Потусторонние
источник
17
Ваше "Почему Scrum?" абзац довольно важен, и сейчас он практически пустой. Кажется, ваш менеджер не любит то, что вы в настоящее время делаете, и поэтому случайно выбрал Scrum, потому что Scrum.
RemcoGerlich
4
есть определенная роль / место для специалистов в гибкой (разборчивой или иной) среде. Не путайте тот факт, что от людей ожидают того, что они не специализируются на «запрете» на специалистов. Кроме того, не могли бы вы рассказать, почему вы выбрали скрам, а не канбан? мне кажется, что, учитывая постоянное повторение требований, лучше подходит, чем тот, с заранее определенными спринтами, которые лучше всего работают с фиксированными требованиями ...
Элиас Ван Оотегем
12
5 разработчиков, но ни одного тестера?
Апфельсафт
8
@ Revenant вы путаете мастер на все руки (индивидуальный) с кросс-функционалом (команда).
guillaume31
6
Популярность. Всегда лучший способ выбрать что-нибудь.
Роберт Харви

Ответы:

17

На самом деле, ваш нынешний способ работы не так далек от Scrum, как вы думаете.

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

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

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

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

Барт ван Инген Шенау
источник
2
Единственное изменение, которое Scrum и другие методологии Agile представили бы, заключается в том, что продукт / все функции должны быть «выполнены» - в состоянии доставки - в конце каждой итерации.
Станниус
5

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

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

Но, честно говоря, это не звучит так, как будто SCRUM - это далеко для вас. Часть SCRUM - это гибкость и поиск того, что лучше для вашей команды. Часть XP уважает вашу команду и адаптируется. Может быть, через 100 лет у нас может быть более развитая профессия с жесткими и быстрыми правилами (хотя я сомневаюсь в этом), но сейчас делать то, что работает для вас, - это все, что у нас есть. Важно иметь петли обратной связи. Если что-то не работает, команда должна обсудить это и попробовать что-то новое, пока не найдет то, что работает.

Encaitar
источник
3
+1 за ХР. Вопрос гласит, что основная причина принятия Scrum заключается в том, что «мы не следуем определенной методологии разработки, которая ведет к ковбойскому кодированию, почти не поддерживаемому коду и ошибкам, возникающим в процессе производства» - Scrum мало или ничего не сделает для этого, так как он не предписывает какие-либо технические приемы, и только технические приемы будут решать эти проблемы. Есть много других гибких фреймворков, которые делают, с XP, вероятно, лучшим кандидатом, поскольку он является самым близким из известных Scrum по структуре.
Жюль
3

Как заставить Scrum работать в команде с определенными ролями?

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

Некоторые вещи, которые вы можете решить:

Спринт

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

Фиксированные сроки

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

Робби Ди
источник
Просто чтобы указать на то, что кажется ужасной ошибочной характеристикой Scrum: не каждый является разработчиком - вы можете и будете иметь специализированных участников, но они являются частью команды разработчиков и отвечают за вывод спринтов этой команды. В нашей настройке Scrum тестеры обычно отстают от нескольких спринтов с точки зрения того, над чем они работают, по сравнению с разработчиками, так как они не могут проверить то, что не сделано, но они создают планы тестирования и возможные тестовые данные, которые им понадобятся. В то время как они имеют дело с основными функциями, мы входим в более старый режим исправления ошибок и готовим патч, поскольку они приближаются к завершению выпуска.
Даффи
3
На самом деле, вас «линчевали» за то, что вы предлагали, чтобы к тестерам относились как к цыплятам, а не свиньям (по крайней мере, поэтому я и проигнорировал этот ответ) ...
Дэвид Арно
@ Даффи, я согласен - нет никаких других названий, кроме разработчика, но на самом деле роли часто выстраиваются очень по-традиционному.
Робби Ди
@DavidArno В нашем магазине они есть. Фактически, у нас есть идентичная установка, которую намечает Даффи. Наши тестеры работают спринт или два позади. Проблема в том, каких сотрудников вы считаете командой разработчиков. Как я отмечал в своем посте , я просто не согласен с тем, что администраторы баз данных и менеджеры сборок могут быть распределены по времени так же, как разработчики vanilla - YMMV.
Робби Ди
Нам удается довольно хорошо распределить временные рамки, для оценок тестеров требуется немного другое мышление и процесс, так как они являются более сложным процессом, чем основанные на интуитивных оценках, но они обычно заканчиваются гораздо более надежными оценками времени (как только они могут определить их во время Первый проход тестирования), чем разработчики из-за характера их работы по сравнению с нашей. Я разработчик DBA / DB команды и отлично вписываюсь в спринт, поэтому я не уверен, что они не вписываются в рабочий процесс для других.
Даффи
3

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

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

ndyer
источник
0

Scrum плохо работает с отдельными проектами, которые перекрываются, поскольку у вас нет стабильного набора людей, работающих над проектом для полного спринта. Следовательно, такие понятия, как многословие и т. Д., Вероятно, просто будут вас расстраивать.

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

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

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

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

Таким образом, есть немного Scrum, который поможет вам, но попробуйте склониться от Scrum вместо использования Scrum.

Ян
источник
«Отсюда такие понятия, как многословие ...» - вы имели в виду скорость?
Робби Ди
Если бы это было на больших корпоративных приложениях с несколькими отделами, желающими разные вещи в разное время, Scrum будет плохо для этого?
JeffO
@jeffO, мог работать с Scrum, при условии, что ОДИН человек мог выбирать между отделами.
Ян
@Ian - это хорошая причина, чтобы иметь только одного владельца проекта, и проекты можно нарезать и нарезать кубиками, как большие, так и маленькие, если кто-то посчитает нужным.
Джефф