Глава 21: Большой куш, или как мы чуть не утонули в деньгах (а потом в долгах)
Дорогие друзья, приготовьтесь! Мы подходим к самому интересному моменту нашей истории. Это как в фильмах про ограбление века — вот-вот начнется самое захватывающее. Только вместо банка мы собирались «ограбить» мир IT, а вместо масок у нас были клавиатуры и чашки с остывшим кофе.
Итак, представьте: сижу я в своем «офисе» (который на самом деле был угловым столиком в съемной квартире), уставившись в монитор со сводкой наших финансов — картина, прямо скажем, не из веселых. И тут — бам! — звонок.
— Алло, компания «Кодокрафт», чем можем помочь? — произношу я своим фирменным «деловым» голосом, который, как мне казалось, звучит солидно и внушительно.
— Добрый день, меня зовут Василий Петрович, я представляю компанию «ТехноСтар», — раздается на другом конце провода бодрый баритон. — Нам нужна серьезная разработка. Вы беретесь за крупные проекты?
Я выпрямился на стуле так резко, что он скрипнул.
— Разумеется, — отвечаю я с невозмутимостью опытного бизнесмена. — Крупные проекты — наша специализация!
В этот момент мысленно я уже подсчитывал, сколько месяцев мы сможем оплачивать аренду нашего офиса (читай: моей кухни), если этот заказ выгорит.
Давайте назовем этого потенциального спасителя нашего бизнеса просто Василий. Нет, не тот Василий, который живет этажом выше и постоянно сверлит стену в три часа ночи. Другой Василий — наш потенциальный клиент мечты!
Мы провели с ним несколько виртуальных встреч. Знаете, как это бывает — ты в пижамных штанах и футболке с пятном от вчерашнего борща, а на экране ноутбука — ты же, но в строгой рубашке и с деловым выражением лица. Магия Zoom, что тут скажешь!
Но потом настал день, когда мы должны были встретиться вживую. Я нервничал, как перед первым свиданием.
— Олег, как думаешь, надо галстук надеть? — спрашиваю я, перебирая свой скудный деловой гардероб.
— Не знаю, — пожимает плечами Олег, который явно был более опытен в таких делах. — Но если наденешь, то хотя бы научись его нормально завязывать. А то в прошлый раз ты был похож на школьника, которого мама собирала на выпускной.
— Эй, это было оскорбительно правдиво! — возмущаюсь я и убираю галстук обратно в шкаф.
В итоге я остановился на простой белой рубашке и джинсах — классика, которая никогда не подводит. По крайней мере, я так думал.
Василий хотел систему. Не просто какую-то там систему, а СИСТЕМУ с большой буквы «С». Такую, чтобы при одном взгляде на нее Илон Маск начал нервно курить в сторонке. И, о чудо, он был готов за это платить! Глаза Василия сияли ярче, чем у кота, увидевшего незапертую дверь в мясной отдел супермаркета.
— Сейчас в трендах искусственный интеллект, — говорил он, размахивая руками так, будто дирижировал невидимым оркестром. — Мне нужна система, которая будет анализировать разговоры в реальном времени и давать подсказки операторам. Это революция в колл-центрах! — воскликнул он, стукнув кулаком по столу с таким энтузиазмом, что мой стакан с водой чуть не опрокинулся.
— Конечно, Василий, — отвечал я, стараясь звучать так, словно подобные проекты для нас — обычное дело. — Искусственный интеллект, анализ речи — это все в нашей компетенции. А объем данных для обучения у вас имеется?
— О чем вы? — слегка нахмурился Василий.
— Ну, для обучения ИИ нужны данные, — пояснил Олег, который до этого молча сидел рядом. — Записи разговоров, размеченные примеры, эталонные ответы…
— А, это, — махнул рукой Василий. — Не беспокойтесь, у нас этого добра валом. Терабайты данных! — он развел руки в стороны, словно показывая размер воображаемой рыбы, которую поймал.
— А кофе она тоже будет варить? — пошутил я, вспомнив нашего прошлого клиента.
— А что, может? — загорелся Василий.
— Ну, за отдельную плату… — пошутил я, но Василий уже строчил это в список требований, и я понял, что только что нажил себе еще одну головную боль.
Мы встретились вживую еще раз, пожали друг другу руки (я даже помыл свою перед встречей, вот как серьезно я к этому подошел!) и заключили контракт. Шесть миллионов восемьсот тысяч рублей за три этапа. Я пересчитал нули четыре раза, думая, что у меня двоится в глазах. До этого самым крупным нашим заказом был сайт для муниципалитета — четыреста тысяч и пятьдесят страниц технического задания.
— Ну что, по рукам? — спросил Василий, протягивая свою ладонь.
Я пожал его руку и понял, что ладонь у меня мокрая. В этот момент я был готов поцеловать этого человека — мы были спасены!
— По рукам! — ответил я, стараясь не показать, что внутри меня сейчас проходит карнавал радости, сравнимый с бразильским.
А потом началось самое веселое — подготовка технического задания. Двести страниц! Двести, Карл! Это было похоже на «Войну и мир», только вместо Наташи Ростовой — диаграммы потоков данных, а вместо Пьера Безухова — описания пользовательских интерфейсов.
Мы подключили столько людей, что впору было открывать собственный город айтишников. Аналитики, дизайнеры, программисты — все работали как пчелы в улье. Только вместо меда мы производили код и документацию.
— Слушайте, у нас есть деньги, чтобы всем этим людям заплатить? — спросила нас Марина, когда мы в очередной раз сидели в кафе, обсуждая проект.
— Конечно! — ответил я с уверенностью, которой на самом деле не чувствовал. — У нас же есть аванс от Василия.
— И сколько процентов от общей суммы составляет этот аванс? — спросила она, прищурившись.
— Эм… — я замялся. — Сорок процентов… от первого этапа. Шестьсот восемьдесят тысяч.
— А общая сумма первого этапа — это сколько процентов от всего проекта?
— Примерно… двадцать пять, — признался я, чувствуя, как оптимизм начинает сдуваться, как проколотый воздушный шарик. — Первый этап — миллион семьсот.
— То есть, у нас на руках всего десять процентов от общей суммы? — подвела итог Марина, и в ее взгляде читалось что-то среднее между ужасом и восхищением моей наглостью.
— Ну… да, — кивнул я. — Но ведь мы справимся, правда?
Олег и Марина переглянулись, и я увидел в их глазах ту смесь отчаяния и решимости, которая характерна для людей, прыгающих с парашютом впервые.
— Справимся, — вздохнул Олег. — Выбора-то нет.
Наконец, техническое задание было готово. Мы даже подготовили визуальный интерфейс — каждая кнопочка была продумана так тщательно, будто от нее зависела судьба мира.
— Вот, Василий, — гордо сказал я, отправляя результат нашего труда. — Это не просто ТЗ, это произведение искусства! Взгляните на эти диаграммы, на эти схемы взаимодействия!
— Отлично! — ответил Василий. — Я посмотрю… как-нибудь на досуге.
И тут начались первые звоночки. Василий не спешил подписывать акт выполненных работ. Мы отправляли его на почту, на факс, с голубями — никакой реакции.
— Василий, — звонил я ему, стараясь звучать непринужденно, — вы получили акт?
— Да-да, конечно, — отвечал он. — Просто я сейчас в Тибете, медитирую. Подпишу, как только закончу поиски внутреннего я.
— В Тибете? — удивлялся я. — Но мы же разговариваем по телефону, и связь отличная.
— Ну, знаете, современные технологии, — смеялся он. — А вы что, уже хотите денег? Мы же только начали работу!
— Но это был первый этап, и он завершен, — напоминал я, сжимая в руке телефон так, что казалось, еще немного — и пластик треснет. — Согласно договору…
— Да-да, договор, — перебивал меня Василий. — Вы знаете, у нас тут часовая разница, и я уже засыпаю. Давайте поговорим через неделю, хорошо?
И трубка замолкала, оставляя меня наедине с моими мыслями. А мысли эти были далеко не радужные.
Мы не придали этому значения. Подумаешь, занятой человек, мотается по миру. Наверное, ищет место, где поставить огромный сервер для нашей суперсистемы.
И мы приступили к разработке. О, это была песня! Симфония кода, балет алгоритмов! Мы разбили проект на три этапа, получили аванс (40% от стоимости первого этапа — не густо, но хоть что-то) и погрузились в работу.
Ребята творили чудеса. Фреймворки, библиотеки, API — все смешалось в один большой котел, из которого должна была родиться наша система. Это было похоже на приготовление борща программистом: «Так, добавим сюда немного Java, щепотку Python, для остроты немного C++… О, и давайте бахнем JavaScript для аромата!»
— Ребята, вы уверены, что это все будет работать вместе? — спросил я, наблюдая за тем, как наши разработчики жонглируют разными технологиями.
— Теоретически — да, — ответил Дима, наш ведущий разработчик, не отрываясь от экрана. — Практически — узнаем, когда запустим.
— А если не заработает? — с тревогой поинтересовался я.
— Тогда будем разбираться, — пожал плечами Дима. — Такова жизнь программиста: ты пишешь код, а потом проводишь вдвое больше времени, выясняя, почему он не работает так, как должен.
— Но у нас сроки горят! — напомнил я.
— Максим, — Дима наконец оторвался от экрана и посмотрел на меня, — в мире разработки ПО есть три константы: код будет иметь баги, сроки будут нарушены, а клиент изменит требования в последний момент. Это как законы физики — неизбежно.
И знаете что? Он оказался прав по всем трем пунктам.
И вот, первая версия была готова! Мы радовались как дети, получившие на Новый год долгожданный подарок. Система работала! Она была как новорожденный жираф — немного неуклюжая, но уже готовая покорять мир.
— Смотрите! — с гордостью демонстрировал я Василию то, что мы создали. — Она работает! Система распознает речь, анализирует эмоциональный окрас, выдает подсказки. Все, как вы хотели!
— Хм, — задумчиво протянул Василий, глядя на экран. — А почему подсказки появляются с задержкой?
— Всего полсекунды, — вступился Олег. — Это из-за обработки естественного языка, алгоритму нужно время, чтобы проанализировать контекст.
— Мне казалось, мы говорили о реальном времени, — нахмурился Василий.
— Полсекунды — это и есть практически реальное время, — возразил Олег. — Поверьте, быстрее сейчас не может работать ни одна система такого класса.
— Хм, — снова протянул Василий. — Ну ладно, посмотрим. А когда будет следующая версия?
— Как только вы оплатите текущий этап, — твердо сказал я, решив наконец поднять этот неудобный вопрос. — Мы работаем уже месяц, а оплаты за первый этап все еще нет.
— А, да, деньги, — Василий махнул рукой, словно речь шла о чем-то незначительном. — Не беспокойтесь, скоро будут. У нас там небольшие проблемы с финансовым отделом, знаете, бюрократия…
Но тут случилось то, чего мы боялись больше, чем встречи выпускников на 20-летие окончания школы. Василий начал задерживать оплату.
— Ребята, — говорил он извиняющимся тоном, — у меня тут небольшие проблемы с наличностью. Знаете, купил остров в Тихом океане, теперь вот жду, пока банк одобрит кредит…
А для нас это было хуже, чем остаться без интернета в разгар релиза. Наши разработчики были как стоматологи — время расписано на месяцы вперед, каждая минута на счету. Мы не могли просто сказать: «Ребята, подождите, сейчас Василий продаст почку и заплатит нам».
— Максим, нам нужно серьезно поговорить, — сказал мне Олег, когда мы в очередной раз сидели в офисе, пытаясь придумать, где взять деньги на зарплату команде.
— Я знаю, знаю, — вздохнул я. — Деньги скоро будут, Василий обещал…
— Ты сам в это веришь? — прервал меня Олег. — Почти два месяца прошло, а он все кормит нас завтраками. У нас люди работают, им семьи кормить надо.
— Я понимаю, — я чувствовал себя ужасно. — Может, нам взять другой проект параллельно? Чтобы перекрыть расходы?
— А силы у нас на это есть? — скептически спросил Олег. — Команда и так работает на пределе возможностей.
Два месяца мы жили как на вулкане. Деньги капали, но так медленно, что можно было услышать звук каждой упавшей копейки. Каждое утро начиналось с одного и того же арифметического упражнения: сколько у нас на счету и до какого числа мы на это дотянем.
— Знаешь, — сказал мне как-то Олег, когда мы в очередной раз обсуждали наше финансовое положение, — это начинает напоминать какую-то плохую комедию. Мы создаем крутую систему для клиента, который, похоже, не собирается за нее платить.
— Он заплатит, — упрямо повторял я, хотя уверенности в голосе уже не было. — Просто у него действительно финансовые трудности…
— Да? — скептически поднял бровь Олег. — А что тогда делает его новый Мерседес на парковке бизнес-центра?
— Что? — я подался вперед. — Ты уверен?
— Абсолютно, — кивнул Олег. — Вчера видел его там. S-класс, последняя модель.
Я почувствовал, как внутри меня что-то закипает. Одно дело — когда человек действительно в трудном положении, и совсем другое — когда он просто не хочет платить.
— Знаешь что, — решительно сказал я, — завтра же иду к нему в офис. Хватит этого цирка!
И я пошел. Но вместо серьезного разговора получил новые обещания и заверения, что «деньги уже в пути».
В итоге, мы получили оплату за первый этап. Частями, со скрипом, четырьмя платежами за три месяца, но получили: миллион семьсот, до копейки. Мы выдохнули, распустили команду и стали думать, что делать дальше. Потому что история с Василием еще не закончилась. О нет, она только начиналась…
А теперь, мы переходим ко второму этапу нашего эпического приключения. Но, как в любом хорошем блокбастере, тут начались настоящие «американские горки».
Представьте: мы, как герои фильма «Миссия невыполнима», собираем команду заново. Только вместо взлома сейфа нам нужно было взломать… нет, не систему безопасности, а мозг нашего заказчика Василия.
— Ребята, — говорю я команде, собравшейся в нашем маленьком офисе (теперь у нас был настоящий офис, хоть и крохотный), — нас ждет миссия посложнее, чем высадка на Марс. Нам нужно сделать систему, да еще и заставить заказчика за нее заплатить!
— Может, сначала потребовать предоплату за второй этап? — предложила Марина, которая, похоже, была единственным здравомыслящим человеком в нашей компании.
— Пробовал, — вздохнул я. — Василий говорит, что сначала хочет увидеть прогресс, а потом уже платить.
— И ты согласился? — Марина посмотрела на меня так, словно я только что признался, что верю в плоскую Землю.
— А что мне оставалось делать? — развел я руками. — У нас же контракт, мы не можем просто так выйти из проекта.
— Можем, если другая сторона нарушает условия, — заметил Олег.
— И остаться без самого крупного клиента? — возразил я. — Нет уж, будем работать. Но теперь будем умнее.
Несмотря на все трудности, мы с энтузиазмом погрузились в разработку. Наш проект был амбициознее, чем планы Илона Маска по колонизации Марса. Мы создавали систему, способную анализировать разговоры в реальном времени и давать подсказки. Представьте себе Siri на стероидах, только без раздражающего голоса.
Мы писали код быстрее, чем Стивен Кинг пишет свои романы. Система могла переводить голос в текст, анализировать его и выдавать подсказки с точностью 80-90%. Это было как иметь персонального Шерлока Холмса в кармане, только вместо трубки у него клавиатура.
Но тут начался настоящий триллер. Василий, наш дорогой заказчик, вдруг начал вести себя странно. Он постоянно смотрел на конкурентов и говорил: «А вот у них уже есть что-то похожее!» Это было так, будто вы пришли в ресторан, заказали стейк, а потом начали жаловаться, что в соседнем McDonald’s тоже есть мясо.
— Смотрите, — сказал он во время одной из встреч, показывая нам какую-то статью на планшете, — здесь пишут, что компания X уже запустила подобный продукт. И он работает быстрее вашего!
— Василий, — терпеливо объяснял Олег, — во-первых, это пресс-релиз, там часто приукрашивают. Во-вторых, мы еще не закончили оптимизацию нашей системы. А в-третьих, если их система действительно настолько хороша, почему бы вам не обратиться к ним?
— Ну… — замялся Василий, — у них дороже.
— Вот видите, — улыбнулся Олег. — В этом мире ты получаешь то, за что платишь. А еще лучше — когда платишь вовремя.
Василий сделал вид, что не заметил шпильки.
Мы, конечно, не обращали на это внимания. Наша задача была сделать систему, а не участвовать в параноидальных играх заказчика. Мы были как Нео в «Матрице» — сфокусированы на своей миссии, даже если вокруг все сходит с ума.
И вот, наступил момент истины. Третий этап — самый сложный. Мы должны были заставить систему работать в режиме реального времени с минимальными задержками. Это было сложнее, чем научить кота играть на пианино.
— Я не понимаю, что происходит, — сказал Дима, глядя на экран с отладочной информацией. — Все должно работать, но почему-то постоянные задержки…
— Может, проблема в сервере? — предположил я.
— Возможно, — кивнул Дима. — Но мне нужен доступ к серверу Василия, чтобы проверить.
И тут я столкнулся с еще одной проблемой — Василий не хотел давать нам полный доступ к своему серверу. Он говорил что-то о корпоративной безопасности и защите данных, но мы подозревали, что дело в чем-то другом.
— Может, у него там что-то, что он не хочет нам показывать? — предположила Марина.
— Или сервер настолько слабый, что наша система просто не тянет, — добавил Олег.
Как бы то ни было, мы оказались в тупике. Без доступа к серверу мы не могли оптимизировать систему, а без оптимизации она не соответствовала требованиям Василия.
Но тут случилось то, чего мы боялись больше, чем программисты боятся солнечного света. Василий начал «переобуваться в воздухе». Он говорил все, что угодно, только не то, что мы закончили работу и ему пора платить.
— Знаете, — сказал он во время одного из наших звонков, — я тут подумал… Может, нам стоит пересмотреть концепцию? Возможно, мы идем не в том направлении…
— Пересмотреть концепцию? — я чуть не уронил телефон. — Василий, мы работаем над этим проектом больше полугода! У нас готовая система, которая делает все, что вы просили!
— Да, но рынок меняется, — продолжал он. — И я не уверен, что это именно то, что нам нужно…
Я молча положил трубку, не в силах больше слушать эту чушь. Внутри меня разливалась горячая волна гнева. Все эти месяцы работы, все эти бессонные ночи, все эти усилия… И ради чего?
А потом… он просто исчез. Растворился, как баг после перезагрузки системы.
— Он не отвечает на звонки уже неделю, — сообщил я команде. — Его секретарь говорит, что он в командировке.
— В командировке в Тибете? — скептически поинтересовался Олег.
— Очевидно, — вздохнул я. — А его финансовый директор говорит, что не может подписать платежные документы без его одобрения.
— Классика, — покачал головой Олег. — И что теперь?
Сервера, которые были на его стороне, вдруг заглохли. Мы оказались в ситуации, будто нам дали Ferrari, но забыли дать ключи и бензин.
И вот мы сидим, как в фильме «Большой куш», только вместо бриллианта у нас недоделанная система и куча неоплаченных счетов.
— Может, юристов подключить? — предложила Марина.
— И сколько это будет стоить? — спросил я. — У нас и так денег нет.
— А можно ли как-то использовать то, что мы уже разработали? — задумался Олег. — Ведь это действительно крутая система. Может, найдем другого клиента?
И тут меня осенило.
— Знаете что, — сказал я, и в моем голосе появились новые нотки — решимость и какой-то азарт, — а давайте сделаем из этого готовый продукт! Не под конкретного клиента, а для рынка в целом!
— И как ты себе это представляешь? — поинтересовался Олег. — Нам нужны серверы, техподдержка, маркетинг…
— Если у нас получится сделать нормальный прототип, мы сможем привлечь инвестиции, — не сдавался я. — А там уже и команду расширим, и маркетинг запустим.
— Звучит как очередная авантюра, — улыбнулась Марина. — Но, черт возьми, я в деле!
Считать было больно, но я посчитал. Из шести миллионов восьмисот тысяч контракта мы получили два миллиона сто. Работы сделали на пять с лишним. Разница — три миллиона — это девять месяцев жизни девяти человек, и вернуть их было неоткуда.
Мы выкрутились. Перекрыли дыру двумя срочными сайтами и одним договором на поддержку, я полгода не брал себе зарплату, но команде мы заплатили всем и до конца. Это, пожалуй, единственное, чем я в той истории горжусь. Зато этот опыт научил нас большему, чем все курсы по управлению проектами вместе взятые.
Друзья мои, запомните: когда вам предлагают большой контракт, будьте осторожны, как сапер на минном поле. Требуйте гарантий. Банковских гарантий, проверки платежеспособности — всего, чего только можно. Потому что когда придет время платить, некоторые заказчики могут развести руками и сказать: «Ой, а денежки-то тю-тю!»
Это как в казино — дом всегда в выигрыше. Только в нашем случае «дом» — это предусмотрительность и грамотно составленный контракт.
Но знаете что? Несмотря на все эти трудности, я благодарен Василию. Потому что благодаря ему мы создали действительно крутой продукт, который в будущем мог бы стать нашим билетом в мир больших денег. И кто знает, может быть, когда-нибудь Василий еще пожалеет, что не довел дело до конца.
Так что, ребята, будьте умнее нас. Не наступайте на те же грабли. А если наступите — что ж, добро пожаловать в клуб! У нас есть печеньки и истории, от которых волосы встают дыбом даже у лысых.
После Василия в наш договор въехали три новых пункта: предоплата за каждый этап, право остановить работы через десять дней просрочки и пеня. Ни один клиент за следующие два года из-за них от нас не ушёл. Все эти годы я боялся отпугнуть заказчика жёстким договором — а отпугивал, как выяснилось, только тех, кто и не собирался платить.
Правда, три миллиона дырой в бюджете научили нас ещё кое-чему: за крупными контрактами гоняться опасно, а жить на что-то надо. И мы полезли туда, где заказы мелкие, зато их много и они не кончаются никогда, — в интернет-магазины.

