Пользовательские истории извлекают выгоду из того факта, что вы описываете конкретные взаимодействия, и как только вы знаете конкретные данные и поведение системы для них, вы также можете добавить больше информации о том, как вы взаимодействуете. Это позволяет вам использовать некоторые инструменты, такие как Cucumber, который с Selenium позволяет вам переводить историю в тест. Вы можете пойти еще дальше и, например, для веб-приложений - захватывать все страницы, с которых вы начинаете конкретную историю, и собирать все взаимодействия с этой страницей, что приводит к некоторой информационной архитектуре, которую вы можете использовать для документации или создания прототипов, а затем для тестирования пользовательского интерфейса.
С другой стороны, это делает ваши истории несколько хрупкими, когда дело доходит до изменений пользовательского интерфейса. Я думаю, что гибкий подход к размышлениям такой же, как и в случае с изменениями дизайна - не проектируйте в будущем, делайте самые простые вещи, в будущем вам, возможно, придется все равно изменить его.
Если вы разобрали свои пользовательские истории со всеми конкретными вещами (даже входными данными), у вас получатся варианты использования (по крайней мере, в их простейшем формате, зависит от того, как вы пишете свои истории). Варианты использования в этом отношении совсем не хрупкие, они определяют только цели. Это делает их устойчивыми к изменениям, но затрудняет автоматическую передачу информации с помощью инструментов.
Что касается процесса, RUP / UP выводит пользовательский интерфейс из вариантов использования, но я думаю, что agile по своей природе является инкрементным (я не скажу итеративный, это исключило бы такие гибкие методы, как FDD и Kanban). Это означает, что при реализации новой истории вы добавляете в свой интерфейс то, что необходимо. Это только делает более разумным добавление особенностей пользовательского интерфейса в истории. Проблема в том, что это не очень хороший способ создания пользовательского интерфейса или, в более общем смысле, пользовательского интерфейса. Это именно то, что можно назвать слабым местом гибкой. Agile манифест концентрируется на функциональном программном обеспечении, но это все. Насколько я знаю, нет гибких методов проектирования UI или UX.