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

