Про сильную матрицу и атмосферу в команде разработки

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



Оглавление


  1. Давайте знакомиться
  2. Про сильную матрицу и атмосферу
  3. Про развитие разработчиков и устройство команд
  4. Про найм. Рубрика «Сханти Бориса»
  5. Про распределёнку, удалёнку и опенспейс

Сегодня с нами беседовали:

Алексей Штукатуров — Development Manager в одном из новых продуктов ABBYY.
Елизавета Швец — лидер направления IT brand в Додо.
Борис Гулай — senior-developer в Додо.


Лиза: Лёша, привет! Расскажи, пожалуйста, как ты попал в компанию ABBYY, как давно там работаешь?

Алексей: Всем привет! Я попал в компанию в 2008 году, будучи студентом четвёртого курса. И, по сути, человеком, которым сейчас являюсь, стал благодаря этой компании. Проработал примерно 7 лет, потом ушёл в свой стартап, но сейчас вернулся обратно, потому что в ABBYY классно.

Лиза: Расскажи немного про свой путь: кем ты начинал и кем ушёл в стартап?

Алексей: Я пришёл в ABBYY стажёром, попал в группу разработки под Linux. Мы занимались портированием движка распознавания. Довольно весёлое начало карьеры, сразу сталкиваешься с очень большим количество граблей, проходишься по ним и закаляешься.

Потом меня позвали в тимлиды в Lingvo. Я выпустил одну полноценную десктопную версию, потом ещё одну версию LingvoLive (веб-сервис и нишевая соцсеть). И после этого с позиции тимлида ушёл сооснователем в стартап. А сейчас вернулся в ABBYY и руковожу разработкой в одном из новых продуктов.

Про сильную матрицу и атмосферу


Лиза: Насколько у вас просто с общением в компании? Чтобы зайти к CTO или руководителю, надо записываться?

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

Лиза: Ты работал и в крупной компании, и был в стартапе, где, очевидно, никакой иерархии нет, все друг другу братья. Скажи с высоты своего опыта: ABBYY ближе к красному или бирюзе?

Алексей: На мой взгляд, в ABBYY сохраняется уникальная атмосфера. Это действительно большая компания, у нас есть много разработчиков и есть хорошая иерархия. При этом нет никаких коммуникационных барьеров. Да, может, стажёры и не ходят к CTO, но им просто и не надо. Абсолютно спокойные взаимоотношения между всеми уровнями руководителей и разработчиков по линейке разработки. С этой точки зрения атмосфера не сильно отличается от стартапа. Дистанция от одного до другого не очень большая. С учётом того, что в ABBYY получается совмещать простоту коммуникации с эффективностью управления – это вообще фантастика, на мой взгляд.

Лиза: Получается, что у вас жёсткая иерархия: есть руководители, есть сотрудники? Нет, какого-то «мы не руководители, мы лидеры мнений», people-managers?

Борис: Дело в том, что у нас в Додо достаточно плоская структура, формально мой руководитель – это CTO. При этом есть leadership-team, куда входит product owner, который отвечает за продукт, а также технический лидер.

Технический лидер в Додо – человек, который не имеет непосредственных менеджерских функций, но следит за качеством продукта, помогает, обучает, советует; человек, который отвечает за людей, за развитие, атмосферу, процессы. Он — глаза и руки CTO, потому что при плоской структуре каждый из сотни разработчиков не может лично прийти к CTO.

А у вас за людей, развитие и технику отвечают одни и те же люди, или это два направления?

Алексей: У нас своеобразная структура, её можно назвать сильной матрицей. Так называются системы управления проектами, когда у вас довольно жёсткая иерархия линейного менеджмента, а проектные и продуктовые команды собираются уже из функциональных ветвей. Сила такой системы в том, что все команды собираются на достаточно продолжительное время. По сути один продукт – это одна продуктовая команда.

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

Лиза: А как у вас это происходит, есть какие-то one-to-one и какие техники вы используете?

