Как вы справляетесь с нефункциональной работой со Scrum во встроенных системах?

15

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

Первые четыре спринта были:

  • Получение RTOS и работает
  • Создание задач написания сетевых и серийных драйверов
  • Написание процедур прерывания для кнопок, связи и т. Д.
  • Написание первичных классов базы данных и методов
  • Написание последовательного меню отладки

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

Мы закончили тем, что написали фразы «пользовательских историй», такие как «Как разработчик ...», что меня не устраивает, но при использовании Target Process (www.targetprocess.com) нет концепции элемента журнала, который задача или работа по дому.

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

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

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

Я хотел бы услышать, как другие справились с этими ситуациями.

Брюс
источник
2
Шаг 1. Найдите других людей с таким же вопросом. Пример. stackoverflow.com/questions/5909533/… . Это очень распространенный вопрос.
С.Лотт
Забавно, сколько времени и усилий люди тратят впустую, пытаясь соответствовать процессу разработки, который, кажется, ничего не добавляет к конечным результатам
Стив

Ответы:

8

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

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

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

Задачи, которые вы перечислили выше, кажутся мне очень неожиданными. Они должны быть в определенном порядке, и они не подлежат обсуждению.

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

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

Билл
источник
7

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

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

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

Если вы неравнодушны к написанию пользовательских историй, помните, что пользователи не обязательно должны быть людьми. Таким образом, вы пишете что-то вроде: «Как обработчик прерываний CMOS, мне нужно уметь определять состояние флага модуляции стека bingle whozzit, когда компрессор fluxotronic сигнализирует о пассивном пониженном байпасе». Абсолютно не пишите пользовательские истории "Как разработчик ...".

Дейв
источник
3
Хороший ответ, кроме последнего утверждения. Разработчики тоже могут быть пользователями, и иногда вам нужно работать, чтобы поддержать других разработчиков в команде.
Брайан Оукли
«Если вы строите инфраструктуру в начале, то вы создаете ее, когда знаете меньше о системе». - из этого не следует, что опытный разработчик понятия не имеет, что должна делать базовая инфраструктура. Если вы построили каждую часть инфраструктуры (которая по определению поддерживает множество функций) только для решения насущной проблемы и без каких-либо попыток предвидения, вам может понадобиться переписывать ее бесконечно, и, возможно, придется переписывать готовые функции, чтобы их реинтегрировать. с инфраструктурой, которая позже была переписана для размещения какой-то другой функции
Steve
1

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

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

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

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

  • Тестирование. Еще одна неудача, потому что команда в Scrum рассматривается как группа межфункциональных членов. Это означает, что все занимаются разработкой и тестированием, и поэтому не существует ситуаций, описанных в вашем последнем пункте (или, по крайней мере, не пять дней). Это не означает, что не может быть отдельного QA для проведения более сложных и изощренных тестов, но команда должна предоставить уже протестированную / проверенную функцию. В вашем случае это выглядит так, будто Scrum - это не то, что вам нужно. Вам необходимо отдельно заниматься разработкой, тестированием и передачей функций между ними.
Ладислав Мрнка
источник