Привет, меня зовут Андрей Калинин, я отвечаю за цифровые финансовые активы и сопровождение инновационных продуктов. Управляю командами разработки и развития. Мы любим и умеем запускать пилоты в бигтехе: платформа ЦФА А-Токен, API для работы с самозанятыми, безопасные сделки, блокчейн‑платформа ФНС.

Начну свою историю с пролога.
Часть первая: пролог
Придётся начать издалека, чтобы нарисовать фон, где будут разворачиваться события. Повествование будет больше про технологии. С точки зрения бизнеса некоторые выражения я обобщил, чтобы они стали более понятными.
Есть такая вещь, как цифровые финансовые активы (ЦФА). Вы могли их видеть на витрине в своём мобильном банке, в приложениях для инвестиций и в агрегаторах финансовых услуг. Это новые инвестиционные инструменты, похожие на облигации, но более разнообразные.

Как работают ЦФА: права на базовые активы токенизируются и предлагаются розничным и корпоративным клиентам. В отличие от традиционного финансового рынка, ЦФА может запросто выпустить средний бизнес, поэтому среди примеров ЦФА есть квадратные метры недвижимости, вино и коньяк, слитки золота, права на кинофильм, литры бензина.
Если облигация вам даст только деньги, с ЦФА вы можете получить деньги или актив, например, слиток или квартиру.
Главная особенность — прямое распоряжение активами с применением электронных подписей УКЭП, УНЭП и ПЭП, обязательное исполнение сделок смарт‑контрактами, неизменность блоков и содержимого транзакций. В блокчейне скорректировать введённые данные не так‑то просто из‑за расширенной криптографии, а ещё есть законодательная защита инвесторов со стороны Центробанка.
Чтобы учитывать ЦФА клиентов, вы должны зарегистрироваться как оператор. Все операторы содержатся в реестре, мы зашли туда четвёртыми (в мае 2025-го зарегистрировано 15 операторов). По данным Банка России, на конец 2024 года мы занимали 40% рынка, а по оценке Cbonds — 50%.

Чтобы мы могли предлагать ЦФА, а клиенты ими оперировать: изучать, покупать, продавать, мы запустили свою платформу А-Токен. Как она работает — не так важно для истории, нас интересует документация.
При разработке мы описывали сервисы по следующей технологии:
- Документация создаётся в AsciiDoc, в редакторе, например, AsciiDocFX. 
- Для каждого сервиса готовится папка документации, в которой находятся файлы с описаниями методов. Для каждого метода используем свой файл. Затем информация собирается в один индексный файл, который преобразуется в статическую страницу при релизе. 
- Готовая папка с документацией сервиса загружается в Git в подготовленный репозиторий сервиса. 
- Сборка документации в виде статической страницы и архива выполняется из Git при релизе с помощью Jenkins. 
Для (быстрой) разработки платформы А-Токен мы привлекали вендоров. В октябре 2023-го первая команда вендора разработала свою часть. Но вот нюанс — по некоторым причинам, скрытым в тёмных водах реки Лета, документация для функционального сопровождения отсутствовала.
При раскатке в прод и передаче на функциональное сопровождение возникли вопросы: «А как сопровождать чёрный ящик?». Первоначально вендор оценил трудоёмкость задачи как незначительную, но после детального анализа увеличил затраты в 10 раз, а затем, помучившись, ещё в 2 раза. Мы со множеством итераций три квартала закрывали техдолг по документации вендора. Пометим эту историю, как историю №1.
История №2 начинается, когда вторая команда того же вендора по проторенной дорожке пришла с новой разработкой и тоже без документации.
Пролог закончен, приступаем к повествованию.
Часть вторая, в которой «криптаны» не пишут документацию для сопровождения, а их и не просили
Новый модуль взаимодействия с блокчейнами был разработан как MVP для проверки гипотез и проработки бизнес‑задач. Однако вендор представил нам разработку, которую нельзя развернуть в контуре крупной организации.
Можно было исправить проблему, если бы у нас была документация, архитектурный вижн, реестр интерфейсов и прочие скучные вещи. Тогда можно было пройти согласования с подразделениями, включая архитекторов и кибербезопасность, и предоставить документацию DevOps'ам.
Но случился сюжетный поворот, в котором по завершении разработки вендор ожидаемо распустил команду (звук тарелок ударной установки).
«И что? Натравите юристов, пусть заставят подготовить документацию, её подготовка прописана в техзадании. Ведь прописана?».

