Decision Log: зачем фиксировать причины проектных решений

Канал о системном и бизнес-анализе, продуктовом мышлении и архитектуре. Как выявлять реальные проблемы, строить работающие решения и не терять здравый смысл в IT. Все вопросы - @innokentyB

decision logспецификацияагенты

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

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

В спецификации от всей этой истории осталась одна строчка:

«система хранит сумму платежа»

И вот тут я поймал довольно неприятную вещь. Спецификация хорошо сохраняет что мы решили, но очень часто теряет почему мы так решили.

Таких микрорешений на нормальном проекте десятки. Пока документ читает человек, часть контекста ещё можно восстановить по переписке, памяти команды и сакральному «мы же это обсуждали». С агентом этот фокус работает гораздо хуже: если причины нет в контексте, он её не восстановит. Он просто достроит наиболее правдоподобную — и в следующий раз вполне может достроить другую.

Поэтому я завёл Decision Log. Девять полей, из них четыре обязательных, на запись обычно уходит около минуты. Файл лежит рядом с остальным контекстом проекта, а из спецификации на конкретные решения можно ссылаться по ID.

Получается довольно простое разделение: спецификация хранит, что система должна делать. Decision Log — почему мы решили делать именно так.

Скучная дисциплина на минуту сегодня, которая через три months экономит час археологии. А с агентами, кажется, становится вообще обязательной частью проектного контекста.

Шаблон, YAML-версия и заполненный пример:https://analystcraft.ru/blog/decision-log-analitika?utm_source=tg_spherical&utm_medium=social&utm_campaign=lm03_decision_log&utm_content=20260815-decision-log

Дискуссия

Лиза
Слишком глубоко залез.
IT Удильщик by евGEN
ну потому что это решает вопрос сериализации и проблему с округлениями, так как число целое. Проблема начинается, если у тебя сумма начинает быть не в рублях. И не потому что у тебя появляются разные валюты, а потому что у разных валют разный fraction. У йены и франков нет аналога копеек, если правильно помню
Andrey
IT Удильщик by евGEN
ну потому что это решает вопрос сериализации и проблему с округлениями, так как число целое. Проблема начинается, если у тебя сумма начинает быть не в рублях. И не потому что у тебя появляются разные валюты, а потому что у разных валют разный fraction. У…
Тогда добавляем код валюты и количество минорных разрядов
Присоединиться к обсуждению →

Читайте так же