В Белоруссии 1 июля 2016 года прошла деноминация официальной денежной единицы (рубля). В результате 10000 «старых» рублей превратились в 1 «новый» рубль.
Такие изменения ощутимы для всех жителей страны, но особенно сложно переход дается компаниям, которые оказывают услуги за деньги. К их числу относятся и операторы связи, которым нужно было сделать так, чтобы первого числа их абоненты продолжили пользоваться услугами как ни в чем не бывало.
Это значит, что всей команде Гидры предстояло серьезно потрудиться, чтобы корректно отработать процедуру деноминации.
Опыта проведения подобных проектов у нас не было — ни в одной из 8 стран, где есть пользователи Гидры, деноминация за время нашей работы на этом рынке не проводилась. Так что, как в джазе, нам предстояло импровизировать.
Как мы сказали, главная цель проекта заключалась в том, чтобы абоненты операторов-пользователей нашего биллинга (а это несколько десятков тысяч человек) просто не заметили перемен. Никакие отказы в обслуживании, потери и некорректные списания средств из-за неверной работы биллинга не допускались. Люди должны были лечь спать с условными 150 000 рублей, а проснуться с 15 рублями на счету.
Одной из главных сложностей проекта было то, что при деноминации старые деньги не отменяются одномоментно, а на протяжении довольно длительного времени действуют обе валюты. Все расчеты с момента объявления деноминации должны проводиться в новой валюте, однако различные операции, вроде приема платежей, могут проходить и в старой.
В ходе деноминации не просто «убираются нули» — рождается новая валюта с новым кодом ISO. Это значит, что с момента деноминации во всех системах должна поддерживаться новая валюта.
В частности, всевозможные детализации должны отражать и старые цены в старой валюте и новые в новой. То есть должны быть обработаны и все прайс-листы, по которым работает биллинг — 30 июня они все должны были быть закрыты, чтобы с первого числа все заработало по-новому. Все это нужно было готовить заранее, поэтому мы нашли копию указа о проведении деноминации, выпущенного президентом страны. Надо отдать должное властям Белоруссии — этот документ составлен качественно и содержит всю необходимую информацию, что значительно упростило работу по переходу.
Кроме того, биллинг должен поддерживать возможность использования двух вариантов цен в разных валютах для использования в переходный период. И это должно работать заранее — если какие-то денежные операции планировались в конце июня на середину июля, то пройти они должны уже в новой валюте во избежание проблем.
Весь проект был разбит на два этапа — подготовительный, который включил в себя основную массу работ, и само переключение в ночь на первое июля. На подготовительном этапе нам предстояло разобраться, как корректно учесть финансовое состояние абонентских счетов и обеспечить беспроблемный прием и списание средств без всяких ошибок.
Решить вопрос с платежами оказалось несложно — к счастью, в Гидре есть встроенная возможность приема оплаты одновременно в разных валютах с помощью специального инструмента конвертации. Гидра автоматически определяет, что за 10000 рублей в старой валюте полагается зачислить на счет 1 рубль в новой.
Таким образом, со стороны провайдеров здесь не должно было быть проблем. Однако предстояло убедиться в том, что корректно работает интеграция со всеми платежными системами, которые используют провайдеры. Не все они должны были перейти на новую валюту одновременно, в результате одновременно могли поступать платежи как в новой так и в старой валюте. Под каждую платежную систему интеграцию нужно было настроить отдельно, в противном случае могли быть ошибки в зачислении средств на счета. К счастью, в Белоруссии всего несколько платежных сервисов, поэтому мы попросили заказчиков Гидры связаться теми, которые они используют, чтобы узнать, как именно эти компании планируют переключать режим работы в ходе деноминации.
Намного сложнее было выполнить перенос данных пользовательских счетов: нужно было корректно учесть баланс, информацию о подключенных услугах, списать за них деньги и продолжить работу в штатном режиме. Перед нами возник целый ряд сложностей, и одной из главных был тот факт, что все должно было работать по-старому до 00:00 первого июля, а затем наступала новая реальность.
Чтобы переключиться со старой валюты на новую в заданное время, мы решили использовать следующую схему. Все старые лицевые счета абонентов должны были быть закрыты (как и их подписки, расчетные периоды и прочее) и заменены новыми. Вся жизнь со старыми рублями должна была закончиться 30 июня в 23:59:59, а в полночь должны были открыться новые счета с такими же номерами и тарифы для работы с новым рублем. Это означало, что сущностей в системе станет больше, иногда значительно больше — если Гидра работает в неконвергентном режиме и у абонента было сразу три лицевых счета (например, для раздельной оплаты интернета, телевидения и телефонии), то их число увеличилось бы до шести.
При этом, если на старом счету оставалось еще какое-то количество денег, то их часть сразу переносилась на новый счет — это было нужно для «бесшовности» перехода. А уже после полуночи на новый счет переносились и оставшиеся средства.
Так был реализован бесшовный переход — если у абонента было достаточно денег для получения услуги, то даже после деноминации ему должно было бы хватать денег для продолжения ее получения. И аналогично, если денег было недостаточно — не должно было внезапно случиться так, что кто-то мог пользоваться услугами в день деноминации бесплатно.
Еще один важный момент — корректная работа системы отчетности. Нельзя было допустить, чтобы после деноминации клиентские отчеты за прошедшие периоды отображали бы списания в новой валюте — тогда еще действовал старый рубль, так что и в отчетах должен быть он.
Поскольку мы закрывали старые лицевые счета и открывали новые с такими же номерами, то решили в личном кабинете абонента оставить доступ к просмотру каждого варианта счета — это значит, что если абонент смотрел старый счет, то видел отчетность в старых ценах, и наоборот.
До сих пор множество операторов связи привязывают свои бизнес-процессы к первому числу месяца, то есть в ночь на первое число происходит множество важных процессов в биллинге. А значит, это не самое лучшее время для того, чтобы делать с биллингом что-то еще. Но поскольку деноминация происходила именно в ночь на первое июля, то ждать было нельзя. Однако нельзя было и ошибаться, так что мы уделили большое внимание тестированию.
Поэтому мы подговили тестовую инфраструктуру, имитирующую реальные системы операторов, на которой проводилось несколько тестовых «деноминаций» с закрытием старых абонентских счетов, открытием новых и переносом всех данных в новую валюту. Это позволило отладить все процессы, как на нашей стороне, так и самим операторам. В итоге непосредственно в день, когда происходила реальная деноминация, все прошло без проблем.
Мы даже удостоились необычного отзыва от одного из белорусских клиентов:
В заключение просуммируем все факторы, которые помогли успешно выполнить проект «деноминация».