Своё дело: от инженера до технического директора

2013-09-09

Ян Лэнгворт (Ian Langworth) начал свою карьеру как автор издательства O’Reilly и разработчик ПО в Google. Сейчас он является соучредителем и техническим директором в Artillery  компании, которая превращает браузер в полноценную игровую консоль. 

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

 

Идти вперёд и верить

Когда Google предложил мне работу в 2006 г., только дурак бы отказался. Google  одно из лучших мест для разработчика; вы работаете с умнейшими людьми планеты и имеете в распоряжении одни из самых мощных инструментов в мире. А к хорошему быстро привыкаешь.

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

С другой стороны, становится тяжело идти вперёд и развиваться творчески. Уход из Google и присоединение к команде Redbeacon было одним из лучших решений в моей жизни. Там я стал первым штатным инженером и помогал выстроить команду и план развития продукта. Когда вы работаете в крупной корпорации, особенно в качестве инженера ПО, очень легко оторваться от общего направления деятельности организации. Ваша основная обязанность – поставка высококачественного года. Но когда вы присоединяетесь к команде из пяти человек, вы тут же сталкиваетесь со всеми проблемами, стоящими перед компанией, и оказываетесь в первых рядах людей, принимающих решения. Поэтому тем, кто хочет стать руководителем, я бы посоветовал попробовать поработать в молодой начинающей команде.

Сейчас, в качестве технического директора и учредителя Artillery, я разрываюсь между бесконечной свободой и бесконечной ответственностью. Artillery ставит перед собой поистине амбициозные цели (превращение браузера в качественную игровую консоль). Это задевает самые тонкие творческие струны  моей инженерной души  это шанс пройти свой собственный путь. Между тем, мы все прекрасно осознаём, что если наша технология будет работать, рано или поздно мы столкнемся с широкой аудиторией,  её давлением и ожиданиями.

Для себя я однажды решил, что необходимо верить в то, что ты создаёшь. Переключение с позиции «Я верю, что мы сможем» на позицию «Мы сделаем это!» было непростым, но я уверен, что именно это приведёт нас к большему. Многие сочтут это самоуверенностью, я считаю это верой.

 

Ошибки в общении

Несколько месяцев назад я и другие соучредители Artillery уже порядком друг друга достали. Я-то думал, что в такой маленькой команде построить коммуникации  сущий пустяк. Как же я ошибался!

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

Поэтому мы решили структурировать время, которое проводили вместе. Мы выделили час на то, чтобы собраться в одном помещении и чётко записать, что же такое происходит. На первом таком собрании мы записывали и протоколировали все наши решения. Менее чем за 60 минут мы решили почти все накопившиеся проблемы, и почти все они были следствием плохо налаженных связей внутри команды (вот уж сюрприз!). Это собрание стало первым в череде последующих еженедельных собраний. Они проходят в том же формате, а Google-документ с протоколами собрания продолжает пополняться проблемами и решениями. Такие собрания полностью перевернули наше общение, и с тех пор у нас не возникало серьезных недопониманий.

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

Мы также договорились и о других правилах таких собраний. Во-первых, приватность. Она позволяет нам быть открытыми и честными друг с другом. Она позволяет нам оставить за пределами комнаты наши эго. Именно благодаря ей мы можем позволить себе сказать: «Ух ты, а я и не думал, что можно сделать так!»

Также важно: проблема с перепиской по электронной почте. Электронная почта убивает почти все эмоции, а значит, часто ведёт к недопониманию. Очень просто неправильно интерпретировать деловое письмо. Личное общение, в котором будут сказаны те же слова, обычно гораздо информативней: вы видите мимику, интонацию, жесты собеседника.

Я в письмах стараюсь выразить и свой эмоциональный настрой.  Можно, например, прямо в теме письма указать: [в отличном настроении].

 

Нелегко построить утопию

Когда-то давно мы много говорили о том, что мы ждём от Artillery. Мы говорили о поощрении работников, о видах бонусов, которые сделали бы работу у нас комфортной. Мы хотели построить что-то интересное, к чему хочется стремиться, к чему потянутся таланты.

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

Вначале я думал, что безлимитное количество отгулов  отличная идея. В конце концов, это было реализовано в Netflix, и хорошо у них работало. Но, как оказалось, у нас это несколько угнетало работников, поскольку хороший работник будет волноваться, не слишком ли много выходных он берёт, и не будет брать их вовсе. В конце концов мы остановились на фиксированном количестве оплачиваемых отгулов  таком, чтобы их количество не вызывало беспокойство или обид за «бездарно прожитую жизнь».

Хорошей идеей был и выделенный бюджет на собственное рабочее место. По крайней мере, до некоторых пор. Ну вот как можно было предположить, что работник предпочтёт потратить 20$ на геймерский коврик для мыши от Razer? (нет, коврик на самом деле очень классный, но это уже к теме не относится). Внезапно наши работники предпочли использовать на работе свои собственные ноутбуки и тратили бюджетные деньги на дорогую периферию. Другие вдруг собирали себе системы в стиле «кошмар айтишника», требующие постоянного обслуживания.

