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

18

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

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

Хотя я видел, как Scrum хорошо работает для небольших групп, работающих полный рабочий день, природа этой организации иная:

  • Члены являются добровольцами . Некоторые из них студенты дневного отделения. Другие работают на полную ставку. Мы не можем ожидать постоянного вклада от кого-либо, поскольку их реальная жизнь имеет приоритет.
  • Несмотря на то, что почти каждый имеет многолетний опыт написания программного обеспечения, не так много участников сделали это профессионально или в команде.
  • Там нет нет Владельца продукта . Требования к этим проектам определяются комитетом. Члены этого комитета также будут работать над реализацией. Это означает, что у нас не будет единого, преданного владельца продукта.
  • У нас нет сроков (мягкий или жесткий). Проекты будут выполнены, когда они будут сделаны.

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

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

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

  • Требования Gathering собрание (ы). Где все сидят за столом и обсуждают пользовательские истории, делают наброски макетов пользовательского интерфейса и создают журнал невыполненных работ.
  • Спринт Ретроспективы . Это будет интересным способом для нас объединиться в процессе разработки, который работает для нас как команды добровольцев.

В чем я не уверен:

  • Как следует ежедневно Stand планы лечить? Интересно, будут ли они вообще иметь большую ценность в наших условиях? Насколько я понимаю, ритуал заступничества заключается в том, что он помогает общению, естественным образом распространяя информацию в команде. Учитывая тот факт, что наши Спринты, вероятно, будут доставлять гораздо меньше сложности, чем средний Спринт, может быть меньше необходимости быть в курсе всех достижений / разработок других членов команды.
  • Стоит ли настаивать на таких вещах в XP, как непрерывная интеграция, проверка кода и TDD? Я обеспокоен тем, что это будет требовать много. Я бы соблазнился применить эти концепции в будущих проектах, когда люди будут лучше знакомы со Scrum и будут работать в команде.

Мои вопросы:

Можно ли адаптировать Scrum к среде, основанной на волонтерах?
И мой запланированный подход пока идет в правильном направлении?

MetaFight
источник
Я не помню, чтобы Scrum что-то говорил о необходимости иметь бизнес-сроки (кроме самого спринта). На самом деле это работает намного лучше, если у вас нет сроков, с точки зрения «сосредоточиться на продуктах, а не проектах». Установленные извне крайние сроки разбивают схватку, заставляя команды «оценивать» то, что, по их мнению, они должны были сделать в спринте, а не то, что они действительно могут сделать. Это не мешает большинству компаний навязывать их в любом случае, но они совсем не присущи Scrum.
Aaronaught

Ответы:

21

Посмотри в Канбан. Это более уместно, чем SCRUM для ваших ограничений.

Редактировать: SCRUM - это (очень грубо) упорядоченное отставание со спринтами и церемониями, чтобы гарантировать, что объем незавершенной работы остается под контролем и что-то солидное в конце каждого спринта. Если вы отказываетесь от церемоний и ритма спринтов, вы в конечном итоге получаете Kanban: упорядоченное отставание и сильный упор на прямом ограничении работы «в процессе» и следя за тем, чтобы все помеченное как «сделано» было выполнено, а не навязывая стабильность в конце каждый спринт

Вы по-прежнему получаете гибкие преимущества: выпуск в любое время, гибкость, некоторую меру предсказуемости - хотя SCRUM может немного продвинуть вас в этом аспекте - без церемоний или аспектов SCRUM, которые не подходят для свободной, распределенной команды без обязательств , Подвох? Отказ от церемоний требует большей дисциплины, поэтому вам ДЕЙСТВИТЕЛЬНО нужно обратить внимание на тесты, качество кода, текущую работу в процессе и обеспечить достаточную проработку вершины отставания (вещи, готовые для подбора людьми).

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

(И да, все идеи TDD, CI, обзоры и идеи коллегиального программирования - хорошие идеи).

ptyx
источник
1
TDD имеет решающее значение. Вам следует установить стандарт для покрытия тестами и отклонить любой новый код, который не сопровождается тестами.
Кевин Клайн
1
Даже в волонтерской организации для внутренних проектов? Я волнуюсь, что это в конечном итоге будет слишком похоже на работу, а не на веселый общественный проект, чтобы участвовать в нем.
MetaFight
3
Особенно в волонтерской организации. Вам необходимо поддерживать некоторый уровень качества (код, дизайн и функции). Ваши альтернативы - охранники (доверенная основная команда, отвечающая за принятие и проверку коммитов) или армия тестировщиков (добровольцы? Удачи). TDD не является панацеей, но его легко проверить по отдельности, применить на уровне репо / CI (покрытие) и помочь отфильтровать действительно плохие проекты или полностью нефункциональный код.
ptyx,
@MetaFight Если вы хотите, чтобы отставание и распределение работы были более увлекательными, вы можете попробовать KanbanFlow.com для kanban. Они используют технику Помодоро и дают очки тем, кто прошел один Помодоро (?). Это один из методов геймификации сайтов , которые делают вещи более увлекательными.
Джон Исайя Кармона
5

