Бизнес-правила

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


Когда в проекте говорят «так у нас принято», за этими словами обычно стоит бизнес-правило. Оно существует независимо от того, как устроен экран или сервер, и его можно описать обычными словами.

Бизнес-правило - явное ограничение поведения или поддержка поведения. Проще говоря, правило отвечает на вопрос «что можно, чего нельзя и как считать».

Кейс: правило, которое поменяли

В магазине «Узелок» покупатель может отменить заказ, пока он не передан курьеру. Это правило реализовали в трёх местах: кнопка в приложении скрывается по статусу, сервер проверяет статус перед отменой, поддержка отвечает покупателям по той же схеме.

Потом владелец решает разрешить отмену и после сборки заказа, но до передачи курьеру. Разработчик меняет проверку на сервере, а кнопка в приложении и тексты для поддержки остаются старыми. Покупатель не видит кнопку, а оператор отвечает «отменить нельзя».

Ошибка не в коде, а в том, что правило нигде не жило само по себе. У него не было адреса, и поэтому изменить его целиком было нельзя.

Рисунок 1. Правило изменили на сервере, а кнопка и тексты поддержки остались старыми

Правило в примере условное: мы берём его для иллюстрации, а не из реального магазина.

Правило, требование и шаг процесса

Эти три понятия легко перепутать. Требование - то, что система должна уметь (например, давать отменить заказ). Шаг процесса - действие в последовательности (покупатель нажимает «Отменить»). Правило - условие, в рамках которого это допустимо (только до передачи курьеру).

Рисунок 2. Требование, шаг процесса и правило на примере отмены заказа

Есть две мысли, которые полезны на практике. Правила не являются процессом и не должны в нём содержаться, они применяются сразу в нескольких процессах. И правила нужно записывать повествовательными предложениями на естественном языке, понятном бизнесу.

Одно правило и много мест

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

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

Если правило записано в одном месте, достаточно изменить одну запись и пройтись по тем, кто на неё ссылается. Если оно скопировано в истории, письме и макете, при изменении одну из копий обязательно забудут.

Какие бывают правила

На практике правила удобно делить на три вида. Деление упрощённое: в стандартах встречаются и другие классификации, и для работы достаточно этих трёх.

Рисунок 4. Три вида бизнес-правил: ограничение, расчёт и выбор
  • Ограничение запрещает или разрешает действие: заказ нельзя отменить после передачи курьеру.
  • Расчёт выдаёт число по формуле: сумма возврата равна сумме оплаты без доставки (условный пример).
  • Выбор определяет вариант по условию: если заказ оплачен картой, деньги вернутся на ту же карту.

Когда условий в правиле много и они перекрещиваются, обычная фраза перестаёт работать. Для таких случаев есть таблицы решений, о них мы поговорим в статье 02-12.

Как записать правило

Хорошая запись правила проходит четыре проверки:

  • одно предложение выражает одно правило;
  • формулировка описывает результат, а не способ его реализации, то есть не говорит про кнопку или таблицу в базе;
  • в тексте нет слов «обычно» и «как правило», которые прячут исключения;
  • у правила есть номер и владелец.

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

Удобно держать правила в отдельном списке (каталоге) и добавлять к каждому небольшой паспорт: номер, формулировку, источник, владельца, места применения и дату начала действия.

Рисунок 5. Паспорт бизнес-правила: номер, формулировка, источник, владелец, место применения и дата

Что с правилами делать дальше

Правила не живут в вакууме: они меняются. Когда владелец меняет правило, запись обновляется в каталоге, а в историях и тестах остаётся только ссылка на номер. Порядок изменения требований целиком описан в статье 02-20.

Отдельное правило не заменяет критерии приёмки. Критерий проверяет конкретное поведение истории, а правило объясняет, откуда это поведение взялось. В критерии можно сослаться на номер правила.

Где это встречается в работе

  • В требованиях к оформлению заказа: минимальная сумма, способы оплаты, сроки доставки.
  • В политике возвратов и отмен: кому, когда и на каких условиях возвращаются деньги.
  • В расчётах: скидки, налоги, стоимость доставки.
  • В доступах: кто какие действия вправе выполнять в системе.

Итог

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

Что дальше

  • 02-12 Таблицы решений для сложных правил: как описывать правила с несколькими условиями.
  • 02-09 Acceptance Criteria: как проверять поведение, которое задано правилом.
  • 02-20 Изменение требований: как менять правила, не теряя связей.
Проверка знаний

5 вопросов