Должны ли задачи дизайна быть пользовательскими историями?

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

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

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

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


person wannabeartist    schedule 02.11.2012    source источник
comment
Тесно связанные: stackoverflow.com/questions/2795733/ и stackoverflow.com/questions/1707080/   -  person Thilo    schedule 02.11.2012


Ответы (2)


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

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

О вопросе

Большинство историй, которые вы можете определить как «Как пользователь…», как особенность истории, также могут работать с пользовательским интерфейсом. Поэтому, чтобы было понятно, вы можете разделить историю на подзадачи. Хотя некоторые работы было бы сложно представить в пользовательских историях INVEST. Например, ошибки, тех. отдел и так далее. Они по-прежнему представляются как истории особого типа (ошибки, технические истории). вы не можете показать их на демо, как бы вы ни упоминали.

person Arseny    schedule 02.11.2012
comment
Идея с ходячим скелетом крутая, но мне трудно представить, как она будет работать с реальным, достаточно большим и сложным программным обеспечением. Мне было бы очень сложно реализовать функцию, не имея предварительного представления о том, как все это работает вместе. - person wannabeartist; 02.11.2012
comment
Верно. Иногда приходится придумывать дизайн. Может быть на нулевой итерации. Однако нет необходимости полировать его, чтобы сделать его идеальным, вместо этого каждая история, которая использует эту архитектуру, будет изменять и полировать дизайн. - person Arseny; 02.11.2012

(...) before those can be implemented, the system needs to be designed: Architecture must be designed, database must be designed, technologies chosen for the GUI and business logic. (...)

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

Именно здесь живет одна из красавиц Agile (в отличие от водопада), приветствующая перемены.

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

AS A server administrator,
I WANT to upgrade our webserver
SO THAT it will handle better the memory consumption

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


P.S.

Также важно, чтобы Бэклог Продукта был ясным и доступным, а также обеспечивалось надлежащее взаимодействие между P.O. и команда разработчиков. Этим должен руководить Скрам-мастер.

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

person talles    schedule 07.11.2012
comment
(о ролях) Я поспрашивал, и действительно кажется, что обычно так и делается. Однако есть несколько противоречащих друг другу статей, например: >scrumalliance.org/articles/ *** см. 3. История пользователя для разработчика - person wannabeartist; 08.11.2012
comment
@wannabeartist идеал состоит в том, чтобы связать технические потребности с пользовательскими историями, которые представляют ценность для клиента (например, рефакторинг поиска, ЧТОБЫ поиск был быстрее), но иногда вы просто не можете. В этом случае убедитесь, что другие истории спринта действительно представляют ценность для клиента. Это очень важно, когда у вас есть весь спринт без ценности или с небольшой ценностью для клиента. - person talles; 09.11.2012