Для устранения различий, которые вы сначала отметили:

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

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

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

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

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

Барт ван Инген Шенау
источник
5

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

Agile - это общение и сотрудничество. Есть причина, по которой в Agile Manifesto об этом говорят 2 пункта из 4.

Индивидуумы и взаимодействия над процессами и инструментами

Сотрудничество с клиентом в рамках переговоров по контракту

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

Второе, что я хотел бы отметить, это не просто расчесывать технологические части Agile. Многие считают (включая меня), что именно они делают гибкую работу, а не процессную сторону вещей. Проверка кода - это важная и наиболее открытая работа, когда кто-то, кто знает проект, проверяет коммиты / push для обеспечения достаточно высокого качества. TDD практически дается для любого гибкого проекта. Это гарантирует, что любые изменения в коде не нарушат предыдущую функциональность, что еще более важно в вашем случае, когда добровольцы не могут быть обеспокоены исправлением ошибок и ошибок других людей. Это также облегчает проверку кода, потому что рецензент может видеть в тестах, какие функции были добавлены, и, запустив их, он гарантирует, что эта функциональность действительно работает как задумано. Непрерывная интеграция аналогична TDD.

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

  • Владелец продукта : Хотя хорошо, что у вас есть целый комитет, посвященный этому, должен быть один человек, который отвечает за интерпретацию слов этого комитета в спецификации или пользовательских историях и обеспечение их надлежащего выполнения.
  • Координатор и Scrum Master : Этот человек должен нести ответственность за весь процесс и гарантировать, что все знают о важных вещах, происходящих в проекте. Кроме того, он поддерживает вики и инструменты для отслеживания задач и ошибок. Если у кого-то есть вопрос о проекте, это первый человек, которого они должны спросить.
  • Главный разработчик и архитектор : человек, который знает код лучше всего. Он проверяет код и гарантирует, что качество кода достаточно хорошее для быстрой разработки.
Euphoric
источник
1

Вы не можете адаптировать его так, как вы описываете, и по-прежнему называть это SCRUM. но, по моему мнению, вы можете использовать Scrum, как описано ниже, для настройки, которую вы описали.

  1. Есть фиксированная итерация. Так что вы можете измерить свой прогресс. Это не только для руководства, но и для команды, чтобы «знать», как они работают.
  2. Попросите добровольцев поделиться возможностями в начале итерации. Вся команда нуждается в том, что участники совершают, иначе определенный член может покинуть команду для работы, которая более профессионально сделана.
  3. Без крайнего срока это нормально. Scrum не требует, чтобы то, что вы делаете в конце каждой итерации, было потенциально возможным. Это позволит вам решить, что делать дальше, основываясь на том, что вы сделали до этого (что работает).
  4. Отсутствие владельца продукта также может работать. У вас может быть какая-то система голосования, позволяющая составлять список отставаний и принимать / отклонять выполненную работу.
  5. Сбор требований не является частью Scrum. Вы можете сделать это так, как хотите. Но не включайте это как часть объема итерации. Есть отдельная способность для этого. Поэтому для итерации планируйте только ту работу, для которой требования ясны, например, команда знает критерии приемлемости.
  6. Ретроспектива хороша. Так что запустите Scrum как есть, но затем, используя ретроспективу, посмотрите, что работает, а что нет, например, вам может понадобиться изменить размер итерации, вам может понадобиться избавиться от некоторых добровольцев, которые тянут всех остальных.
  7. Ежедневное состояние обязательно. Это дает возможность команде синхронизироваться друг с другом, то есть они будут согласовывать свои усилия так, чтобы ни одна задача не была излишне заблокирована из-за недоступности результатов другого участника.
  8. ХР это хорошо. Иметь строгое определение сделано на основе XP, например, ни один код не входит, если не рассматривается. Делай меньше, чтобы делать больше ..
Асим Гаффар
источник
1

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

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

Это заставляет меня задуматься о процессе разработки, более сфокусированном на каркасах и прототипах.

Вы можете иметь пул доступных рабочих элементов и поощрять людей писать для них каркасные рамки. Вы можете использовать их как Tracer Bullets (терминология, заимствованная у программиста Pragmatic), чтобы отточить идею и дать людям вдохновение для дальнейшего развития. Оттуда вы можете превратить успешные идеи в прототипы, опять же, это очень маленькие проекты, призванные помочь людям узнать больше о проектах. После этого у вас теперь есть небольшой раздел с солидными идеями, которые были созданы множеством людей, и вы можете передать их немного более активной команде, которая сможет интегрировать эти идеи в вашу систему.

Nimnam1
источник
0

Я думаю, что Канбан лучше подходит для этой ситуации.

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

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

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

Акаш Патель
источник