AlNuzum
RU
все проекты
проект X, имя под NDA

Система на сорок пять разделов и один участок, который пришлось строить отдельно

Сорок пять разделов вместо разрозненных таблиц и переписки. Ядро системы это сборка персонального плана, которую специалист делал руками.

параметрысборка вариантапроверка по правилам,написанным кодомвариант выданне сошлось:с указанием,что именносошлосьдо пяти кругов, дальше вариант уходит человеку

Что изменилось

было

Заказы, подписки, склад, закупки и деньги жили в разных местах. Сходились они только в голове у нескольких человек, а каждый отчёт собирали руками.

стало

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

  • Клиенты, подписки и паузы. Вся история отношений с клиентом в одном месте, включая перерывы и возвраты.
  • Склад, закупки и производство. Что заказать, что приготовить и в каком порядке, с печатными листами для тех, кто работает руками.
  • Деньги. Тарифы, счета и возвраты, сведённые с платёжной системой, без ручной сверки в конце месяца.
  • Девять ролей с разными правами. Каждый видит свой участок, и любое изменение записывается в журнал.

Где было трудно

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

Жёсткие запреты нельзя оставлять внутри запроса

цена ошибкинарушенный запрет это ущерб человеку на той стороне, а не испорченное впечатление

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

Поэтому запреты вынесены наружу, в справочник. Они проверяются кодом и до сборки, и после неё, а вариант, нарушивший хотя бы один, наружу не выходит вообще.

Первый ответ почти никогда не годится

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

Свободная сборка даёт дубли внутри одного дня, перекос по одному компоненту на всю неделю и пустые места там, где их быть не должно.

Формулировку запроса мы улучшать не стали. После сборки идёт проверка по правилам, написанным кодом: если что-то не сошлось, запрос уходит обратно с указанием, что именно. До пяти кругов, дальше вариант считается несобравшимся и передаётся человеку.

Разнообразие держится на истории, а не на удаче

цена ошибкиповтор замечает человек на той стороне, и замечает раньше нас

Человек видит, что одно и то же повторяется неделя за неделей. Система сама этого не увидит: прошлого раза она не помнит.

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

Как проверяли, что не врёт

  • Правила лежат в коде, а не в формулировке запроса. Их можно прочитать, обсудить с заказчиком и поменять, не гадая, как система на это отзовётся.
  • Каждая сборка сохраняется целиком. Видно, что просили, что вернулось, какие правила не прошли и сколько кругов понадобилось.
  • Спорное не подставляется молча. Если за пять кругов вариант не собрался, он не выдаётся как готовый, а уходит человеку.

Похожая задача у вас?

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

Обсудить задачу