Это может помочь отойти от традиционного шаблона пользовательской истории и перейти к ориентированному на заинтересованные стороны формату внедрения функций (BDD в пространстве анализа):
In order to <achieve a goal>
As <the stakeholder>
I want <someone to do something for me>.
Вы можете выяснить, кто является заинтересованным лицом, подумав о том, кто будет готов заплатить за рассказ, который будет доставлен. Например, блоки CAPTCHA - те раздражающие вещи, которые пользователи должны заполнять, - сделаны для пользы модератора или для того, чтобы сделать сайт более привлекательным для получения дохода, а не для пользы пользователя вообще! Фактически, когда вы думаете о большинстве сайтов, приложений и т. Д., Они вряд ли когда-либо будут сделаны для пользователя. Большинство сайтов о доходах от рекламы. В большинстве корпоративных приложений один департамент вводит данные, чтобы их мог использовать другой департамент, или чтобы клиенты могли брать деньги.
Когда вы делаете это, становится более очевидным, что может быть задействовано более одного пользователя, и пользователь может быть другой системой. В вашем случае я предполагаю, что какой-то руководитель отдела продаж является основным заинтересованным лицом для этой истории.
In order to make sales
As the Sales Head
I want customers to be notified of any errors with their order.
In order to make sales
As the Sales Head
I want customers' orders to be fulfilled within 24 hours.
Из этого видно, что цели становятся достаточно высокоуровневыми, поэтому, если у вас есть программное обеспечение, которое выполняет эти цели, вы можете их разбить:
In order to fulfil customer's orders within 24 hours...
Теперь каждая история может быть прослежена до видения проекта, и вы можете увидеть все системы в игре. Таким образом, ваши автоматизированные сценарии могут выглядеть так:
Given a valid order in the queue
When the order fulfilment system runs
Then it should send a fill order form to the processing centre
When the processing centre responds successfully
Then the successful fulfillment should be logged
And the customer should be notified by email.
Given an invalid order in the queue
When the order fulfilment system runs
Then it should send a fill order form to the processing centre
When the processing centre responds with an error
Then the error should be logged
And the customer should be notified of the problem by email.
Например.
Кстати, если вы думаете о переходе на этот формат сейчас, помните, что прозрачность, которую он создает, может вызвать абсолютный хаос у людей, которые, скажем, развиваются, потому что у них есть бюджет, а не надлежащий видение проекта. Я думаю, что это хорошо. Другие находят политику менее удобной! Удачи, что бы вы ни решили.