Быстрое и грязное определение истории пользователя :
"As a <role>, I want <goal/desire> so that <benefit>"
В этом общепринятом определении мало места для определения бизнес-правил, ограничений или пользовательского ввода.
Тривиальный пример просто для иллюстрации:
"As a <librarian>, I want to <register new books> so that
<students can find their availability online>"
В этом глупом примере, где можно определить поля, необходимые при регистрации книги? Должно ли это быть написано где-нибудь? Или владелец продукта должен передать необходимые бизнес-правила в устной форме?
источник
Обычно в широкой охватывающей пользовательской истории, которая имеет много аспектов, я пытаюсь получить наиболее общий пример истории, а затем для деталей я создаю дочерние пользовательские истории, которые наследуются от нее. Многие инструменты Agile для управления проектами, такие как RallyDev, позволяют вам легко это делать, и я считаю, что это имеет смысл.
Регистрация новых книг обширна, поэтому, возможно, есть еще 10 детских историй о том, как
<role>
бы книги были зарегистрированы.Чрезвычайные подробности этих вещей или причудливые незначительные детали, которые я обычно определяю в одной или нескольких задачах в этой пользовательской истории. Задачи помогают определить работу по разработке и дизайну, которая должна быть выполнена (на общем уровне), чтобы соответствовать этой пользовательской истории (например, написать валидатор, чтобы обеспечить ввод в поле описания менее 50 символов ...) РЕДАКТИРОВАТЬ: я просто хотел добавить что, вероятно, лучше избегать экстремальных подробностей из пользовательских историй, потому что это, вероятно, не то, что пользователь действительно будет сильно волновать. Пользователи хотят объяснять программное обеспечение в общих чертах, и они зависят от разработчиков программного обеспечения, чтобы выяснить и скрыть детали от них.
Это как я подхожу к проблеме, но я уверен, что есть несколько разных способов.
источник
Ответ прост, включить бизнес-правила в критерии приемлемости.
Тривиальный пример просто для иллюстрации:
Как библиотекарь, я хочу зарегистрировать новые книги, чтобы студенты могли найти их в Интернете
Я буду удовлетворен, когда: * Я могу зарегистрировать следующие поля: - ISDN - Автор - Дьюи Десятичный бла-бла * Я вижу подтверждение, что книга была зарегистрирована системой * Я могу просмотреть книгу в системе
источник
Это не то, для чего нужны пользовательские истории. Это не требования к программному обеспечению, которые фиксируют все детали или бизнес-правила, необходимые для написания реализации. Это просто описание того, что приложение должно делать с точки зрения пользователя.
Помните, что важно: создание правильного программного обеспечения. Вы используете все, что нужно для этого, и пользовательские истории просто так, что вы убедитесь, что собрали необходимые функции, которые должно иметь приложение, чтобы вы могли потом говорить о них, расставлять приоритеты, оценивать их и т. Д. Недостающая часть от классического пользователя История (как ... я хочу ... чтобы) рассказывала об общении между теми, кто участвует в создании программного обеспечения.
Наличие деталей в качестве критериев приемлемости, вложенных историй, технических задач, связанных с пользовательской историей, в документе спецификации или чем-то еще, выходит за рамки того, с чем вам может помочь пользовательская история. Пользователь остается только «предметом» разговора при принятии решения о том, как собрать программное обеспечение.
источник
В приведенном примере есть много деталей регистрации книг, о которых мало кто знает разработчиков, таких как Дьюи или другие системы классификации, номера ISBN, номера приобретений, дубликаты / названия / авторы, другие издания и так далее. Для новой системы такие детали должны быть предоставлены клиентом (и библиотекарь, всех людей, безусловно, позаботится о них).
По словам Стива О'Коннелла: «Страшно созерцать, сколько бизнес-политики создают разработчики, которым не хватало необходимой детализации в спецификациях, поэтому просто придумал это для себя».
источник