Разместить здесь вашу рекламу


Почему я ушла из команды Google WebAssembly

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Я пришла в 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, но я никогда не буду прежней.

Надеюсь, вы никогда не столкнётесь с подобным, будете развиваться и строить карьеру своей мечты.
Источник: https://habr.com/ru/post/665916/


Интересные статьи

Интересные статьи

У нас было 2 проектных менеджера, 72 эксперта от производства, 33 высококлассных спеца из двух IT-команд, несколько десятков систем управления производством по всей стран...
Предлагаю вниманию публики Хабра перевод (с сокращениями) интервью Джима Келлера журналу «Fortune», опубликованное 18 мая 2020 года. Келлер — легендарная личность среди разработчиков ...
Добрый день, товарищи разработчики! Пару месяцев назад начал осваивать специализацию Fullstack-разработчика и, спустя какое-то время, как любой приличный разработчик, стал искать руководства п...
Я работаю с Реактом на протяжении почти 3 лет, использовал как Redux так и MobX и у меня к текущему моменту возник вопрос. Почему абсолютное большинство front-end разработчиков продолжают свято в...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...