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