Менеджеры в Google

Сегодня немного приоткрою тему менеджмента – кто такие, как в менеджмент приходят, чем занимаются, и можно ли устроиться менеджером в Google окончив университет по специальности “Управление программистами в больших корпорациях”.

Введение

Любая корпорация устроена пирамидально. В нашем случае на самом верху пирамиды сидит Larry Page, под ним вице-президенты, под ними другие вице-президенты, под ними директора, потом менеджеры менеджеров, менеджеры и не менеджеры. Google всегда гордился своей “плоской структурой”, и новый слой менеджеров вводился крайне неохотно. Но времена меняются, корпорация растет, и если еще каких-то 15 лет назад менеджером всех был Ларри, то сейчас Ларри – это менеджер моего менеджера моего менеджера … (и так далее).

Вот примерно так выглядит высший слой пирамиды:

google_only

На этой картинке, кстати, мой “далекий начальник” – Sridhar Ramaswamy. Непонятно с какого бодуна ему тут нарисовали Google Earth & Maps, так как руководит он рекламами, что ясно написано на его Linkedin. Так что я бы не воспринимала эту картинку как истину в последней инстанции.

Впрочем, теория теорией, но наверняка многих волнуют более практические вопросы – чем собственно занимаются менеджеры, и как ими становятся. Я не знаю подробностей того, чем занимаются всякие там вице-президенты, поэтому расскажу про простого менеджера первого звена, который руководит командой инженеров. Понятно, что менеджер менеджеру рознь, поэтому расскажу только про тех менеджеров, про которых я хоть что-то знаю.

Ищем позицию

Предлагаю начать с изучения сайта google.com/jobs на предмет позиций для менеджеров:

job

Позиции есть. Но если просмотреть результаты, то их окажется не так уж много. Есть много позиций называющихся “Technical Program Manager”. Обратите внимание, что на многие из них требуется MBA. Это некоторый гибрид бизнес позиции и технической позиции. Если кратко, то это универсальные решатели проблем.

Если команды пишут плохой код, который часто ломается, то именно эти люди обычно занимаются тем, что уговаривают менеджеров что-то с этим сделать, помогают организовать большой fixit. Или вице-президент скажет, например, “Что-то у нас в <нашем большом проекте с десятками миллионов пользователей> мало инноваций”. И, вероятно, именно на плечи TPM ляжет придумать и организовать команды именно так, чтобы инноваций стало больше. Ну, или вице-президент думал, что их больше. Зачастую у TPM нет подчиненных. В общем, это не совсем те менеджеры, о которых тут идет речь.

Давайте посмотрим, что требуется от Software Engineering Manager:

manager_duty

Требования, прямо скажем, несколько охрененные. С одной стороны, очень желательно “6 лет релевантного опыта” (работы менеджером, я так понимаю), но с другой стороны “отличное знание С++, Java или Python”. Почему охрененные? Потому, что проработав 6 лет менеджером, навык программирования обычно очень сильно теряется. Я после пары недель отпуска довольно смутно помню, что такое программирование. Что бы с моим знанием стало через 6 лет менеджерства я вообще молчу. В общем, на мой взгляд, попасть на такую позицию как минимум нелегко – мало того, что позиций мало, так еще наверняка нужно быть одновременно сильным менеджером, сильным программистом, очень хорошо разбираться в технологиях, да еще и иметь “Background in web applications, data mining, information retrieval and multi-tiered systems”. В общем, mission impossible.

Единственный альтернативный вариант – вырасти до позиции менеджера внутри компании. С учетом того, что на сайте позиций менеджеров мало, то можно предположить, что большинство менеджеров именно так менеджерами и становятся. Как минимум это случай всех менеджеров, которых я знаю. Никому из них не выдали с первый день команду со словами “Вот тебе, руководи”. Они все начали с позиций инженеров, многие из них на позиции junior инженеров.

Чем занимается менеджер

И вот вчерашнему программисту, после очередного повышения, например, “выдают” команду – зачастую ту команду, в которой он еще вчера работал таким же программистом. Выдают, естественно, добровольно – если человек не хочет становиться менеджером, то он просто вежливот откажется, без проблем.

Что же меняется в списке обязанностей?

1) Теперь нужно общаться с другими менеджерами, расставлять приоритеты, договариваться на тему того, что сделать критично, что некритично. Распределять задачи между командой.

2) Смотреть, чтобы в команде не было “отстающих”. Если кто-то начинает филонить, то это задача менеджера убедить человека начать нормально работать. Для этого нужно стать обленившемуся программисту психоаналитиком, коучем, ментором и еще много кем. Потому, что если в команде менеджера есть лентяй, то это частично считается и ответственностью менеджера – плохо руководил. В общем, позиция незавидная.

3) Проводить с сотрудниками регулярные встречи на тему прогресса проектов, предоставлять им профессиональный коучинг.

4) Искать новых сотрудников в команду. Желательно лучших из лучших, так как успех менеджера во многом определяется тем, насколько хороша у него команда.

5) Разруливать конфликты в команде. Например, Маша из команды встречалась с Петей из той же команды. Потом Петю бросила, и ушла к Васе. Петя в обиженных чувствах, и отказывается работать с Машей и Васей. В общем, это задача менеджера такую ситуацию разрулить (ой, не завидую!). Равно как и просто натянутые отношения по той или иной причине.

6) Оценка работы сотрудников. Для этого менеджер собирает что-то вроде “пакета” на каждого сотрудника – что тот сделал за последние несколько месяцев. С таким “пакетом” на каждого своего сотрудника менеджер встречается с коллегами-менеджерами, и обсуждает кого как оценить. В итоге сотрудник получает довольно широкую оценку – “хорошо работал”, “хреново работал”, “ваще отлично работал” итп. Подготовка пакета занимает дофига времени, так как другие менеджеры должны согласиться с оценкой, а для этого нужны основания. И это именно задача менеджера их предоставить в достаточном количестве.

7) Висеть на саппорте. Если с проектом случается большая или маленькая ж* – то именно менеджер этот тот, кто должен отвечать на все вопросы почему, что да как. И потом написать репорт по случившемуся, план того, что нужно предпринять, чтобы такая проблема не повторилась и все такое.

8) Организовывать процессы. Надо пофиксить баги? Менеджер должен их собрать с одном месте, распределить по сложности и важности, писать сотрудникам напоминания раз в день “Не забывайте, что в эту неделю мы фиксим баги. Вот списочек”.

Ну и еще куча всяких таких задач. Совсем нетехнических. Все это занимает кучу времени, поэтому большинство инженеров, становясь менеджерами, перестают быть программистами per-se. Да, они участвуют в дискуссиях, на high level знают что происходит и почему, но писать код у них времени не остается.

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