Одним из первых шагов при написании ТЗ на разработку ИС является выявление будущих пользователей системы. Казалось бы: ничего сложного, но бывают нюансы.
Давайте начнем с теории. Согласно Карлу Вигерсу существует множество заинтересованных лиц:
«Заинтересованное лицо (stakeholder) — это человек, группа или организация, которая активно задействована в проекте, подвержена влиянию процесса или результата или может влиять на процесс или результат.»
их подмножество — клиенты:
«Клиенты являются подмножеством заинтересованных лиц. Клиент (customer) — человек или организация, получающая от продукта прямую или косвенную выгоду. Клиенты это заинтересованные в проекте лица, запрашивающие, оплачивающие, выбирающие, определяющие, использующие и получающие результаты работы программного продукта».
и их подмножество — пользователи:
«Требования пользователей определяют те, кто прямо или косвенно взаимодействуют с продуктом. Эти пользователи (часто их называют конечными пользователями) являются подмножеством клиентов. Прямые пользователи непосредственно работают с продуктом. Непрямые пользователи могут получать результаты работы системы, не входя в непосредственный контакт с ней.»
Все эти подмножества я представила кругами Эйлера на рисунке ниже.
Рис. 1. Заинтересованные в ИС лица и их подмножества.
При написании технического задания на информационную систему важно выделять именно пользователей будущей системы и не путать их с клиентами, не являющимися пользователями (на рисунке показаны желтым).
Приведу один курьезный случай из своей практики.
Нужно было реализовать и интегрировать в существующую информационную систему модуль по продаже лотерейных билетов. Стажер-аналитик присылает мне юзер стори, которая начинается словами «Я, как клиент компании, хочу купить лотерейный билет».
Это круто, конечно, для компании, что есть кто-то, кто хочет купить билет, но он абсолютно ни в каком виде не является пользователем ИС компании. В данном случае этот клиент компании входит в множество заинтересованных лиц, в подмножество клиентов, но не входит в подмножество пользователей ИС.
Одним из основных пользователей ИС в приведенном примере является оператор или кассир, непосредственно осуществляющий продажу билета и взаимодействующий для этого с модулем продажи билетов.
Я аналитикам-стажерам всегда советую перед тем, как начать писать ТЗ, представить себя компьютерной программой:
Кто первый коснется клавиатуры, чтобы запустить тебя?
Какую информацию тебе передаст этот кто-то?
Куда ты, как компьютерная программа, должен будешь передавать эту информацию?
Еще надо всегда помнить, что компьютерная программа туповата. Если ей чего-то не сказать, не передать, то сама она не догадается.
То есть сначала надо для себя написать или хотя бы проговорить «программ стори»:
«Я, как модуль продажи лотерейных билетов, …»
Ну и конечно, надо учитывать тот факт, что у продукта/сервиса/системы, как правило, много пользователей, каждый из которых будет выполнять свои задачи. Возвращаясь к модулю по продаже лотерейных билетов, можно сразу навскидку выделить еще несколько групп пользователей:
операционный директор, который хочет получать отчеты по объемам продаж билетов;
бухгалтерия, которая должна учесть продажи в 1С (здесь появляется задача по интеграции с 1С).
И для каждого из них надо, представив себя программой, пройти свой путь.
Кроме того, такой подход помогает в дальнейшем описывать архитектуру будущего модуля. Вы уже получаете представление о том, какие входные параметры необходимо передавать, как их обрабатывать и что получать на выходе.
В своей следующей статье я хочу рассказать, как перейти от описания юзер стори к написанию полноценного ТЗ на веб-сервис с описанием API, включающим определение ресурсов, конечных точек и методов.
ozzyBLR
Для написания юзер стори представить написание программ стори... Сложно!
Плюс пользователи не обязательно входят в подмножество клиентов. Собственно говоря, канонично клиентов называть заказчиками - тогда всё будет понятнее. В примере с продажей лотерейных билетов заказчиком является менеджмент компании, а пользователями кассиры. Заказчик принимает решение о том, что модуль нужен, генерирует требования и принимает результат. А пользователь - одна из категорий стейкхолдеров (заинтересованных лиц), которые могут быть зайдествованы при написании ТЗ и приёмочном тестировании.
Если подытожить, заказчики и пользователи могут перекрываться или совпадать полностью. Но в приведённом примере это не так.
BA_TW Автор
Соглашусь частично. Я следую терминологии, определенной Карлом Вигерсом. В его терминологии клиенты - это в том числе и те, кто использует продукт. Т.е. в нашем случае - кассиры. Они же тоже могут и должны влиять на требования к нему, верно? Значит, могут выступать и в роли заказчиков. (Например, им удобнее иметь кнопку внизу справа. Если это не принципиально с точки зрения функциональности, то почему нет?)
Поэтому я все-таки считаю, что Вигерс прав, и пользователи входят в подмножество заказчиков, а не частично с ним пересекается.