Переход на светлую сторону силы. Как решить сложную IT-задачу в сжатые сроки и ограниченным людским ресурсом
Как «джедаи» из IT отдела помогли компании ДНС решить задачу, только на оценку которой по-хорошему понадобилось бы больше месяца, всего за несколько недель. Хотя для этого и пришлось изменить 539 файлов, добавить 15978 строк кода и еще 9462 — удалить.
С 1 января 2019 года в России начала действовать новая налоговая ставка — 20%. Одновременно нужно было перейти на новый формат отчетов в налоговую — ФФД 1.05. Задача о необходимости приступать, как обычно, прилетела слишком поздно. Мы хотели подготовить еще летом 2018. Но ФНС затянула с разъяснениями, и когда в ноябре у нас были все вводные — дело отчетливо запахло керосином и санкциями со стороны контролирующих органов. Пришлось придумывать, как это вообще можно сделать.
— Шеф, все пропало!
У нас, как у любой другой компании, работы бывают плановые, а бывают — экстренные. Так вышло с задачей перехода на НДС 20%. Ни для кого не было секретом, что он будет. Все всё знали, но думали: «да успеем!» А потом наступил ноябрь 2018 года, бухгалтерия прибежала с криками, что все пропало, а у нас в решении задачи не валялся конь.
Начинаем обсуждать, что именно нужно сделать и понимаем, что там просто грандиозный объем работы. Потому что 15 лет исторически накапливался код, где зашита ставка 18%. И она была прошита повсюду — в хард-коде. А ещё и куча логики, а еще и чеки должны быть правильными, а ещё в момент перехода, если человек вначале купил за 18%, но оставил только аванс, а потом пришел забирать товар, то должна быть ставка 20%. И так далее. И мы должны были что-то сделать со всем этим.
Задача была настолько объемная, что дух захватывало. Надо было делать везде, во всех системах сразу, и при этом знать, как с этим работать — не только программистам, но также бухгалтерии, продавцам, операционистам. И тут мы схватились за голову: «Ох ты ж, ё-моё! А как нам это всё поднять вообще? И еще и успеть вовремя».
В принципе, у нас работает проектный подход: собрались, разобрали задачки, декомпозировали цель, и приступили. Но в таких объемах было ясно, что нам нужно месяца 2 — 3. По опыту работы с переходом на ФЗ-54, мы знали, что только на техническое задание уйдет месяц. А потом еще длительный процесс кодирования, тестирования и реального запуска.
Традиционными методами мы бы реально это не сделали. И решили попробовать другой подход. Назовём его «командный», а точнее — «джедайский».
Джедайский подход
Мы собрали всех IT-специалистов на 4 этаже нашего офисного здания. Там шел ремонт — разруха, стройка. И сказали: «Ребята, есть такой вызов. Кто хочет попробовать решение задачи в новой парадигме? Мы создадим команду, которая сосредоточится только на этом одном. У команды будут все ресурсы, собственные бухгалтеры, проектировщики, тестировщики. Она будет сама принимать решения, что делать и как. Если что-то будет мешать, мы поможем».
Команда нашлась — 16 человек только IT-шников. А еще были методологи, бухгалтеры. Это были ребята, которые сказали: «Да, давайте попробуем сделать всё по-другому». Мы выделили им место, буквально раздвинули наши столы, и они начали — договариваться о том, как им делать юзер-стори, сами придумали формат, который для них будет наиболее подходящий, сами договорились что описывать, что анализировать, на что тратить время, на что нет.
У этой команды не было руководителя, человека, который бы им говорил, что нужно делать. Единственное, нашим «джедаям» иногда нужна была помощь с приоритезацией. Ее оказывала федеральная дирекция и классический проектный менеджер. Но реально никто не руководил, они делали всё сами.
Как это было
Они все сели в одном месте, им легко было договариваться: кто-то на себя взял один блок задач, кто-то другой, третий взялся за то, чтобы раскопать, как оно работает сейчас, кто-то пытал методологов, чтобы выбить, как это должно быть. Ребята пренебрегли правилами классического описания ТЗ в угоду скорости.
За 3 — 4 дня они составили план действий. Расписали все кейсы. Сказать, что везде должно быть 20%, этого было мало. На самом деле есть ещё возвраты, есть обмены. Что если человек пришёл, купил по 18% и решил заменить на другой товар. А что, если товар сломался по нашей вине? А что, если мы ему денег должны немножко вернуть? И куча-куча разных позиций — уценка, скидочные карты, сертификаты, бонусы.
Наши «джедаи» организовали переход на новую ставку, систему мониторинга за чеками, продумали, как изолировать кассу, которая вдруг будет пробивать неправильные чеки. Было три цикла обновления касс. Мы мучили управляющих, привели в драйв все магазины. Через месяц задача была решена, 29 или 30 декабря зарелизили код. Это самый опасный период в ритейле. Период самых высоких продаж и максимальной нагрузки на системы.
С такими друзьями врагов не надо
При обновлении мы столкнулись с такой проблемой. На наших кассах не оказалось механизма заливки нового программного кода. Наша задача была сделать это настолько автоматически, насколько это возможно. Чтобы у кассира оставалась только одна кнопка. Нажал — касса обновилась. Потому что это даже объяснить сложно, что надо куда-то зайти, перепрограммировать кассу, вбить лицензию...
Сначала мы попытались поднять собственный сервер раздачи лицензий — идея провалилась, не получилось.
Потом мы искали команду, которую может принимать касса – выяснилось , что в документации такая команда есть, а в реальности она не существует.
Пообщались с производителями касс. А они ребята достаточно веселые, московские: «Вот же функция!» - «Ну да, мы проверили, не работает» - «Правда? Ой, и правда, не работает. Ну нету функции тогда.» - «А вы выпустите?» - «Ну если время останется» - «Какое время останется?! Вы в курсе, что до Нового года 10 дней?! А вы релизы выпускаете раз в полгода» - «Ну, значит, через полгода и выпустим. Обновитесь руками» - «А вы наше количество видели, ребята?!» - «Это ваша проблема».
В общем… здесь нас выручили наши дивизионные сисадмины, которые могут дистанционно подключаться к кассам. Подготовили обновление, предупредили одного администратора: «Чувак, возможны сбои. Давай нам обратную связь как можно быстрее». Запустили – три магазина обновились. Вроде, работает. Запустили весь Дальний Восток, Сибирь, центральную зону, наконец, Запад. Летим!
Что в итоге у нас получилось
Удивительно, но факт: это был один из самых гладких переходов с таким большим изменением. Ребята реально постарались. Оффлайн-точки обновили, обновили всё, что касается интернет-магазина. И все заработало сразу и работает до сих пор. Ничего не пришлось ни дорабатывать, ни переписывать.
Так что иногда — не очень часто — джедайский подход может работать. Только, чур, «не пытайтесь это повторить в домашних условиях».
Очень круто. Но прямо как-то не верится даже.