Алексей: Стандартный набор для линейного руководства – это регулярный one-to-one. Каждые две недели я встречаюсь со своими подчинёнными, примерно раз в месяц стараюсь встречаться через одного, а раз в две недели встречаюсь со своим руководителем. Это простой способ снятия текущей ситуации в команде. Он даёт понимание, что происходит и что мы можем сделать для того, чтобы как-то реагировать на проблемы или наоборот поощрять достижения. Ещё есть командные ретроспективы. Стараемся раз-два в месяц организовываться небольшими группами, предметно обсуждать, что как идёт, какие у нас есть проблемы и выбирать пути их решения.

Про развитие разработчиков и устройство команд


Лиза: А есть какой-нибудь development-план, ИПР, какая-то штука по развитию человека по софтам, по хардам?

Алексей: Для каждого человека это определяет его линейный руководитель. А так у нас есть две составляющие. Одна – это глобальная система развития разработчиков в ABBYY. Схема такая: у разработчиков есть ранги и понятные требования, понятные способы оценки для перехода и повышения этого ранга, для оценки соответствия человека определённому уровню и возможностей финансового роста в компании. Как классические грейды.

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

Лиза: А сколько у вас человек в разработке всего и в твоей команде в частности?

Алексей: В моей команде 14 человек, я 15-ый. И у меня две группы разработки. Обычно в группах разработки от 3 до 7-10 человек. А всего разработчиков в компании несколько сотен.

Лиза: Практически как у нас. У нас примерно 120 разработчиков, а всего больше 300 человек в команде. Можешь ли ты рассказать, по каким критериям вы смотрите соответствие человека грейдам, есть какие-то технические параметры, соответствие культурным ценностям или софты человека?

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

Лиза: Мы обратили внимание, что все компании проходят примерно одинаковый путь. Когда компания поменьше, все приходят и говорят: у нас полнейший agile, делаем, что хотим. Чем взрослее компания, тем всё это сложнее становится. Без структуры уже невозможно эффективно делать разработку и управлять процессами.

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

Лиза: А с 2008 года это как-то поменялось?

Алексей: С 2008 года эта схема функционирует.

Борис: Что поменялось за твою бытность?

Алексей: За мою бытность поменялась схема организации отделов. Когда я приходил и уходил, была система, что есть технологический департамент, в котором собран весь R&D. Под R&D понимается именно исследования в сфере OCR, Capture, NLP. И были продуктовые департаменты, внутри которых уже непосредственно делались продукты. Каждый продуктовый департамент был независимым подразделением со своим директором продукта, который отвечал за всё.

У директора продукта были руководитель разработки и руководитель ОТК (отдел технического контроля). Эти позиции полностью дублировались во всех продуктовых департаментах.
Когда я снова пришёл в ABBYY, эта структура поменялась. Вся разработка – это единый механизм и деление на продукты идёт по матричной схеме. Это единственное изменение, которое произошло с организационной точки зрения.

Про найм. Рубрика «Сханти Бориса»


Лиза: Сейчас резко поменяю тему, не могу удержаться и не спросить, как у вас выглядит найм? Какие этапы проходят соискатели? Недавно Борис опубликовал статью о собеседовании в Додо с описанием этапов, вдруг кому пригодится, кто захочет к нам прийти. А как это устроено у вас?

Алексей: Если оставить за рамками первичный HR-скрининг и созвон, то у нас соискатель проходит три технических интервью. Это интервью с руководителем, который набирает команду, затем с руководителем разработки и с CTO. В большинстве случаев первые два этапа объединяются в один, потому что тимлид, к которому в команду идёт человек, и руководитель разработки направления (мы его называем Development Manager) обычно проводят собеседование совместно. Таким образом количество этапов сокращается до двух.

Когда я повторно пришёл в ABBYY, у меня была проблема с наймом фронтенд-разработчиков. Потому что с момента, когда HR связывался с кандидатом, до момента интервью с CTO, проходил месяц. А для фронтенд-найма, из-за большого дефицита кадров, это было просто недопустимо. Толковые фронтендеры, выйдя на рынок, находят себе работу буквально за неделю.

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

Борис: Какие софт скиллы у меня должны быть, чтобы попасть в ABBYY? Или не должны быть?

Лиза: У нас есть рубрика «Сханти Бориса». Предлагаю поиграть и задать ему вопрос, как на реальном интервью, чтобы проверить, подходит ли Борис по софтам для ABBYY.

