Краткий ответ

Качественная пользовательская история в Salesforce описывает, кто, что он пытается достичь и каков будет результат после действия, а не какое поле появится на каком экране. Простая проверка: если критерии приемки можно сформулировать без знания того, будет ли реализация выполнена с помощью Flow, Validation Rule или Apex, история написана правильно.

Распространенная ошибка — это история, которая уже содержит решение. Как только написано «Добавить поле Picklist на экран сделки», обсуждение процесса завершается, не успев начаться.

Рабочая структура

КомпонентРольКритерий качества
КонтекстКто пользователь и когда он здесьРеальная роль, а не «пользователь»
НамерениеЧто он пытается достичьСформулировано на языке бизнеса
Критерии приемкиЧто проверяетсяМожно выполнить как сценарий с тестовыми данными
Крайние случаиЧто намеренно не удалосьХотя бы один отрицательный
Вне ScopeЧто явно не включеноПредотвращает споры при приемке

Последняя строка предотвращает большинство конфликтов. Явное заявление о том, что не включено, стоит больше, чем три абзаца описания.

Декомпозиция: вертикальный срез, а не слои

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

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

Приоритизация, когда все срочно

Трех критериев достаточно, в следующем порядке:

  1. Блокирует запуск? — Без него процесс неполный. Места для переговоров нет.
  2. Сколько пользователей в день? — Частота превосходит интенсивность жалобы. Элемент, затрагивающий 80 агентов ежедневно, имеет приоритет над запросом одного руководителя.
  3. Какова стоимость отсрочки? — Увеличится ли стоимость реализации, если мы сделаем это после запуска? Изменение в модели данных — да, изменение в отчете — нет.

То, что не проходит эти три критерия, отправляется в Parking Lot. Это разделение предотвращает превращение бэклога в архив желаний. Подробности об управлении изменением объема представлены в Scope Creep и контроль изменений.

Долг по требованиям: тихая ошибка

Долг по требованиям возникает, когда user story завершается без решения о том, что происходит в крайнем случае — «разберемся с этим позже». После запуска такие крайние случаи составляют большинство обращений в службу поддержки.

Простое решение: элемент не закрывается без документированного решения по каждому открытому вопросу, который в нем был зафиксирован, даже если решение — «намеренно не обрабатывать». Документирование отказа ценнее отсутствия документации.

Связь с тестированием

Правильно написанные критерии приемки — это, по сути, сценарии UAT. Когда они пишутся после разработки, UAT становится демонстрацией того, что было создано, а не проверкой того, что требовалось. Последовательность подробно описана в руководстве UAT.

Заключение

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