Документацию изначально не закладывали. Необходимость в ней была очевидна, но ресурсы у вендора отсутствовали. По этой причине, а может из‑за нежелания набирать временный штат техписателей, которые по коду долго бы разбирались в модуле и отвлекали разработку, вендор объявил стоимость документации — несколько млн рублей (барабанная дробь).
Найм штата технических писателей и сбор компетенций мог занять 6 месяцев и даже больше. Картина выглядела удручающе.
Ещё один риск: вендор не проходил приёмо‑сдаточные испытания на нашем тестовом контуре. Сервисы не собирались через платформу банка, тест‑кейсы не были расписаны, новая команда вендора вообще не была погружена в нашу экосистему.
В итоге получился прямо «треугольник отчаяния»:
- Есть крутая штука, которая нам очень нужна — работающая система, она устраивает бизнес, и он готов её внедрять. 
- Вот только брать её никто не собирается, потому что чёрный ящик, сэр, без документов. 
- Есть вендор, который не хочет собирать заново команду и ввязываться в эту историю. Сумма за разработку документации постоянно росла, достигнув по итогу цифры, за которую всё можно разработать заново. Возможно, - пацаны не извиняются«криптаны» не пишут документацию.
Чья это проблема? Вопрос для дискуссии. Но независимо от ответа работу надо работать, а мы в тупике.

Часть третья, в которой мы ищем решение и нам неожиданно везёт
Чтобы интегрировать систему, надо нарисовать архитектурный вижн, написать документацию, подготовить реестр интерфейсов, описание технического архитектурного решения (далее ОТАР), интеграций со смежными системами, обеспечить целостность платформы (ну и много чего ещё). Плюс согласовать проект с заинтересованными подразделениями.
Платформа А-Токен разрослась, и новичок с её доработкой не справился бы сразу. Только совместный рефакторинг с ядром команды обеспечит целостность и шеринг компетенций, а на освоение компетенций нужны время и ресурсы.
Но долго и нудно не получилось. Задача не зафиксирована в квартальных целях, а все команды уже заняты другими задачами.
За этот горизонт событий, как мне кажется, попадают не только лишь все. Но если уж мы здесь оказались, надо выбираться. Документация у нас достаточно подробная, и сама по себе она не рождается. Что делать? Мне были бы интересны ваши варианты решения.
Есть несколько выходов, которые мы расписали, когда прикинули ТРИЗ к носу.
Простой способ
Если бы команду вендора не распустили.
В команде были аналитики, которые писали постановки задач, разработчики, которые знают код. И если бы вендор нанял человека три‑четыре, они бы занимались оформлением и могли припадать к источнику правды — к автору разработки, у которого в голове всё свежо. Плюс наши обожжённые сдачей документации не по одному сервису бойцы пояснили бы по формату и тонким моментам. Тогда за полгода при удачном стечении обстоятельств задача была бы выполнена.
Сложный способ
Если команды нет, но есть исходный код, а спросить некого, ты по сути занимаешься реверс‑инжинирингом — по коду пытаешься восстановить постановку, что делает программа. Эта история, очевидно, гораздо более долгая, она с теми же ресурсами заняла бы месяцев 9.
Второй вариант сложного способа
Если бы проект разрабатывался в контуре банка, мы наняли бы условных техписов с рынка, они так же привлекали бы архитектора, разработчиков, смотрели, как всё работает, какие и зачем у нас условия. Всё это нетривиальная задача.
Пара новых неизвестных для сложного способа
Есть разные подходы к коду. Если код написан по шаблонам, с применением паттернов, наименованием переменных — это один вопрос описания.
Если же авторы увлекались всякими оптимизациями или, допустим, обфускацией, и запустили ещё какую‑нибудь штуку, которая всё это замешивает, такой код достаточно долго распиливать. Причём надо понимать, что это не просто локальная система, а интеграция, мост к блокчейну и смарт‑контрактам. А там, чуть что пойдёт не так, назад просто так не откатишь и не подкорректируешь.
Задача становится ещё более нетривиальной, потому что носителей таких компетенций на рынке надо поискать. У нас есть люди, которые в этом разбираются. Но ведь могло и не быть.
Часть четвертая, в которой мы подбираемся к ИИ
Мы пошли по второму варианту, когда у нас не было команды разработки. Но нам повезло в том, что мы наняли технического писателя из расформированной команды вендора. Нет, не переманили, она сама пришла (работы‑то нет), а мы наняли. Мы достаточно плотно работали, и найти общий язык не составило труда.
Как пишем? Запускаем из исходного кода собранные сервисы на изолированном стенде и пишем документацию силами техписа и solution‑архитектора.
Чтобы начать разработку и получить тестовые стенды, нужен архитектурный вижн. Это первый документ, с которого начинается разработка системы.
Единственное, что мы смогли стребовать у вендоров путем переговоров, — схемы процессов в вижене в виде «диаграмм». Для примера покажу малую часть.

