Бизнес-правила
Бизнес-правило - это то, что компания решила для себя и чего система обязана придерживаться. Если правило не записано отдельно, оно размазывается по коду, письмам и памяти людей.
Когда в проекте говорят «так у нас принято», за этими словами обычно стоит бизнес-правило. Оно существует независимо от того, как устроен экран или сервер, и его можно описать обычными словами.
Бизнес-правило - явное ограничение поведения или поддержка поведения. Проще говоря, правило отвечает на вопрос «что можно, чего нельзя и как считать».
Кейс: правило, которое поменяли
В магазине «Узелок» покупатель может отменить заказ, пока он не передан курьеру. Это правило реализовали в трёх местах: кнопка в приложении скрывается по статусу, сервер проверяет статус перед отменой, поддержка отвечает покупателям по той же схеме.
Потом владелец решает разрешить отмену и после сборки заказа, но до передачи курьеру. Разработчик меняет проверку на сервере, а кнопка в приложении и тексты для поддержки остаются старыми. Покупатель не видит кнопку, а оператор отвечает «отменить нельзя».
Ошибка не в коде, а в том, что правило нигде не жило само по себе. У него не было адреса, и поэтому изменить его целиком было нельзя.
Правило в примере условное: мы берём его для иллюстрации, а не из реального магазина.
Правило, требование и шаг процесса
Эти три понятия легко перепутать. Требование - то, что система должна уметь (например, давать отменить заказ). Шаг процесса - действие в последовательности (покупатель нажимает «Отменить»). Правило - условие, в рамках которого это допустимо (только до передачи курьеру).
Есть две мысли, которые полезны на практике. Правила не являются процессом и не должны в нём содержаться, они применяются сразу в нескольких процессах. И правила нужно записывать повествовательными предложениями на естественном языке, понятном бизнесу.
Одно правило и много мест
Правило нужно записывать отдельно, потому что оно применяется сразу во многих местах продукта. Интерфейс показывает или скрывает кнопку, сервер проверяет статус, поддержка отвечает покупателю, а тесты проверяют границу правила.
Если правило записано в одном месте, достаточно изменить одну запись и пройтись по тем, кто на неё ссылается. Если оно скопировано в истории, письме и макете, при изменении одну из копий обязательно забудут.
Какие бывают правила
На практике правила удобно делить на три вида. Деление упрощённое: в стандартах встречаются и другие классификации, и для работы достаточно этих трёх.
- Ограничение запрещает или разрешает действие: заказ нельзя отменить после передачи курьеру.
- Расчёт выдаёт число по формуле: сумма возврата равна сумме оплаты без доставки (условный пример).
- Выбор определяет вариант по условию: если заказ оплачен картой, деньги вернутся на ту же карту.
Когда условий в правиле много и они перекрещиваются, обычная фраза перестаёт работать. Для таких случаев есть таблицы решений, о них мы поговорим в статье 02-12.
Как записать правило
Хорошая запись правила проходит четыре проверки:
- одно предложение выражает одно правило;
- формулировка описывает результат, а не способ его реализации, то есть не говорит про кнопку или таблицу в базе;
- в тексте нет слов «обычно» и «как правило», которые прячут исключения;
- у правила есть номер и владелец.
Номер нужен, чтобы ссылаться на правило из историй, критериев приёмки и тестов, не копируя текст. Владелец нужен, чтобы знать, кто вправе правило менять и у кого спрашивать при сомнениях.
Удобно держать правила в отдельном списке (каталоге) и добавлять к каждому небольшой паспорт: номер, формулировку, источник, владельца, места применения и дату начала действия.
Что с правилами делать дальше
Правила не живут в вакууме: они меняются. Когда владелец меняет правило, запись обновляется в каталоге, а в историях и тестах остаётся только ссылка на номер. Порядок изменения требований целиком описан в статье 02-20.
Отдельное правило не заменяет критерии приёмки. Критерий проверяет конкретное поведение истории, а правило объясняет, откуда это поведение взялось. В критерии можно сослаться на номер правила.
Где это встречается в работе
- В требованиях к оформлению заказа: минимальная сумма, способы оплаты, сроки доставки.
- В политике возвратов и отмен: кому, когда и на каких условиях возвращаются деньги.
- В расчётах: скидки, налоги, стоимость доставки.
- В доступах: кто какие действия вправе выполнять в системе.
Итог
- Бизнес-правило описывает, что можно, чего нельзя и как считать.
- Правило не равно требованию и не равно шагу процесса.
- Правило применяется в нескольких местах, поэтому его записывают отдельно.
- У правила должны быть номер, формулировка и владелец.
- Сложные сочетания условий удобнее разбирать в таблицах решений.
Что дальше
- 02-12 Таблицы решений для сложных правил: как описывать правила с несколькими условиями.
- 02-09 Acceptance Criteria: как проверять поведение, которое задано правилом.
- 02-20 Изменение требований: как менять правила, не теряя связей.
5 вопросов