еще нужен был алгоритм, который мог бы подтвердить, что популярные наименования есть на складе, – и подумать, как перенаправить покупателей на менее популярные фильмы, чтобы те захотели их заказать.
Были еще сотни задач, требовавшие решения, и мы знали, что проведем месяцы, решая их.
Так что после тоста мы все смяли наши стаканчики, выбросили их в корзину и вернулись к работе.
Около шести кто-то заказал пиццу. Я ушел около десяти. Программисты, наверное, оставались в офисе всю ночь, работая для того, чтобы траффик на следующий день не обрушил серверы. И конечно, сайт не отключался на ночь, – в Интернете вы не можете просто включить неоновую вывеску «Не работает» и вернуться утром. Все мы тогда понимали, что работа с Netflix переходит на совершенно новый этап.
Тем вечером я снова сидел за столом моей незаконченной кухни. Дети ушли спать, Лоррейн тоже. Я все еще нервничал, переполненный адреналином сегодняшнего дня. Когда я в таком состоянии, пытаться заснуть бесполезно. Так что я достал блокнот и начал записывать то, что нам нужно было сделать.
• Избыточность сайта – как нам восстанавливаться после сбоев, когда сервер выходит из строя?
• Заказать упаковочные листы получше – клейкие этикетки отрываются в принтере.
• Расширить ассортимент? Какое количество будет достаточным? Какое – чрезмерным?
• Нужны метрики! Взять у Суреша отчет о сегодняшних заказах по источнику и названию.
• Что еще?
Думая о возможных решениях, я лениво выкладывал в ряд деревянные плашки, которые мы оставили на столе. Эти куски красного дерева сто двадцать лет назад использовались в качестве пола, и мы с Лоррейн сохранили некоторые из них, думая переделать в полки. Я поднял один, ощутил его вес, шероховатость деревянной поверхности. Я пытался представить его на стене за собой, которая была покрыта образцами краски для будущего ремонта. Я почти мог это видеть.
Мы все еще доделывали кухню, несмотря на то что уже готовили на ней. Прямо как Netflix, подумал я, – мы использовали его, но он еще не закончен. По правде говоря, возможно, он никогда не будет закончен. Каждый день нам нужно было работать, чтобы поддерживать его: чтобы вода продолжала течь, шкафы заполнялись, чтобы горелки оставались чистыми, а счета за газ были оплачены.
Но сейчас он уже был. Он вышел в мир.
Годы назад в походе, когда я шел по снежной равнине у подножья горы, то почувствовал странное статическое гудение вокруг головы. Мои волосы встали дыбом, а вокруг шлема появилось ультрафиолетовое сияние. Это были огни святого Эльма[40] – положительно заряженное электромагнитное поле, которое разряжалось в землю.
Это была молния – за секунду до того, как ударить.
Так же я ощущал Netflix той весной – голубой ореол, гудящий вокруг наших голов. Родившись четырнадцатого апреля, Netflix больше не был просто потенциальной энергией. Это происходило прямо на наших глазах: положительные заряды встречались с отрицательными. Это был удар молнии.
И теперь нам надо было сообразить, как с ней справиться.
Глава 9. День из жизни после запуска
(Лето 1998: восемь недель после запуска)
5 утра.
«Твоя очередь».
После этого заявления Лоррейн отвернулась и накрыла голову подушкой.
Прошло два месяца после старта. Я лежал в темноте, косясь на часы и ожидая нападения. Началось: откуда-то из глубины коридора донесся шорох, потом несколько мягких шлепков. Хантер приветствовал утро, швыряя игрушечных животных через прутья кровати. Скоро он просунет ногу в решетку, схватится за поручень и выскользнет на посадочную площадку из плюшевых тигров и слонов.
Кому нужен будильник?
При слабом свете я оделся и когда вышел в холл, Хантер уже встретил меня там, в его руке болталась любимая зебра, вися на грязном облезлом ухе. «В чем дело, парень?» – спросил его я, пока он сонно шел за мной вниз по лестнице. На кухне Хантер поднял руки и позволил усадить себя в его стульчик. Я привычно смешал хлопья, бананы и молоко в чашке и поставил перед ним. Он засунул руки в чашку и начал есть, как раз, когда кофеварка три раза пропищала и выпустила последние капли в емкость.
Идеальный тайминг.
Я сажусь напротив Хантера и открываю ноутбук. Утренние сводки уже в моем почтовом ящике.
За недели, прошедшие со дня запуска, мы научились извлекать все преимущества из данных, которые можем собрать в магазине. Наш интернет-сайт не упускает ничего.
Каждую ночь, как раз после полуночи, серверы Netflix, – которых к этому моменту стало двадцать четыре, – начинают систематически перемалывать дела предыдущего рабочего дня, чтобы приготовиться к следующему. Они подводят баланс, корректируют ассортимент и сверяют платежи. Они прочитывают каждую транзакцию предыдущего дня с производственных серверов и добавляют их в лог[41], создавая хранилище данных. В отличие от переполненного склада с DVD-дисками, в хранилище данных нет ничего физического. Все оно умещается на один жесткий диск.
Каждый клиент. Каждый заказ. Каждая отправка DVD. Наше хранилище данных знает, где живет каждый заказчик, когда и как он к нам присоединился, сколько раз у нас побывал и как долго держал наши диски. Оно знает точно, в какое время кто-то посетил сайт, откуда он пришел и что он делал. Оно знает, какие фильмы он просмотрел и какие отложил для заказа. Оно знает, когда он провел оплату, – а если не провел, то когда отказался от нее. Оно знает, кто пришел в первый раз, а кто является постоянным покупателем.
Один жесткий диск знает почти все.
С таким количеством данных для осмысления легко переполниться. Вот для чего нужны сводки. Это подведенные итоги: короткие, четкие, которые легко переварить. Топ-10 фильмов проката, количество новых заказчиков за последние двадцать четыре часа, количество отправленных посылок, среди которых есть прокат, а есть продажи.
Эти утренние сводки, – которые я просматриваю одним глазом, другим натренировано наблюдаю за пустеющей чашкой Хантера, – содержат хорошие и плохие новости. Хорошие в левой колонке: продажи на 50 % выше, чем в мае, нашем первом месяце в бизнесе. Наша выручка за июнь только что перевалила за девяносто четыре тысячи долларов. Если двенадцать месяцев пройдут так же, мы дойдем до одного из волшебных чисел стартапа: миллион долларов годового дохода. Я делаю себе заметку: рассказать об этом на нашем совещании в конце недели.
Плохая новость в колонке рядом: прибыль от проката. Я вздрагиваю, когда вижу, что в ней все еще четыре цифры. И что первая из них – единица.