Что мы решили сделать? Мы решили объяснить саму суть бонуса. Когда дело подходило к покупке оборудования, её целью было не удовлетворение каждого каприза. Цель покупки  обеспечить удобное рабочее место и убедиться, что никто не работает за старой скрипящей машиной. Когда все видят истинное положение вещей за формальной завесой, становится проще принимать взвешенные решения. 

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

 

Прочь из зоны комфорта

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

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

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

Инженеру достаточно сложно мыслить дедлайнами, наступают через многие недели от текущего дня. Инвесторы же просят вас описать следующие год или два вашей жизни, а потом спрашивают вас о каждом вашем шаге. «Да ладно?, — как-то воскликнул один из них, — Вы что, хотите создать игру ХХХ? То, что делают EA за 50 миллионов долларов, вы готовы сделать за миллион? Как вы собираетесь запихнуть 2 ГБ ресурсов в браузер? И вообще, неужели это будет интересно?»

К счастью, годы опыта в разработке снабдили меня ценным инструментом: интуицией. Глубоко внутри я верил: то, чем мы хотим заниматься, — очень ценное дело. Я был уверен, что браузеры уже готовы к этому, и знал, что мы сможем создавать потрясающие игры. А раз я убедил себя в том, что это возможно, гораздо проще убедить в этом же других.

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

Пришлось подойти нестандартно. Я тогда сотрудничал с художником, который разрабатывал некоторые поля для игры, и как раз выслал мне макет полей для заполнения в окружении буйной зеленой растительности. Я распечатал картинку в размере 85х55 см и повесил её на стену. С этих пор, кто бы ни подходил ко мне с вопросом «А что делать дальше?», я отвечал, показывая рукой на плакат: «Да что хочешь, но чтобы было похоже на это».

 

Выбирайте правильную технологию

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

В Artillery мы знали, что будем писать на JavaScript, предусмотрев и альтернативные языки. Мы остановились на CoffeeScript, поскольку уже использовали его ранее, он хорошо работал, и нам нравились его решения. Нам повезло, что мы не были связаны одним конкретным языком, на котором нам приходилось бы писать. К тому же CoffeeScript казался таким лаконичным, что даже если бы мы изменили решение, мы могли бы скомпилировать его в JavaScript и редактировать его там. Расходы были низкими, план бэкапа вполне экономичным.

С серверной стороны решение было не таким простым. Node.js был самым очевидным выбором, поэтому в теории мы могли с легкостью переносить код между клиентом и сервером. Но Node.js в то время был слишком молодым, а его экосистема — незрелой. Его реестр не позволял оценить качество и стабильность, и тогда там было множество пакетов схожего функционала, но находящихся в разных стадиях разработки.

Это немного нас приостановило. Но вскоре мы увидели, как быстро совершенствуется Node.js. Node.js основан на V8, на закулисье Google Chrome. А уж Google я доверяю беспрекословно в вопросах среды исполнения. Так что выбор был сделан. Новые релизы кода выходили совевременно, обновления модулей происходили часто благодаря интеграции с GitHub.

 

Копите ресурсы

Я всегда занимаюсь дополнительным проектом, будь то игра, веб-приложение или разработка инструмента. Это удовлетворяет мою потребность в изучении чего-либо нового. Но когда Artillery стала реальностью, и хобби превратилось в работу, что мне оставалось делать с моим свободным временем?

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

Только потом до меня дошло. Всю ту тупиковую неделю я провёл, помогая создавать онлайн-магазин своему другу. «Да это недолго, — говорил я ему, — Django, PayPal и корзина покупок, взболтать, но не смешивать». Это пустяковое дело заняло у меня два дня, и стоило мне нулевой продуктивности на целую неделю.

Таким хардверным способом я выяснил, что умственная перезарядка просто необходима. Затрата мозговых усилий на другие проекты значительно снижала мою продуктивность. Как главный технический директор я был обязан оставаться на вершине, поэтому с какой стати мне нужно проводить ночи и выходные за сторонними проектами? Именно они подтачивали мои возможности как лидера, и это было нечестно по отношению к моим коллегам.

Я бросил все сторонние проекты, и моя энергия и продуктивность мгновенно возросли. Надо сказать, по-прежнему ещё были дни, когда я не мог починить баг, даже если очень хотел. Кто-то наконец объяснил мне, что продуктивность имеет волновую структуру, и поэтому такие спады — это нормально. Стоит это принять как данность, и становится легче жить: вы знаете, что вы сейчас в периоде упадка, и просто говорите об этом людям, которые полагаются на вас. Это гораздо проще, чем паниковать по поводу своей непродуктивности и срывов сроков.

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

 

Доверяйте своей интуиции

Прислушивайтесь к своему шестому чувству. Если вы точно знаете, как что-то работает, но не можете объяснить почему, — приступайте к делу. Обратное тоже верно: если чувствуете, что что-то не так, будь то найм сотрудников, организация, переговоры, принятие решений, прислушайтесь к своему внутреннему голосу. Работа техническим директором требует полной отдачи — и умственной, и эмоциональной. Но если бы передо мной снова стоял выбор — я бы снова выбрал именно эту должность. 

Перевод: Люся Ширшова. По материалам статьи Ian Langworth


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

Дэйв Мэтвин: jQuery создают личности

Работа в лучших компаниях мира. Blizzard Entertainment

Уроки от Pixar: Зачем ПО-разработчикам быть сценаристами?