Вещий сон КиберДеда: как прыжок с печи помог мне создать «Соту-Юниор» и почему Т-Банк словил управленческий дедлок.
Салют всем родителям, дедам и честной ИТ-публике, погрязшей в своих коворкингах за чашкой латте, от Игоря Чернова (ssmel63) — простого пчеловода из Давлеканово!
Пока Т-Банк со своими многотысячной толпой синьоров, тимлидов и Agile-коучей плавно погружается в болото сытой посредственности и прогрессирующей, обволакивающей утечки мозгов в бесконечный цикл, я покажу вам, как на самом деле упрямо доводятся до ума финтех-инновации, просто каждому нужно просто слесть со своей виртуальной печи, которую он таскает за собой и никак не может слезьть с нее.
Всё началось ещё 15 июля. Я зашёл в личный кабинет Т-Банка и скинул их «гениям мысли» в чат поддержки готовый, разжёванный продуктовый принцип автоматического округления трат до 10 рублей для детских карт Junior. Не абстрактную писанину, а готовую математическую модель автоматического расчета и UI-компонент фронтенда.
Суть принципа проста как веник, примерно такая но скучная и нудная есть у взрослых карт, у детей такого нет и я был несказанно удивлен этим, когда спросил что хочу внуку откидывать мелочь при покупки репы, квас и брюквы в магазин.
Короче объясняю на пальцах: родитель делает покупку в супермаркете на 555 рублей. Система автоматически округляет сумму вверх до ближайшего десятка — до 560 рублей. Разница в 5 рублей незаметно переводится на накопительный счёт ребёнка. Если покупка круглая (допустим, фастфуд на 480 рублей или автоуслуги на 80 рублей) — дельта равна нулю, ничего не списывается. Родитель просто ходит за покупками, а у детей к концу месяца копится понятная сумма на карманные расходы. Я детально расписал им эту математику, сделал наглядную таблицу категорий и передал код, чтобы его можно было просто внедрить во фронтенд приложения.
И что вы думаете? Банк эту идею замариновал. Их специалисты с июля месяца словили полный зависон ядра и не могут даже распарсить эту первую, простейшую часть — о чём я им говорю. Судя по всему, их бэкендеры просто испугались, что если миллионы детей начнут азартно тыкать в смартфонах, их синхронное ядро СУБД Oracle моментально лопнет от перегрузки строк и упадёт в каскадный дедлок ORA-00060. Я так понял сырую идею они будут обрабатывать по крайней мере, с какой скоростью они хватаются и обрабатывают идею, ну лет так двести.
Столкнувшись с этой закрытой дверью, вчера вечером я лёг отдохнуть после тяжёлого дня в пристрое, где весь день заливал белил печь и колол дрова для бани, и тут меня прошибло — вся эволюция темы пришла в голову минут за тринадцать, а на оформление текста и написание кода ушёл ровно один час. Задумался я крепок и вижу что внуки расхулиганились бегают по лавкам, шумят, устроили в доме шторм запросов, и один ну ни в какую не слушается — так вот я слез с печи, взял старые кожаные помочи с конюшни и давай упрямо пороть его для дисциплины, чтоб только пыль стояла...
И тут я просыпаюсь от дикого грохота! Просыпаюсь от того, что этот самый мелкий бандюган в реальности прыгнул с печи прямо через Деда, вышибив из меня весь дух! Тулуп на полу, внук на мне верхом сидит и ржёт во все зубы. Веник зачем-то у меня как градусник вставлен и покрыт сажей, словно поджигали его...Лежу я, ловлю ртом воздух, и среди этого детского гвалта меня как током прошибает ироничная техническая мысль — зачем орать и махать ремнем, если можно встроить эти суровые помочи прямо в программу, раз уж современные программисты словили каскадный троттлинг мышления и не умеют работать с асинхронной памятью?Чтобы не загружать неповоротливый Oracle и не забивать диски серверов лишним мусором in-memory дампов, я создал изолированную транзакционную капсулу. Вся детская активность (машинки и птички) крутится со скоростью процессора строго в оперативной памяти телефона, вообще не беспокоя банк в течение дня. А в конце дня или недели капсула автоматически выгружает накопленные данные одной итоговой консолидированной проводкой. При этом про требования Центробанка (ЦБ РФ) я тоже не забыл — всё абсолютно легально, прозрачно для регулятора, но без терабайтов логов и упавших баз.
И самое главное для архитекторов банка: эта микрокапсула загружается в память сервера динамически и только тогда, когда владелец взрослой карты реально открывает в приложении детский счет. Нет детского контура — сервер не тратит на пустые структуры ни одного байта ОЗУ! Всё максимально экономно и эффективно.За тот самый один час работы на GitHub я зафиксировал три последовательных варианта логики, расширяющие июльский принцип и защищающие банковские базы от нагрузок:
- Интерактивный раздельный гейминг: Чтобы не загружать все деньги в один общий семейный сундук СУБД, я разделил игровой процесс для мальчиков и девочек. Для пацанов на экране смартфона появляется «Живой грузовик»: интерактивная машинка-грузовик плавно едет через весь экран, её кузов поднимается, и заработанные призы-монетки с грохотом сгружаются прямо в копилку. Для девчонок реализована «Птичья почта»: на экране горит красивое бьющееся сердечко, от него отделяется монетка, прилетают белые голуби, аккуратно подхватывают её в клюв и красиво нанизывают бонусы на нить, как блестящее ожерелье. Вся эта плавная анимация крутится прямо в памяти телефона.
- Программный родительский стоп-кран: Тот самый метод дисциплины, пришедший с печи. Если ребёнок не слушается, мама в своём приложении активирует блокировку ровно на 24 часа. Нажатие на машинку выдаёт анимацию застрявшего грузовика с буксующими на месте колёсами, а для девочек голубь просто складывает крылья, садится на ветку и качает головой. Бонусы и призы временно отключаются, пока база данных банка полностью свободна от логов. Через сутки таймер в операционной памяти автоматически снимает ограничение и наступает автоматическое дедовское прощение.
Вся эта работа теперь зафиксирована в моём репозитории под лицензией MIT:👉 github.com
Коммерческий и логический итог:
Похожий принцип автоматического округления трат в Т-Банке для взрослых уже есть, но сделан он скучно, криво и неповоротливо. Я же им, господа банковские менеджеры, по сути, подгоняю готовый маркетинг — это же замануха и реклама для детей на уровне грудного детского молока! Чтобы подрастающее поколение с пелёнок впитывало, что банк — это что-то приятное, увлекательное и хорошее. Эта бесплатная реклама сама им в руки, как гюрза, прыгает!
Но ваши ИТ-чиновники решили упереться рогами в то, что есть сейчас. Эти гребцы на галерах согласований просто физически не способны придумать моторчик с пропеллером, чтобы сдвинуть систему с места. Они упрямо твердят: «Я гребу, греб и буду грести», как в том старом кино «Греби к берегу». И они упорно продолжают грести на своей дырявой лодке в сторону берега, хотя прямо к ним подошёл современный спасательный лайнер со всеми готовыми технологиями. Ну что ж, удачи — до берега Австралии со стороны Гренландии грести вам будет совсем недолго)). Битва за будущих клиентов вами полностью проиграна. Вы намертво застряли в административной бюрократии и управленческом дедлоке.
Если Т-Банк продолжит мариновать обращение, я готов официально передать эту готовую семейную систему другим игрокам рынка — Альфа-Банку, ВТБ или МТС Банку — по обычной рыночной стоимости. Для Сбербанка условия отдельные: из-за старых рабочих обид цена для них будет ровно в 10 раз дороже рыночной. Либо платите чемодан денег х10 за дедовский метод воспитания, либо продолжайте тонуть в цифровой посредственности.