Алексей: Давайте попробуем. Скипнем стандартное приветствие и сразу перейдём к делу. Борис, что для тебя в работе главное?

Борис: Чтобы вставая утром на работу, ты делал это с радостью, а не с отвращением.

Алексей: Что тебе для этого нужно? Я поясню. Вставать на работу с радостью можно, работая и охранником. А что именно тебе приносит радость на работе?

Борис: Меня физический труд в общем-то манит. Если бы там платили сравнимо с разработкой, я, может, пошёл бы куда-нибудь сантехником, я неплохо умею, помогаю родителям с этим. Но касательно IT – сильная команда, в которой можно расти, интересные задачи и поменьше политики.

Алексей: А куда бы ты хотел расти?

Борис: Я бы хотел расти в технике, потому что в IT, чтобы оставаться на том уровне, ты должен быть в сильной команде. Технологии меняются, особенно во фронте. А я фулл-стек. Во фронтенд кто-то каждый день приносит новый фреймворк. И хотел бы расти в менеджменте людей: хочу научиться с самыми противными и неприятными людьми находить общий язык.

Алексей: Ты говоришь, что тебе было бы интересно расти в технической части и что технологии стремительно меняются, особенно во фронте. А как ты вообще относишься к этим нововведениям во фронтенде?

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

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

Алексей: Убедить, что новый фреймворк лучше старого – это несложно. Внедрение нового фреймворка – это технологический риск, скорее всего, он, решая одни проблемы, с большой вероятностью вызывает другие. Вопрос в том, на что бы ты стал смотреть при выборе нового фреймворка? Как ты примешь решение, что это годно для запуска в продакшн, а это пусть ещё подождет полгодика?

Борис: Исходя из того, что сам фреймворк нам нужен, он что-то полезное приносит, я бы посмотрел на звёздочки на Гитхабе: сколько народу скачало, какие есть баги, что о нём пишут на StackOverflow, все пытаются какие-то проблемы решить или спрашивают про функциональность? В целом, по отзывам можно составить впечатление и понять, что с этим делать.

У нас была похожая история, я рассказывал на FrontendConf про Electron. Мы его выбрали достаточно быстро, без достаточного исследования, а потом оказалось, что несмотря на кучу звёздочек и скачиваний, у него миллион проблем и тысяча багов. Реальный кейс, когда количество звёздочек и скачиваний не коррелирует с качеством кода.

Алексей: Ревью кода: на что ты смотришь обычно?

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

Алексей: Расскажи про свои Definition of Done.

Борис: Если говорить про мои лично, то обязательно: код компилируется, тесты проходят. Это частая история, что код компилится, а тесты забыли поправить. И тогда я прогоняю тесты руками. В принципе такие Definition of Done и у команды – в плане того, что коммитить в общей ветке или выкладывать какие-то публично. Плюс у нас в Додо есть такое: когда задача завершена, она раскатана на тестовых пиццериях и работает.
Алексей: А при этом соответствие макетам проверяете?

Борис: До коммита в общей ветке приходит дизайнер и делает design-review.

Алексей: Что тебе не нравится на текущем месте работы, почему ты уходишь?

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

Сейчас у нас меняется структура компании, мы растём, становимся более иерархичными. Эта история про leadership-team возникла, потому что мы выросли и управлять по-старому становится тяжело. Это может стать причиной ухода не только для меня, поэтому мы стараемся над этим работать.

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

Лиза: Борис прошёл к вам?

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

Про распределёнку, удалёнку и опенспейс


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

Лиза: Лёша, мы позвали тебя, потому что птичка принесла на хвосте, что в ABBYY есть распредёленные команды, и вы знаете, как работать удалённо. Расскажи, много ли у вас работает сотрудников на удалёнке, есть ли у тебя команда на удалёнке?

Алексей: Наверное, надо начать с того, что у компании офисы в 13 странах мира. Очень большое количество коммуникаций происходит онлайн. Например, тот продукт, который мы делаем, его идеолог, вдохновитель и драйвер перманентно живет в Штатах. У нас с ним примерно по 4 совещания в неделю, поэтому я его вижу только в Zoom. Это что касается глобально компании.

