Подтвердить что ты не робот

Прервать первый проект в истории пользователей

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

Например, если бы я строил машину, а первая пользовательская история говорила что-то вроде "Как водитель, я бы хотел изменить направление движения, чтобы я не ударил". Это подразумевают пользовательский интерфейс (рулевое колесо), а также движение (колеса) и все необходимое для их соединения (ось, рама, сцепление и т.д.). В конце концов, эта история первого пользователя всегда, кажется, составляет около 40% проекта, потому что она в значительной степени связана с базовой архитектурой.

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

4b9b3361

Ответ 1

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

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

Для этого вам нужно будет пройти через слой пользовательского интерфейса, уровень обслуживания, сохранить некоторые данные на уровне данных и сделать вызов API для twitter и gmail.

Ваши задачи могут быть:

  • Добавьте в меню пункт
  • Добавить новый экран проверки подлинности gmail
  • Добавить экран проверки подлинности Twitter.
  • Добавить экран выбора контакта
  • Добавьте контроллер, который вызывает ваш сервисный уровень
  • Напишите новый сервис, который выполняет работу.
  • Сохранить контакты в базе данных
  • Измените существующую службу вызова API gmail, чтобы получить контакты
  • Добавьте службу вызова twitter API для отслеживания выбранных контактов

Там: Это 9 возможных задач прямо там. Теперь, как правило, вы хотите, чтобы ваши задачи занимали примерно полтора-два-два дня, с уклоном в сторону одного дня (лучшая практика, для калибровки). В зависимости от сложности, вы можете сломать эти задачи дальше или объединить некоторые, если они два простых (возможно, две службы вызова API настолько просты, вы просто имеете возможность изменять внешние API-интерфейсы).

Во всяком случае, это простой пример того, как разрушить истории.

EDIT:

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

Ответ 2

Когда мы начали проекты под управлением стиля Scrum, первый набор задач всегда был широким, или, как вы его описали: epic. Это неизбежно, рамки любого проекта обычно являются самой важной, самой большой и отнимающей много времени частью, но она поддерживает остальную часть проекта. Чтобы уменьшить масштаб на подавляющем уровне, сколько нужно посмотреть, можете ли вы перечислить основные части MOST. Затем работайте над определением этих задач в качестве отправных точек. Поэтому у вас есть несколько задач в качестве отправных точек для широкого начала. Надеюсь, что это имеет смысл!

Ответ 3

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

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

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

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

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

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

Третий рассказ: "Как пользователь, я хочу определить свои собственные фильтры", и мы построили эту часть системы.

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

После некоторого момента ранние пользователи могут полностью использовать систему. Затем мы добавили истории, позволяющие новым пользователям регистрироваться и открывать их для публики.

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

Ответ 4

История пользователей описывает what, в то время как задача больше о how.

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

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

Удачи.

Ответ 5

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

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

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

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