Соответственно, наша задача — подготовить вижн на основе того, что нам передал вендор. Здесь можно обойтись без ИИ — ведь для этого есть шаблоны.
После архитектурного вижена нужно подготовить OTAP, чтобы с тестового контура перевести систему в прод. OTAP — более детальное описание, чем вижн, сюда входят: реестр интерфейсов, каналы, модули, передаваемые данные и как всё это взаимодействует, шифруется, защищается, разносится по подсетям.
Ко всем системам есть стандартные требования (например, дока должна поставляться в виде приложения). Примерно так, на скрине маааленькой части документации ниже.

OТАР передаётся в несколько подразделений, но главное — документы должны принять DevOps'ы. Систему сопровождают администраторы (не разработчики) первой линии сопровождения, после обращений пользователей изучают проблему по документации, регистрируют дефект и отправляют разработчикам. А если документации нет, они не понимают, как система работает, не могут её ни сопровождать, ни консультировать по ней.
Вот для этого в том числе и необходима документация.
При подготовке OTAP мы двигались как по рельсам — по двум параллельным путям:
- Первый путь — через UI в GenAI‑ассистенте для разработчиков AlfaGen (наш внутренний продукт), загружая разные данные и схемы в UI и получая части описания. 
- Второй путь — через это же подключение к Git, который готовит описание API по исходному коду. 
Часть, которая работает с API, готовит только треть документации и по качеству почему‑то пока работает хуже.
Через UI можно написать всю документацию, но её надо в любом случае проверять. Условно, в документации описывается метод и примеры запросов и ответов. Этот участок проверяет функциональное сопровождение — сверяет, корректно ли система работает, загружает в Swagger.
Как и в любой задаче с нейросетями, все ответы нужно валидировать. Мы сильно сократили затраты на подготовку «рыбы», но это, конечно, не стопроцентная оптимизация.
Что же в итоге?
Когда мы думали над идеальным конечным результатом с документацией, нам пришла идея — пусть документация готовит себя сама, и мы сразу подумали о генеративном ИИ. Обычные инструменты не подходили. Внутрянка продукта — это NDA. Решением стал наш GenAI-продукт для сотрудников банка AlfaGen, его нейронки работают в контуре и не отдают промпты и ответы наружу.
В итоге документацию написал ИИ (но есть нюанс с валидацией). ИИ обрабатывала AsciiDoc и анализировала код, учитывая контекст проекта. Ответы нейронки верифицировали технический писатель и аналитики.
AlfaGen сэкономил нам где‑то 20–25% времени на запуске. Да, магии не будет, заклинание «Акцио документум» не сработает (а вот «Авада криптабра» можно было применить гораздо раньше), и ИИ всю работу не сделает. Не бывает такого.
Мораль? Не экономьте на техписах и прописывайте техзадание на продукт подробнее (а если с этим проблемы, попросите совета у IT).
Пишите, с какими проблемами сталкивались вы при написании документации?
Комментарии (3)
 - AndreyVKalinin Автор21.05.2025 19:45- Спасибо за оценку и вопросы. - По пунктам: - 1. Если вопрос про ТЗ, то оно есть. Содержит подробные функциональные требования, а вот в части не функциональных (где можно было бы описать формат документации и примеры наполнения) проработано недостаточно. В основном там ответы на вопрос что требуется, а вот как это спроектировано и реализовано и тем более как это сопровождать можно трактовать слишком широко. У функционального сопровождения требования к документации, как вероятно в любой крупной и не очень молодой организации, очень серьезно проработаны. Например, должны быть описаны схемы процессов, все задействованные методы, изменения в данных и статусах, примеры запросов и ответов, и куча прочих деталей. Фактически у нас девопсы должны обладать полной информацией о фактической работе системы на техническом уровне, даже новички которые не погружены в контекст разработки и не имеют опыта должны понять, как система должна корректно работать в теории и сравнить с тем как она работает на практике и если есть расхождения зарегистрировать дефект. - 2. на 15 микро-сервисов 77 748 строк исходного кода. Это только один из новых модулей платформы, в статье речь про документацию только по нему. 
 
           
 
maxim_ge
Любопытная статья, спасибо. Есть пара вопросов.
Документация в виде требований к системе должна же быть? Каков уровень проработки требований, там нет примерных указаний на то, как система работает и сопровождается?
Каков примерно объём документируемого кода?