понедельник, 11 мая 2015 г.

Майкрософт, часть 2. Карьерная лестница

Все, о чем я здесь пишу, является моим личным мнением, которое не является официальным мнением моего работодателя. Так, на всякий случай!

С момента начала работы в Майкрософте уже прошло 8 месяцев, а значит уже можно сравнить местную внутреннюю кухню с кухней отечественной.

Киевские софтверные «гиганты» и общая культура IT компаний очень сильно отличаются от американских. Прежде всего, это связано с культурными отличиями, средним возрастом сотрудников и размерами компаний. Средний возраст влияет на то, как ведут себя люди в офисе, как они одеваются, и о чем говорят на кухне или в курилке. Средний возраст сотрудников киевской IT компании существенно ниже, чем в американской или европейской. Этот показатель у нас тоже начинает расти, но разница все еще остается очень существенной. Прибавьте сюда наш менталитет и общительность, и получите довольно большую разницу в том, как проходит неформальное общение. В киевском офисе ржачь стоял с завидным постоянством, ничего подобного в Штатах я не видел. Хотя вру, в нью-йорской конторе такое было, прямо перед тем, как ту команду разогнали;)

Средний возраст и размер компаний очень сильно влияют на карьерный рост. В украинской компании, если тебе 25 и ты не синьер, то ты явно что-то делаешь не так. Это же приводит к определенным проблемам, когда тебе тридцать и у тебя есть амбиции расти в техническом плане. У нас (да, я все еще отношу себя к «нам») относительно легко продолжить расти в тим-лидах или ПМ-ах, но чисто техническая лестница оказывается довольно короткой. Есть позиция архитектора, но архитектор в 30 – это все же вынужденная мера отечественного аутсорса для выделения касты «продвинутых синьеров», их нельзя сравнивать с архитекторами МС-а или Гугла. Поверьте.

Уровни

Размер американских IT-компаний вынуждает их формализовать карьерную лестницу более строгим образом, что выражается в существенно большем числе «лычек» и уровней. При этом тебе дают возможность развиваться в качестве независимого исполнителя (т.н. IC – Individual Contributor), или в качестве менеджера. При этом определяющим является твой уровень (level), а не категория (исполнитель/менеджер). Уровень определяет твою приставку (Senior, Principal, Partner etc), вилку ЗП, бонусы и т.п.

Существует возможность переходить между этими категориями без потери/прибавки в оплате. Например, Brian Harry и Mark Russinovich перешли с позиций Technical Fellow (высшая техническая позиция в Майкрософт) на позиции CVP (Corporate Vice President) и CTO (Chief Technical Officer) Azure соответственно. Наверняка есть серьезные переходы и в обратную сторону, но на ум ничего не приходит.

Уровней over 9000. Все начинается с уровней 59-60, что соответствует тайтлу SDE (Software Developer Engineer), и идет вверх до 80 левела (!), что соответствует позиции Technical Fellow.

Каждому левелу соответствуют определенные ожидания. SDE обычно получают сразу после колледжа и подразумевается, что он/она будет требовать помощи со стороны коллег (т.е. будет не только помогать, но и немного вредить). SDE 2 означает автономность. Senior SDE – влияние на результаты работы команды. Principal SDE – влияние на уровне нескольких команд. Technical Fellow означает влияние на индустрию в целом.

Определение слова «влиять» обычно отдается на откуп менеджеру, что может сделать процесс карьерного роста достаточно сложным. В бытность наличия тестеров (об этом ниже), «влияние» могло проявляться в изобретении очередного тестового фреймворка или чего-то настолько же ценного.

Это может быть плохой новостью для тех, кто ожидает, что для получения принципала в МС-е достаточно плотно закрыть дверь в свой собственный кабинет (которых кстати, уже нет) и пилить код. Для карьерного роста здесь потребуются все те же soft skills, которые многие из нас так любят игнорировать.

Особенно может быть непросто в ситуации, когда команда состоит из синьеров и принципалов и есть пара SDE 2. Как в этом случае им влиять на группу более «старших» коллег, чтобы получить новую «лычку» - остается загадкой.

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

Троевластие

