Есть мысли об использовании пользовательских историй для определения потребностей бизнеса/платформы?

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

As a Business Owner
I want regular database backups
So that we can maintain business continuity

As a Business Owner
I want end-user analytics
So that we can know how our platform is being used

As a Business Owner
I want end-user authentication
So that only registered users have access

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

Любой, кто использует систему, является пользователем. Пользуется ли системой «Владелец бизнеса»? Тогда они пользователи. У них разные требования от конечных пользователей, которые не хотят использовать аналитику конечных пользователей.

Ответы (4)

Идентификация основного потребителя истории приемлема

Термин «пользователь» в пользовательских историях часто лучше понимается как действующее лицо или роль в сценарии использования или даже просто как потребитель ценности . Основная цель иметь четко определенную роль в пользовательской истории — сформулировать историю таким образом, чтобы ограничить масштаб. Второстепенная цель — убедиться, что пользовательская история рассматривается как заполнитель для совместной работы, а не как суррогатная спецификация. С идентифицированным потребителем истории команде становится намного легче узнать, с кем поговорить о деталях реализации или критериях приемлемости.

Короче говоря, с чисто прагматической точки зрения в ваших историях нет ничего плохого. Однако они могут быть лучше, если вы используете «пользователя» в формате истории для улучшения контекста и совместной работы.

Улучшение ваших историй

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

Используя цели, изложенные выше, вы можете переписать свой первый рассказ следующим образом:

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

Эта история, вероятно, будет лучше оригинала, потому что:

  1. Он определяет соавтора, который может помочь определить детали реализации.
  2. Он определяет полезную цель, которая ограничивает область решения, но не слишком предписывает детали реализации.
  3. Он обеспечивает контекст о том , почему история полезна, и этот контекст часто может определять варианты реализации и обсуждения сотрудничества.

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

Ожидается итерация функций

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

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

Используйте пользовательские истории в качестве начала разговора и стенографические заметки для поддержки совместной работы. Не пишите подробные истории о вещах, которые в данный момент не входят в область (YAGNI), но потратьте время на декомпозицию и определение действительно важных вещей во время уточнения невыполненной работы и планирования спринта. Когда данная функция, наконец, станет частью целостной Цели Спринта, станет гораздо более очевидным, имеете ли вы право на то, кто и что в ваших историях, и это, в свою очередь, станет лучшим руководством для Команды Разработки, когда они будут работать. о том , как это реализовать во время текущего Спринта!

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

Добро пожаловать в ПМ.

Один из самых влиятельных людей в этом мире (управления проектами), Майк Кон, написал об этом статью еще в 2015 году, которую вы обязательно должны прочитать, под названием Not Everything Need to Be a User Story: Using FDD Features . Некоторые из его статей использовались, чтобы дать хорошие ответы на вопросы в этом сообществе, и это также подходит вам.

В названии статьи упоминается авторское решение для таких случаев, когда пользователь находится слишком далеко — Feature-Driven Development (FDD) .

Как пишет автор

Функция FDD записывается в следующем формате:

[action] the [result] [by|for|of|to] a(n) [object]

В качестве примеров рассмотрим следующие:

  • Оцените цену закрытия акции
  • Генерация уникального идентификатора транзакции
  • Изменить текст, отображаемый в киоске
  • Объединить данные для повторяющихся транзакций

У вас уже есть несколько отличных ответов, но я просто хочу кое-что добавить. Вы говорите, что ваши истории:

на самом деле не ориентированы на конечного пользователя в традиционном смысле

Я не уверен, что это относится ко всем историям, которые вы перечисляете.

Например:

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

Да, это важно для владельца бизнеса, но это связано с тем, какое влияние это окажет на конечных пользователей.

Вы можете переписать его как-то так:

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

Аналогично для:

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

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

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

Что плохого в том, чтобы предъявлять требования к владельцу бизнеса? Вот кто платит зарплату разработчикам. Владелец бизнеса или генеральный директор отвечает за посредничество между маркетингом и проектированием. Маркетинг скажет, что им нужна какая-то функция, чтобы иметь возможность продавать программное обеспечение. Инженеры скажут, что это будет стоить очень дорого. Затем генеральный директор возвращается к маркетингу и говорит, что цена должна вырасти настолько, чтобы заплатить за эту функцию — стоит ли она того? Генеральный директор также может превзойти инженеров, заявив, что эта функция должна быть дешевле в реализации.
Опасение заключается в том, что это может привести к отсоединению от клиентов. Вы можете в конечном итоге потратить время и ресурсы на то, что клиенты не очень ценят, или, наоборот, вы можете упустить возможность создать что-то, что они действительно ценят. Связывая требования с ценностью для конечного пользователя, вы помогаете организации думать с точки зрения того, что действительно ценят ее клиенты.
Излишняя сосредоточенность на конечном пользователе также может привести к упущению множества нефункциональных требований. Конечного пользователя, вероятно, не волнуют такие вещи, как соответствие PCI, номера SLA, MTF сервера приложений, частота аудита безопасности приложений внешней фирмой и т. д. По этой причине я не очень люблю пользовательские истории; Мне также кажется, что они редко фиксируют требования с адекватным уровнем детализации.

Пользовательские истории — это инструмент для понимания и удовлетворения потребностей пользователей. Я мог бы изменить это последнее, чтобы сказать: «Как платный пользователь, я хочу, чтобы мои логины были защищены, чтобы с меня не взимали плату за несанкционированное использование моей учетной записи».

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

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

Как насчет того, чтобы улучшить ваше улучшение, как насчет «Я хочу, чтобы мои логины были защищены, чтобы с меня не взимали плату за несанкционированное использование моей учетной записи»?
Отдельно стоит отметить, что может быть даже несколько лиц, заинтересованных в безопасности учетной записи: отдел по борьбе с мошенничеством, отдел соблюдения требований, клиент, супруга клиента (владелец кредитной карты в файле) и так далее. Иногда бывает полезно иметь несколько историй, когда структура или контекст варианта использования различны. В данном случае, вероятно, это было бы не так, но я не могу не умолчать об этом конкретном аспекте подхода к пользовательским историям только потому, что эта тема так часто всплывает в моих коучинговых ролях.
@Todd Во-первых, мне нравится твоя идея, поэтому я включил ее. Во-вторых, я согласен с тем, что может быть много заинтересованных сторон, и может возникнуть целый разговор о разнице между внутренними бенефициарами, такими как отдел по борьбе с мошенничеством, который действительно получает реальную ценность от работы, и внутренними заинтересованными сторонами, такими как чемпионы продукта, которые заинтересованы в результате. от имени конечного пользователя. В этих вопросах всегда нужно балансировать, как далеко копать.