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 евро в час. Если с вами работает крупный корпорат, будьте уверены, у них судебная практика поставлена гораздо лучше, чем у вас. И шанс, что вы продуете суд — очень большой. Так что всеми способами надо признавать свою вину, даже если она частичная, и договариваться.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.