Еще год назад в МС-е было троевластие. Были разработчики (SDE – Software Developer Engineers), тестеры (SDET – Software Developer Engineer in Test) и ПМ-ы (PM – Program Managers). У каждой из этих «каст» были свои лиды или мендежеры (Development Lead/Manager, Test Lead/Manager, PM Lead/Manager). При этом команда состояла из нескольких девов, нескольких тестеров и ПМ-а, при этом общего менеджера у них не было!

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

ПМ-ы, как это не странно звучит для нашего уха, не являлись и не являются главными над разработчиками. Это такие же IC (individual contributor) со специфичным набором обязанностей. Это такая себе смесь бизнес-аналитика, технического писатели и product owner-а, который может также отвечать за согласование требований/графиков между смежными группами разработчиками.

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

Аджайл штуки применяются разными командами по-разному, начиная от достаточно канонического скрама, заканчивая менее демократическими подходами к управлению.

Интересно, что кодят тут все, и даже ПМ-ы обладают достаточно высокими техническими скиллами. Да и менеджеры все являются технарями и активно участвуют в архитектурных дискуссиях, а иногда и берутся за более грязную работу.

Общие впечатления

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

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

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

Общение с коллегами показало одну интересную особенность: стремление к новым должностям здесь есть, но вот хождение по головам практически отсутствует. Есть квоты продвижения на верх, но подковерные игры здесь, вроде бы, не приняты.

Level Up-ы

UPDATE: по просьбе Алексея, немного подробнее о продвижении по карьерной лестнице.

В Майкрософте “переоценка” уровня происходит раз в полгода. Здесь это называется Connect-ами. Основной коннект происходит в августе, а промежуточный – в феврале.

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

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

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

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

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

Ссылки