Что касается нашей команды, у нас примерно 30% команды в штатном режиме работает на удалёнке (это ещё до самоизоляции и карантина). Из тех, кого мы нанимали за последнее время, 80% людей – удалёнщики, к сожалению. Поясню почему. С одной стороны, с удалённой разработкой никаких проблем нет, мы отлично, на мой взгляд, выстроили процессы коммуникации. Разработка не зависит от того, сидит человек в офисе или нет. «К сожалению» – потому что намного комфортнее прийти к сотруднику и пообщаться с ним, чисто по-человечески это приятно. Живое общение приятнее, чем общение по Skype. Сейчас этого нет, поэтому я говорю «к сожалению».

Треть команды в ABBYY – это удалёнка, и с этим не возникает никаких проблем. Чтобы люди вписывались в коллектив, мы им при трудоустройстве делаем командировки из других регионов России в головной офис в Москве, они приезжают, проводят здесь неделю. Потом периодически это повторяем: то есть примерно на неделю человек приезжает, общается с командой. Это полезный момент для адаптации. И процессы ровно такие же, как мы выстроили внутри команды, транслируются наружу для удалённых сотрудников и всё работает.

Лиза: Есть разница между процессами в удалённой команде и физически находящейся в одном месте?

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

Сейчас мы все перешли на удалённую работу и никак не поменяли наши процессы. Всё как было, ровно так и делаем. Единственно, что не встречаемся в кабинетах и переговорках, всё перевели в Zoom.

Лиза: У вас не опенспейс?

Алексей: У нас есть разные способы размещения ребят. Есть люди, которые сидят в кубиклах – такая классическая ABBYY-шная посадка, примерно 2,6 квадратных метров личного пространства. Три стены вокруг тебя, и ты видишь только человека, который может сидеть в кубикле напротив тебя.



Есть варианты, когда работают в кабинете, он рассчитан на 6-9 человек. Внутри кабинета – опенспейс. Мы командами сидим именно в таких. Это максимально комфортная история, когда соотношение свободы и общения с шумом в помещении оптимальное.

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

Лиза: А есть ли разница между мотивацией у людей, которые работают удалённо, и которые приходят в офис? Замечал ли ты такое?

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

В целом большинство из них отмечают, что работа из дома сильно не отличается. За счёт того что мы держали рабочий ритм, и у нас были выстроены рабочие процессы, когда мы работали все в офисе, этот рабочий ритм переносится и на сейчас. Дальше, когда у тебя есть рабочий ритм, ты выдерживаешь work-life balance. Наличие такого опыта работы в офисе очень хорошо помогает и дома выдерживать этот ритм.



Подкаст «Ничего такого». Эта статья — расшифровка одного из выпусков нашего подкаста. Нам стало интересно как выглядит культура, строятся команды и процессы в разных технологических компаниях вроде Miro, Яндекса, Amazon, Microsoft, Едадила. Поэтому мы встретились с ребятами оттуда и поболтали на эти темы.

Полную версию выпуска с ABBYY можно послушать:
  • SoundCloud
  • Apple Podcasts
  • Google Podcasts
  • Яндекс.Музыка
  • Spotify
  • VK
  • Или скачать в нашем канале в Telegram.

Источник: https://habr.com/ru/company/abbyy/blog/502874/


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

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

Всем привет. Если вы когда-либо работали с универсальными списками в Битрикс24, то, наверное, в курсе, что страница детального просмотра элемента полностью идентична странице редак...
Возможно, вы понимаете как писать хороший код, как придерживаться хорошего дизайна. Но структурировать эти знания не получается. Книга Джона Оустерхаута “A philosophy of software de...
Размещённые вакансии от подрядчика НАСА говорят о том, что начата разработка нового гуманоидного робота Прошло уже почти шесть лет с тех пор, как НАСА продемонстрировало «Валькирию», передов...
Эта публикация написана после неоднократных обращений как клиентов, так и (к горести моей) партнеров. Темы обращений были разные, но причиной в итоге оказывался один и тот же сценарий, реализу...
Довольно часто владельцы сайтов просят поставить на свои проекты индикаторы курсов валют и их динамику. Можно воспользоваться готовыми информерами, но они не всегда позволяют должным образом настроить...