Я пришла в Google в начале 2015 года, чтобы работать в команде V8, и была одним из первых авторов спецификации WebAssembly. В этой статье я частично расскажу историю того, что не так было с этим процессом и как он нанёс мне непоправимый урон. Надеюсь, эта история поможет людям распознавать токсическую культуру на рабочем месте, или позволит новым сотрудникам построить более удачную карьеру в Google. Любая история WebAssembly была бы подвержена искажениям из-за сложной судьбы проекта, и моя — не исключение.

На момент присоединения к команде V8 я уже несколько лет занималась поддержкой транспилятора, преобразующего приложения .NET в эффективный JavaScript. Проект начался в одно время с Emscripten — приложением, превратившимся в стандарт и ставшим источником вдохновения для создания WebAssembly. В то время мне удалось поработать с создателем asm.js Алоном Закаем и я многому у него научилась. Благодаря этому опыту я стала подходящим кандидатом для команды WebAssembly.

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

WebAssembly имеет огромный потенциал. Mozilla и Google упорно работали над тем, чтобы превратить asm.js в инструмент, позволяющий запускать любое приложение в вебе, и преодолели на этом пути многие препятствия. Однако стало очевидно, что некоторые проблемы устранить слишком сложно, поэтому начался процесс разработки WebAssembly: он должен был позаимствовать сильные стороны asm.js и устранить его слабые места, а также создать спецификацию, которую легко реализовать в существующих средах выполнения JavaScript, используя их генерацию кода, отладку и прочую инфраструктуру.

Участие в процессе разработки спецификации в качестве одного из первых контрибьюторов было захватывающим занятием. Хотя у меня был опыт работы с веб-платформой, создание спецификации ставило перед нами уникальные задачи, и весь комитет должен был одновременно работать проект-менеджерами, представителями проекта и программистами. Такие люди, как Дж. Ф. Бастиен, Люк Вагнер, Алон Закай, Бен Титцер и бесчисленное множество других упорно работали над созданием фундамента того, что будет использоваться миллиардами людей.

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

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

У нас не было проект-менеджера. Мы знали, что он нам нужен, и пытались его заполучить, но в лучшем случае у нас на короткое время появлялся менеджер-доброволец по совместительству, который потом уходил на другие проекты. Из-за этого сложные социальные и организационные проблемы приходилось решать перерабатывающим инженерам, имеющим в их решении мало опыта. Я уверена, что в конечном итоге выпуск MVP спецификации был отложен, качество снизилось, а контрибьюторы разбежались. Это неуникальная история для open source, но за ней всё равно печально наблюдать.

Ещё хуже то, что наши техлиды перерабатывали и им не хватало сил на создание изменений. В любой команде специалисты-руководители должны преуспевать и получать поддержку от вышестоящего руководства, чтобы они могли делать то, что необходимо. У нашего руководства не было такой поддержки. Всей команде V8 не повезло: ей приходилось отчитываться перед руководителем организации Chrome — беззаботным человеком, который по-прежнему имеет один из самых низких рейтингов популярности во всей компании. За свою карьеру я много раз видела, как менеджеры плачут, и один из таких случаев был в этом коллективе. Менеджер никогда не должен быть вынужден спрашивать, не трус ли он, но такое тут случалось.

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

В начале поста я сделала абсурдное заявление о том, что WebAssembly вызвал повреждение моего мозга. К сожалению, это так. Два года работы в Google я находилась в постоянном стрессе, выполняла роль неофициального проект-менеджера, помогая проводить совещания и принимать решения по документам, имея дело с иногда враждебными коллегами. К счастью, другие члены команды тоже упорно работали над устранением тех же проблем, но это всё равно нанесло урон. Постепенно я медленно теряла свою промежуточную и кратковременную память, дойдя до того, что иногда не могла найти машину в гараже или забывала целые беседы. Мне приходилось вести очень подробные записи. В конечном итоге мои врачи прописали мне вынужденный отпуск по состоянию здоровья и настоятельно рекомендовали увольняться; я последовала этому совету, но недостаточно быстро.

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

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

Каждое токсичное рабочее окружение, в котором я находилась, обычно было результатом плохого руководства и на этом месте всё было так же. Здесь я тоже объяснила руководителю из Google, что проект WebAssembly страдает без поддержки от его организации и что люди разбегаются из проекта. Он согласился с моей оценкой, а затем сказал, что ничего не изменится. В конечном итоге, команда начала менять всё сама.

Мой срок работы в Google завершился тихо и без драм. Я вернулась из своего вынужденного отпуска по болезни и обнаружила, что команда WebAssembly, по сути, распущена — многие уволились, другие разбежались по другим частям компании. Мой новый менеджер сообщил, что теперь я будут работать над неизвестной мне частью Chrome с другими людьми. Я отдала своё заявление и поучаствовала в коротком собеседовании в связи с увольнением, и последний день моей работы был примерно за одну неделю до моей следующей даты вестинга прав на акции компании (не повезло). Пару следующих лет я не работала, мы с врачами трудились над восстановлением моего здоровья и время от времени я писала код. Счастлива сообщить, что уже частично восстановилась и мне платят за работу над open source, но я никогда не буду прежней.

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

Комментарии (9)


  1. IAMBIRD
    16.05.2022 17:00

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

    Это последствия стимуляторов или её реально до инсульта довели?


    1. Vladimirsencov
      17.05.2022 13:31
      +3

      Это скорее проблема человека - перфекциониста. Как бы бардак и безответственность - это обычное состояние проекта. Редко когда по другому бывает.


    1. Green2
      17.05.2022 13:51
      +2

      Присоединяюсь к вопросу. Знаю много людей, которые работали в стрессе, но при этом не теряли память.

      Но после препаратов, сколько угодно людей теряют память.

      Обычный пример из жизни, выпили алкоголя, наутро не помнят, что было вечером, частичная амнезия


    1. botka4aet
      17.05.2022 13:53
      +4

      Два года работы в Google я находилась в постоянном стрессе, выполняла роль неофициального проект-менеджера, помогая проводить совещания и принимать решения по документам, имея дело с иногда враждебными коллегами.

      Человек взвалил на себя то, за что ему не платили. И чему его не обучали.

      В итоге выгорел.

      Кто виноват? Очевидно, что он сам.

      Зачем лезть туда, куда тебя не просят? Зачем общаться с "враждебными" коллегами. А скорее просто лезть в чужую работу и советовать им "как сделать лучше"

      Известная поговорка - "Инициатива имеет инициатора"



  1. orcy
    17.05.2022 08:14

    Интересно, WebAssembly получается в данный момент забросили?


    1. domix32
      17.05.2022 12:32

      Команда внутри гугла исчезла, но OpenSource так и остаётся. Спека вроде уже довольно продолжительное время пишется как RFC-процесс, сейчас разве что это всё несколько замедлится, что на мой взгляд даже хорошо. А так у V8 чуваков уже относительно продолжительное время есть проблема, что они не очень понимают, что они делают.


      1. orcy
        17.05.2022 14:34

        Ага, понятно, спасибо. Я так понимаю часть проекта, а именно среда выполнения встраивается в Chromium, собственно вопрос будет ли она развиваться.


        1. domix32
          17.05.2022 21:04

          Думаю найдутся контрибуторы среди прочих V8 разрабов.