$700 тысяч штрафа от банка-заказчика и косячный сайт для президента: топы Qulix, Bamboo Agile и других делятся страшными случаями из практики

7 комментариев
$700 тысяч штрафа от банка-заказчика и косячный сайт для президента: топы Qulix, Bamboo Agile и других делятся страшными случаями из практики

22 октября 7 директоров ИТ-компаний по 7 минут рассказывали истории своих досадных падений — проходил митап «Как вспомню, так вздрогну» проекта Firstner. dev.by выбрал три самые жуткие истории: Qulix чуть не влетел на штраф в 700 тысяч долларов от некоего банка, команда Виталия Никуленко пропустила баг в первом сайте для президента, а Bamboo Agile были вынуждены писать код на тетрадных листках за колючей проволокой.

«Звонок из службы безопасности не заставил себя ждать»

— Наша компания одна из первых создала студию веб-дизайна. И нам повезло (наверное, в кавычках) создавать первый сайт президента Республики Беларусь, — рассказывает Виталий Никуленко, независимый директор, член наблюдательного совета ОАО «Белорусский межбанковский расчётный центр»

Виталий Никуленко

Виталий Никуленко

Спустя 2-3 месяца после того, как сайт был запущен, я пришел на работу и руководитель проекта спросил меня, читал ли я форум такой-то. Мы заглянули на этот форум и увидели скриншот с президентского сайта.

В строке поиска — нелитературное слово. В результатах выдачи — один документ: биография президента.

Звонок из службы безопасности не заставил себя ждать. Слава богу, что в то время не были распространены Фейсбук, Инстаграм, Вконтакте, — мы отделались гораздо меньшей кровью. После звонка мы оперативно собрали админов, всех своих специалистов.

(комментарий из зала: «носки, паспорта, зубные щетки»)

В течение двух-трех недель я ходил в администрацию президента как на работу. Нам нужно было доказать, что это не умышленная закладка разработчика, а определённый баг. Как оказалось — баг бесплатного MySQL. Логика базы была построена так, что если в sql-запросе параметр поиска был такой, что по нему ничего не находилось, база отдавала первый документ, который появился в базе данных. Первым документом, в нашем случае, ввели биографию президента.

Мы довольно быстро придумали алгоритм, как будем строить доказательства. Построили два стенда. Один с новой версией базы данных, другой со старой. Собралась комиссия. Вводили нехорошее слово на одном компьютере — получали тот же результат, на другом — видели, что этого результата нет.

В итоге все стороны сработали профессионально и всё закончилось благополучно и безопасно — проект утвердили и подписали акты. Нет, QA мы не уволили — такого тест-кейса не было. 

Какие уроки мы вынесли:

  • Нужно быть готовым к неожиданностям и чётко отладить работу команды.
  • Многие боятся белорусских проектов, особенно проектов с госорганами. Здесь достаточно соблюдать одно правило: всё должно быть оформлено документально, хорошо прописаны требования, что делаете и что не делаете в рамках договора. И всегда в первую очередь надо делать то, что прописано в этих требованиях. Никаких дополнительных плюшек и фишек, пока не сделан основной функционал. Потому что за то, что вы сделаете сверх, вас никто не похвалит и спасибо не скажет. Но если вы не сделаете хоть одну строчку из требований, вас за это очень хорошо взгреют. Такая рекомендация.

«Снять пиджак, пописать на него, намотать на голову, идти в сторону города»

— Все началось в 2017 году. Был деплоймент решения в Абу-Даби, — рассказывает Сергей Зубович, СОО Bamboo Agile. — Заказчик из ОАЭ — гос организация, которая занимается безопасностью в стране. В проекте использовались шифрование в шифровании, туннель в туннеле и много всего такого странного. Проект был сложный, состоял из бэкенда, фронтенда, мобильных приложений.

Сергей Зубович

Сергей Зубович

Удаленный доступ нам не дали. Сказали: «Ребята, собирайте всё, что сделали, пакуйте, записывайте на внешний винчестер и приезжайте. 

А у нас порядка 16 виртуальных машин на бэкенде. Базы данных, очереди, и все машины между собой общаются.

Прибыли мы в Абу-даби в июне, на Рамадан. В первый день поехали в красивый комфортный офис заказчика. Но нам сказали: «Нет, ребята, езжайте в дата-центр». Как выяснилось, находился он за городом, в пустыне. Просто белое здание за периметром безопасности, с КПП и колючей проволокой.