26 комментариев:

  1. >>плотно закрыть дверь в свой собственный кабинет (которых кстати, уже нет)

    Есть, и ещё как. Многие меняют отдел внутри МС в основном по причине наличия настоящего старого доброго кабинета в новой команде.

    ОтветитьУдалить
    Ответы
    1. Да, поменять отдел ради кабинета, чтобы через полгода и у этого отдела они пропали:) Или у нас есть непрекосновенные, типа винды, которых это может никогда не коснуться?

      Удалить
    2. Не такое это быстрое дело - переделать здание из офисного в опенспейсное. Наше переделывали примерно год. Так что минимум год есть в худшем случае. :) А вообще на кампусе столько офисных зданий, что переделка их займёт десятки лет, по-моему. Даже при очень благоприятной финансовой ситуации. Кроме того, attrition после перевода отдела в опенспейс, вроде довольно значительно увеличивается скачком, и менеджмент это видит. Кроме того, в некоторых отделах на высоком уровне начальство ненавидит опенспейсы. Кроме того, в связи с увольнениями и снижением темпов набора, один из поводов делать опенспейс сильно поугас. Ну и, в конце концов, большинство народу предпочитает менять команду внутри раз в 2-5 лет - как раз подходит, по моим прикидкам, на срок пока офисы не отберут на новом месте. :)

      Но в целом да - куда-нибудь ближе к платформе надо мигрировать за офисами. У меня коллега ушёл в xaml например - там и команда мегастабильная (по своему желанию никто не уходил ещё) и офисы всю дорогу были и обещают, что будут пока ад не замёрзнет. :) Это листовыми (продуктовым/сервисным) прикладным разработчикам можно помыкать, а корневых пацанов лучше не злить. :)

      Удалить
  2. >>хождение по головам практически отсутствует
    >>подковерные игры здесь, вроде бы, не приняты.

    Сильно зависит от отдела. Но, конечно, для IC уровней ниже Principal не принято - низко и среднеуровневые IC в политике не учавствуют, а просто пашут. :)

    ОтветитьУдалить
    Ответы
    1. Ну да, скопление такого количества людей дает о себе знать. Но я рад, что это политика начинает проявляться лишь с определенного уровня.

      Удалить
  3. Серёга, а можешь чуть детальней рассказать, как эти "левелы" зарабатываются? На сколько формален этот перевод, сколько человек принимает решение о переводе тебя на след уровень? Есть ли какие-то регулярные апрайзелы, и если да, то как часто? Ну и т.п.

    ОтветитьУдалить
    Ответы
    1. Сделаю отдельным подразделом. Но если кратко, то все, как обычно: на усмотрение менеджера.

      Удалить
    2. Добавил еще один раздел.

      Удалить
    3. Долго ждал нотификацию, о том, что ответишь на мой коммент, но так и не дождался - походу они не приходят (((. Решил ещё раз напомнить, а тут уже всё давным-давно готово. Спасибо за ответ!

      Удалить
  4. Так что, теперь тестеров (QA) вообще нет?

    ОтветитьУдалить
    Ответы
    1. Может быть и есть исключительные команды, в которых они еще есть, но в большинстве своем их больше нет.

      Теперь упор на автоматизацию и все такое.

      Удалить
    2. Разве можно просто взять и упразднить тестеров?! Тестер - это ж не обезьяна с мышкой - это целая должность и грамотный тестер вырабатывается годами!
      Кажется, я начинаю понимать, почему такой тухляк у МС в выходном качестве: все мнят себя разрабами, а тупо "потыкать везде мышкой" - некому. Далеко ли пойдёт МС, если будет так дебильно управляться??

      Удалить
  5. Привет, Сергей. Очень интересно пишешь, продолжай в том же духе! :)

    ОтветитьУдалить
    Ответы
    1. Благодарю! Есть "продолжай в том же духе!" :))))

      Удалить
  6. А если не сразу после университета - возмодно на SDE начального уровня попасть?

    ОтветитьУдалить
    Ответы
    1. Думаю, что можно. Но из-за океана мало шансов, что будут заморачиваться с SDE. Возможно, местные с парой лет опыта могут попасть на такую позицию.

      Удалить
    2. Ну я местный) Покопался на careers.microsoft.com, интересно, в разных командах на Software Engineer разные требования, где-то 1+, где-то 3, а где-то и 5

      Удалить
    3. Ну, SDE с 5 годами опыта - это странно. В некоторых вакансиях указывается уровень. Там точно был 59-60 и требования 5 лет опыта? Может быть это была SDE позиция, а у ровень был не указан (будет зависеть от уровня кандидата)?

      Удалить
    4. Да возможно. Bing, раньше набиравший программистов в Москве в основном всем предлагал SDE позиции.

      Удалить
  7. Надо же, а я думал, что левелов всего 59 :) Вероятно, так и было раньше - интересовался примерно в 2011-м году, а отзыв был несколькими годами раньше (в конторе, где я тогда работал, тоже уходили от тимов/пээмов и даже синьоров).

    ОтветитьУдалить
    Ответы
    1. Хейлсберг еще в конце девяностых пришел на позицию Technical Fellow, так что уровней было много еще 15-18 лет назад.

      Удалить
  8. Сергей, спасибо за очередной материал! Да, соглашусь ) ничто так не угнетает в нашем аутсорсе, как осознание того, что тебе уже 30, а в менеджеры тебя совсем не тянет ))))

    ОтветитьУдалить
  9. Кстати, на тему деталей всех этих левелапов подробно и хорошо пишет человек с говорящей фамилией Брехнер и именем Эрик. :)
    http://blogs.msdn.com/b/eric_brechner/archive/2010/06/01/level-up.aspx
    http://blogs.msdn.com/b/eric_brechner/archive/2015/06/01/solving-the-whole-problem.aspx

    ОтветитьУдалить
  10. * Я бы сказал, что Level зависит в основном не от того, на что готов кандидат, а от того, сколько ему нужно платить. Особенно на начальных Level. Поясню. Если кандидат имеет N offers в округе с максимальной зарплатой M, то Microsoft (и любая другая компания) попробует выдать такую же зарплату M, а дальше, учитывая то, что у каждого Level есть вилка (максимальная и минимальная ЗП), то на базе этого выдадут Level. Когда берут из России, в случае, что конкурентных оферов нет, то как-то оценивают на опыте, либо посто прикидывают за сколько кандидат может поехать.

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

    ОтветитьУдалить