Найти в Дзене

Аудит ТЗ на систему мотивации в 1С: почему «понятные» требования блокируют разработку⁠⁠

В автоматизации отделов продаж часто встречается функциональное требование: «Премия менеджера — 3% от суммы оплаты по его заказам. Система ежедневно анализирует входящие платежи. Если платеж привязан к "Заказу клиента", необходимо начислять 3% от суммы оплаты на личный счет менеджера в заказе». Для аналитика и моего ИИ-инструмента «Шерлок» (настроенного на проверку бизнес-логики 1С) здесь заложены три критических неопределенности. 1. Неполнота описания алгоритма зачета (Авансы vs Оплаты)
В типовых конфигурациях (ERP, УТ 11, КА) документ «Поступление безналичных ДС» фиксирует движение денег, но не всегда фиксирует их привязку к заказу в момент проведения. 2. Отсутствие политики историчности (Смена ответственного)
Заказ клиента — объект с длительным жизненным циклом. Ответственный менеджер в нем может измениться до момента оплаты. 3. Нарушение критерия атомарности
Фраза «рассчитать премию при оплате и отразить в зарплате» объединяет два процесса: регистрацию факта (учет) и расчет выплат

В автоматизации отделов продаж часто встречается функциональное требование:

«Премия менеджера — 3% от суммы оплаты по его заказам. Система ежедневно анализирует входящие платежи. Если платеж привязан к "Заказу клиента", необходимо начислять 3% от суммы оплаты на личный счет менеджера в заказе».

Для аналитика и моего ИИ-инструмента «Шерлок» (настроенного на проверку бизнес-логики 1С) здесь заложены три критических неопределенности.

AI-агент (Sherlock)
AI-агент (Sherlock)

1. Неполнота описания алгоритма зачета (Авансы vs Оплаты)
В типовых конфигурациях (ERP, УТ 11, КА) документ «Поступление безналичных ДС» фиксирует движение денег, но не всегда фиксирует их привязку к заказу в момент проведения.

  • Проблема: При автоматическом распределении оплат связь с заказом в регистрах появляется позже. Если триггером начисления выбрано «Проведение платежки», система не учтет авансовые платежи и оплаты, распределенные фоновым заданием.
  • Вопрос к ТЗ: Какое событие является триггером? Физический приход денег или регистрация зачета аванса в регистрах накопления?

2. Отсутствие политики историчности (Смена ответственного)
Заказ клиента — объект с длительным жизненным циклом. Ответственный менеджер в нем может измениться до момента оплаты.

  • Проблема: ТЗ не определяет получателя бонуса: автор заказа или текущий ответственный на дату платежа.
  • Результат: Программист возьмет текущее значение поля «Менеджер», что приведет к потере премий уволенными сотрудниками или конфликтам при передаче сделок.

3. Нарушение критерия атомарности
Фраза «рассчитать премию при оплате и отразить в зарплате» объединяет два процесса: регистрацию факта (учет) и расчет выплаты (зарплатный контур).

  • Проблема: Нарушение атомарности ведет к жесткой связности кода. Если в будущем изменятся правила выплаты (например, введение лимитов), придется переписывать весь механизм отслеживания оплат. Грамотное ТЗ разделяет эти задачи.

Итог:
Верификация требований на входе (QA-аудит документации) позволяет выявить отсутствие информации до начала разработки. Это исключает ситуацию, когда разработчик вынужден сам додумывать правила учета.