Приехали на такси. Вышли. Плюс 50, мы в пиджаках, в туфлях, в рубашках. Под открытым солнцем, спрятаться негде. На КПП оказалось, что наших паспортов нет в базе. Честно, это был один из самых страшных моментов в жизни. Я стал вспоминать, как Беар Гриллс учил действовать в пустыне. Нужно снять пиджак, пописать на него, намотать на голову, идти в сторону города…

В итоге в дата-центр мы сумели попасть, но минут 10 провели на этой страшной жаре, все поплыли. Потом у нас забрали внешний винчестер и три дня проверяли, все ли там хорошо. 

Здесь, дома, мы репетировали — разворачивали всю инфраструктуру, настраивали, смотрели как что с чем коммуницирует. Дали заказчику список, что нужно для деплоймента. Но когда приехали, оказалось, что ничего не готово. Например, мы ожидали nginx в качестве веб-сервера, а они дали сервер, который мы первый раз видели. Инфраструктурные изменения мешали деплойменту, нужно было разбираться на ходу, но в дата-центр нельзя было пронести ни телефон, ни ноутбук. Мы что-то делали, не получалось. 

Вечером в отеле гуглили, записывали решения на бумажку, на листики в тетрадку — конфигурации, исходники. Потом шли в дата-центр и с листика всё переписывали.

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

Мы планировали всё сделать за три недели, но в последнюю неделю начались государственные праздники, и все перестали работать. Одни находиться в дата-центре мы не могли, поэтому пришлось выбивать локальных сотрудников, которые в праздники согласились нас сопровождать, пока мы доделываем работу.

В итоге в последний день, к обеду, мы дошли до user acceptance testing. Думали, его будет делать команда QA инженеров. Но принимать работу приехал шейх, весь в белом, с нимбом вокруг головы. Он взял два телефона. И мы пять часов, вдвоем, проходили все тест кейсы. А их тысяча! Из-за того, что не было возможности всё нормально протестировать, вылазили ошибки. Я по городскому телефону звонил коллеге и он рестартовал на ходу.

Закончилось всё удачно. Мы приезжали в Абу-Даби еще два раза.

Какие уроки о культурных особенностях клиента мы вынесли:

  • Готовьтесь к дресс-коду: рубашка, брюки, туфли, даже если +50.
  • В Рамадан придётся есть как местные — утром и вечером. Или готовить ссобойки.
  • Бюрократия. Процессы очень сильно размазаны.
  • Арабы — такие white bosses. Ожидают к себе очень уважительного отношения, чтобы всё делали, как они скажут.
  • Полное неприятие ошибок — никаких вариантов договориться.

«ИТ-компания всегда находится в проигрышном положении с точки зрения договоров»

— Менеджеры проектов — классные ребята. Они умеют делать проекты. Но часто у них не хватает одной вещи: нормальной работы с юристами, — рассказывает Александр Арабей, сооснователь Qulix. — Особенно это выявляется, когда клиент — большой корпорат (банки, e-commerce), а проект длительный.

Александр Арабей

Александр Арабей

Вот вы подписываете договор. Контракт на три миллиона долларов. Менеджер проекта контролирует сроки, бюджет. И часто получается ситуация, когда он договаривается с менеджером проекта на стороне клиента о небольших изменениях. Например, что срок немножко удлинится. Или не немножко. 

В итоге может получится история, когда вроде все в курсе, что проект должен заделивериться 10 сентября, но сейчас уже декабрь, и у всех всё хорошо, все всё понимают.

Но если клиент крупный, у него есть многоуровневая иерархия. И проектная команда — это её самый начальный уровень. Дальше идёт замдиректора, глава департамента. И рано или поздно наступает момент, когда кто-то из верхушки приходит и говорит: «Ёлки-палки, а что происходит?»

Реальный случай — когда человек из верхушки поспорил, что проект заделиверится в такой-то день. И понеслась кутерьма, которую все знают — быстрее, работа ночами, овертаймы. И вроде дело житейское, пока всё не перешло в юридическую плоскость.

Давайте честно, в ИТ-бизнесе, ИТ-компания всегда находится в проигрышном положении с точки зрения договоров по отношению к заказчику. Частая ситуация, когда крупная компания присылает свой standard form и вы его либо подписываете, либо нет. Юристы говорят: «Нет, на это нельзя соглашаться, мы всё будем должны». Но вы взвешиваете на весах — хотите вы работать с этим заказчиком или хотите поспорить насчет договора?

У нас таких случаев был не один и не пять. Однажды мы пришли на ежемесячное совещание, где собираются управленцы и обсуждают, как идёт проект. Заказчиком был один из банков. 

