Должен ли актер пользовательской истории быть человеком?

Пользовательские истории традиционно пишутся как выражение "Как [Тип пользователя] я хочу [функцию], чтобы [некоторая выгода]". В книгах и онлайн-ресурсах [Тип пользователя] обычно соответствует роль человека. Тем не менее, при описании функций внутренних компонентов системы часто проще поставить вместо пользователя какой-либо необслуживаемый сервис, например: "Как ServiceX, я хочу, чтобы некоторые данные регулярно обновлялись, чтобы я мог выполнять XYZ с использованием самой последней информации".

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

3 ответа

Решение

Системы, безусловно, заинтересованы в получении выгоды для бизнеса. Актер может быть автоматическим агентом, написанным сторонней организацией и воплощающим намерение этой третьей стороны. Фактически, это становится доминирующей формой взаимодействия, поскольку веб-сервисы становятся все более популярной особенностью крупных веб-сайтов, что позволяет осуществлять сложные межсайтовые взаимодействия от имени пользователей, но с участием только машин.

Я не понимаю, почему актер должен быть человеком - ваш пример - вполне веская причина, по которой он этого не делает.

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

Весь смысл пользовательских историй, Agile, Scrum и всех других методологий заключается в том, чтобы помочь процессу разработки, а не быть процессом разработки. Методология полезна только до тех пор, пока она делает процесс лучше, поэтому вы должны ее использовать. Вы должны смело адаптировать методологию к вашим уникальным обстоятельствам. Не позволяйте методологии стать более важной, чем фактическая разработка кода.

Вот секрет. Это не пользовательские истории, а пользовательские сценарии.

Пользователь - это то, что делает взаимодействующее - машина или человек.

Заинтересованная сторона - это человек или корпорация, получающие выгоду от взаимодействия (это никогда не машина; во всяком случае, на данном этапе разработки ИИ). Обычно есть несколько заинтересованных сторон с конкурирующими потребностями в любом конкретном проекте. Основную заинтересованную сторону можно найти, выяснив, кто платит за проект и почему.

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

Например, инвесторы в Твиттере хотят, чтобы пользователи пользовались Твиттером, чтобы они могли сохранить все свои возможности для заработка в будущем. Боссы хотят, чтобы их секретари использовали текстовые процессоры, чтобы они могли быстрее печатать буквы и передумать в последнюю минуту. Stackru хочет, чтобы за хорошие посты проголосовали, чтобы они могли получать доход от рекламы.

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

Другие вопросы по тегам