Открывается дверь, мы заходим, а там проектной команды нет, но сидит прокьюремент, юристы, зампред. Нам дают официальное письмо на официальном бланке банка. Там написано: «В соответствии с таким-то договором вы обязались сделать то-то, в такой-то срок. Сейчас уже такой-то день. Размер штрафа — 700 тысяч долларов». 

В этот момент всё, что я думал буду рассказывать клиентам, стало таким незначительным. 700 тысяч долларов? Да ладно! Знать заранее, на что они рассчитывали, когда давали бумажку — нельзя. Объективно, это могла быть некая пугалка, как аргумент, чтобы нас ускорить. Но формально и юридически они могли взыскать с нас эти деньги.

Мы пошли на уступки. Пообещали, что приложим все усилия, будем работать ночами — зачастую важно не то, что вы делаете, а то, что говорите. Они услышали правильные слова и частично успокоились.

Какие уроки вынесли:

  • Всегда, когда вы ведете проект, у вас должен быть кто-то, кто контролирует юридическую чистоту. Если продлевается срок — не поленитесь, заключите доп соглашение. Потому что потом прилетит так, что мало не покажется.
  • Хоть юристы и говорят, что не надо бояться судов, судебная практика в ИТ-компаниях очень слабо развита. У нас юридический отдел — пять человек. Все очень классные юристы. Но ни один, если дело дойдет до суда, не сможет нормально защищать компанию. Придётся привлекать внешних юристов за 300 евро в час. Если с вами работает крупный корпорат, будьте уверены, у них судебная практика поставлена гораздо лучше, чем у вас. И шанс, что вы продуете суд — очень большой. Так что всеми способами надо признавать свою вину, даже если она частичная, и договариваться.

Работа в ИТ в Беларуси​.​​​​​​​​​​​​​​​​

1. Заполните анонимную форму — 5 минут.
2. Укажите зарплатные (и другие) ожидания.
3. Выберите желаемую индустрию или область деятельности.
4. Получайте релевантные предложения​​.​​​​​​​​​​ ​

Хотите сообщить важную новость?

Пишите в наш Телеграм

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

Белорусское приложение «Знай•бай» на первом месте в Google Play и App Store
Белорусское приложение «Знай•бай» на первом месте в Google Play и App Store
Белорусское приложение «Знай•бай» на первом месте в Google Play и App Store
Зарплата айтишников в долларах опять упала
Зарплата айтишников в долларах опять упала
Зарплата айтишников в долларах опять упала
До 1000 электромобилей хотят выпустить в Беларуси в следующем году
До 1000 электромобилей хотят выпустить в Беларуси в следующем году
До 1000 электромобилей хотят выпустить в Беларуси в следующем году
Куда собираются и как помогут сотрудникам. 2 часть опроса про релокейт — планы компаний
Куда собираются и как помогут сотрудникам. 2 часть опроса про релокейт — планы компаний
Куда собираются и как помогут сотрудникам. 2 часть опроса про релокейт — планы компаний
Больше 30% белорусских айтишников заявили, что их компании готовы перевезти сотрудников за границу — полностью или частично. Самый популярный вариант для релокейта — Украина. Таковы результаты опроса dev.by. Первая часть опроса о планах самих айтишников здесь.
46 комментариев

Обсуждение

1

> Логика базы была построена так, что если в sql-запросе параметр поиска был такой, что по нему ничего не находилось, база отдавала первый документ, который появился в базе данных.

Что за логика такая или баг в MySQL?) Мне видится что причина в кривом SQL запросе и БД тут не причем. Сомнительно что MySQL имела такой очевидный баг как возвращение первой записи если иные не подходят, мировой web упал бы от такого бага. Но конечно проблема в том что это open source.)

Виталий Никуленко
Виталий Никуленко Исполнительный директор SC-Retail в SoftClub
3

на тот момент - так и было. мы переписывались с сообществом MySQL и после нашего обращения оперативно вышла исправленная версия.

1

Можно все-таки линк на переписку или хоть какое-то упоминание об этом баге?

1

В MySQL много причудливых багов и я просто верю в существование еще и такого.
И FOSS тут ни при чем.

Виталий Никуленко
Виталий Никуленко Исполнительный директор SC-Retail в SoftClub
0

Я конечно, много чего храню в архивах с давних времен, но та переписка (10+ лет уже прошло) если и сохранилось, то на серверах компании. В личных - нет. В компании я с 2012 года не работаю.

j-l
j-l Ruby/Rails senior developer в Full Spectrum Systems
0

Ніколі не сустракаў такога бага. Думаю быў касяк ў sql-запыце.

0

Опечатка: "находу"

Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже