Русский
Русский
English
Статистика
Реклама

Teamlead

Как стать тимлидом фронтендеров и как жить после этого расшифровка эфира

27.06.2020 14:19:52 | Автор: admin
15 июня в нашем инстаграм-аккаунте прошел прямой эфир с Ильей, руководителем фронтенд-разработки в Яндекс.Деньги. Выкладываем запись эфира и расшифровку.



Меня зовут Илья, я работаю в компании Яндекс.Деньги и руковожу фронтендом. До этого был бэкенд-разработчиком, писал на C#, около 5 лет назад перешел во фронтенд. Чуть больше года руковожу. Вот такой путь развития. Еще активно участвую в Burning Lead это сообщество для ведущих разработчиков, тимлидов, людей, которые так или иначе пересекаются с задачами управления; надеюсь, ребята из сообщества слушают стрим.


Про Node.js и его использование


Сначала скажу, как она у нас появилась и почему мы ею пользуемся. Исторически сложилось так, что у нас в Деньгах есть полноценный Java-бэкенд, в котором Java-разработчики работают с базами данных, с основной бизнес-логикой. Фронтендеры с бизнес-логикой не работают, мы подготавливаем для себя нужный формат данных и отправляем его на фронтенд, а там уже рисуем их на каком-либо фреймворке. Изначально у нас был Xscript-сервер, который ребята в Яндексе сделали еще в 2000-х годах это наше legacy. Часть логики серверный рендеринг мы писали на XML, XSL/XML преобразования. Так продолжалось очень долго. Потом, когда мы осознали, что разработчиков на XSL/XML стало тяжело искать, мы стали выбирать новый сервер, в который можно было бы писать на бэкенде и потом использовать на фронтенде. Оказалось, что есть целая платформа Node.js.

Тогда Node.js была очень молодой платформой, версия 0.10, наверно. Решено было использовать ее по нескольким причинам: язык Javascript набирал популярность, разработчиков было много; кроме того, серверную и клиентскую логику мог писать один разработчик без суперспецифичных знаний. О своем выборе мы не жалеем: платформа все еще активно развивается, оптимизируется, становится быстрее, получает полезные фичи, имеет активное сообщество.

Поговорим про архитектуру фронтенда и о том, чего мы хотели бы достичь в архитектуре Яндекс.Денег в целом. Так как мы используем Node.js, у нас уже долгое время основой серверного фреймворка служит Express. Он хорошо справляется со своей задачей обрабатывает запросы пользователя и дает ответы, больше от него ничего не нужно. Для него написано множество плагинов. Есть SSR для React-приложений, например; так как основной стек на клиенте это React, SSR не проблема прикрутить. Есть много реализаций; можно даже не писать код: разворачиваешь из NPM, он сам все делает.

Что касается архитектуры мы порядка 4-5 лет живем на Express, и из-за этого возникают некоторые проблемы. У нас довольно много разработчиков в отделе сейчас человек 50 и нам нужно писать понятный для всех код; разработчики могут менять интересы, переходить из команды в команду, и нам нужно, чтобы код был примерно одинаковым, чтобы разработчик в новой команде не тратил по месяцу на акклиматизацию к новому коду. Express довольно низкоуровневый фреймворк, и с ним живется довольно тяжело: каждая команда использует свое видение того, как писать обработчики запросов или бизнес-логику, ходить в бэкенд. Первая попытка наладить архитектуру сервера была совершена, когда мы сделали ProcessFlow. Я на эту тему выступал с докладами рассказывал, как на основе IDEF0 можно построить систему, которая позволит организовать бизнес-логику, задать правила ее написания, сделать поддержку, визуализацию связей между сущностями. Попытка была вполне успешной: в некоторых местах у нас были серьезные проблемы с пониманием кода, и ProcessFlow помогла их решить. Она работает и сейчас, и вполне нас устраивает.

Сейчас у нас идет переезд на NestJS. Это довольно современный серверный фреймворк, позволяет писать контроллеры в парадигме Model-View-Controller, организовывать бизнес-логику; его философия пришла из Angular. Его сильная сторона это правила, они уже на уровне фреймворка определяют написание контроллеров и бизнес-логики. Бесконтрольная среда бывает губительна, когда вас много и все пишут по-разному; лучше иметь свод правил, к которому всегда можно обратиться такой путь мы выбираем. Про NestJS активно рассказывает мой коллега Андрей Мелехов, ведущий подкаст devSchacht; он сейчас описывает процесс переезда на NestJS, обсуждает проблемы.

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

Про клиентскую часть


Она состоит из двух больших стеков. Первый это легаси-стек с использованием методологии BEM Naming (определенные названия CSS-стилей, позволяющие избегать пересечений), на основе которой в Яндексе создали фреймворк. Мы использовали его довольно долго, так как мы используем технологический стек Яндекса. Он классный, и в нем работа с компонентами организована примерно так же, как в современных фреймворках: в виде отдельно лежащих блоков, которые удобно поддерживать. Однако он уже устарел, поскольку основан на GQL и не отвечает современным требованиям по UI; на нем очень сложно делать анимации и приложения на клиенте. Мы постепенно переходим на React уже несколько лет (переход продвигается тогда, когда меняется дизайн или функциональность: то есть, все переписывания бизнес-процессов происходят на новой технологии). Он показался нам довольно мейнстримовым то есть, разработчиков на нем много. React основной фреймворк на клиенте, в качестве стейт-менеджера используется Redux; с ним же мы используем Redux-Thunk для асинхронных действий и запросов к бэкенду. В нескольких проектах использовали hooks.

Почему не Angular?


Когда мы выбирали стек, Angular был приблизительно версии 1.5. Он показался нам сомнительным, и мы выбрали другое решение. К последним версиям Angular я не имею претензий, но отказываться от React мы не хотим.

Как я стал тимлидом, почему я выбрал этот путь, какие плюсы и минусы


На самом деле, в каждой компании будут собственные требования к тимлиду или руководителю отдела, но, как мне кажется, есть и определенный план того, что нужно знать и делать, чтобы развиваться в направлении менеджмента. Есть такой подкаст PodlodkaPodcast, они публиковали такой план (роадмап). Крутая штука; там написано, что следует читать для развития нужных softskills на них нужно делать упор. Конечно, у хорошего тимлида должны быть и отличные hardskills: он не просто формальный лидер команды (допустим, 5 человек), он должен доказать свое лидерство, он должен учить свою команду, его люди должны желать научиться программировать так же, как может он. Но важны и softskill: коммуникативные навыки для общения в пределах команды и вне их, для отстаивания мнения команды, для поиска компромиссов. В работе тимлида очень много коммуникаций. Кроме того, нужно уметь проявлять эмпатию: при общении с разработчиками важно устанавливать понимание на уровне чувств, понимать настроение каждого собеседника, определять, чего он хочет. Напрямую это не говорится, но очень хорошо, когда тимлид владеет этим. Здорово, когда к hardskills также прилагается умение наставничества: за таким тимлидом потянутся люди, он будет в состоянии четко формулировать и ставить задачи.

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

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

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

О процессах управления людьми в нашем отделе


Процесс разработки подразумевает общение разработчиков между собой, и у нас есть несколько точек пересечения. Задача на разработку поступает в одну из команд; обычно команда это Java-разработчики, фронтенд-разработчики, менеджер, продукт, обязательно тестировщики. Такая единица, сидит где-то отдельно. Существование других команд для нее особенного значения не имеет само по себе но нам необходимо, чтоб все команды писал приблизительно единообразный код. Для этого нужно общаться, и здесь есть несколько подходов. Во-первых, это происходящие время от времени встречи всего отдела; сейчас мы все собираемся в zoom, но это, конечно, не то. На встречах мы делимся новостями, ребята рассказывают, что они делают у себя в командах: какие у них проекты, какие будут в дальнейшем, что и как они делают. Это помогает строить представление о том, что происходит во фронтенде: он большой, просто так его рассмотреть не выйдет. Еще мы организуем tech talks, разные по масштабам: на всю компанию или на наш отдел, и там представляются технические приемы: например, на одном из них рассказывали, как используются hooks в React, как они влияют на форму, как выглядит код для них, какие плюсы и минусы. Такие доклады интересно слушать, и они помогают распространять по компании знания.Непосредственно в разработке есть процессы, которые позволяют нам общаться так, чтобы писать код, который потом не встретит непонимания на кодревью из-за используемых приемов, компонентов и библиотек то есть, мы стараемся нивелировать плохие последствия от изолированного принятия решений. Этот процесс, который мы называем Logic Review, позволяет нам узнавать мнения экспертов, ведущих разработчиков, старших разработчиков после того, как мы понимаем, как делать определенную задачу то есть, сверить наше видение реализации проекта с видением тех, кто определяет дальнейшее развитие всего отдела. Он позволяет нам обмениваться знаниями, технологиями, и контролировать однородность и архитектуру стека. Конечно, успеть везде и избежать всех проблем на кодревью невозможно, но такая сверка перед началом разработки позволяет уменьшить их количество.

Можно ли обмануть Review 360?


Напомню, что Review 360 это когда все (разработчики, тестировщики, менеджеры), с кем работал человек, которого нужно оценить, опрашиваются по кругу с помощью опросника. Я об этом процессе рассказывал на Burning Lead. Если команда небольшая, как у нас обычно человек 5-10 то этот процесс, собственно, не нужен: тимлид может сам пообщаться с каждым членом команды. Собственно, он и должен общаться с каждым разработчиком раз в 1-2 недели, чтобы понимать, чего хочет разработчик, какое у него настроение, доволен ли он задачами, как он работает, как проходит его рост. Но, когда команда большая например, у меня сейчас больше 50 фронтендеров то на такое личное общение уже не будет хватать времени. У тимлида есть и другие обязанности и проекты, он обязан развивать отдел, он не может тратить все рабочее время только на общение, которое впоследствии нужно будет еще и проанализировать. Поэтому приходится использовать менее точные подходы например, Review 360.

Можно ли его обмануть я думаю, имеется ввиду то, могут ли разработчики договориться между собой и поставить себе высокие оценки? Наверно, могут, но с менеджером и product owner так не договоришься: эти люди преследуют несколько другие интересы, и это будет легко вычислено. То есть можно, но ненадолго. Со временем станет понятно, что разработчик не делает свои задачи. Если product owner говорит, что разработчик не справляется, а другие разработчики ставят ему высшие оценки, то мы ясно понимаем, что существует проблема: либо product owner на него точит зуб, либо другие разработчики чего-то не замечают (или они договорились).

В целом, я думаю, что 360 Review довольно объективная вещь, и мы их проводим с определенным промежутком времени. Опыта по ним накопили еще не слишком много, но мы постепенно двигаемся вперед и совершенствуем методы подсчета статистики и наборы вопросов.

Расскажите про менеджер зависимости, composer и Laravel


Я знаю, что Laravel хороший PHP-фреймворк, и у нас на нем пишут, но сам с этими технологиями почти не работал.

У вас есть разделение на верстальщиков и JS-разработчиков, или разработчик делает все?


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

Что нужно знать джуниор-фронтенд-разработчику для работы в компании?


К сожалению, сейчас у нас нет открытых вакансий для джунов, но они бывают. Мы требуем знания теории языка Javascript. Это может показаться абсурдным, потому что теория JS в повседневных задачах вроде бы не нужна; однако мы знаем, что человек, изучивший теорию, умеет работать с информацией и воспринимать её. Кроме того, у него есть мотивация: он сел и разобрался с тем, как язык работает; когда он сталкивается с проблемой или сложным местом, он знает, как искать нужную для решения информацию (даже гуглить надо уметь).

Расскажите про архитектуру клиентской части. Есть ли у вас библиотека компонентов, и как она шарится? Сколько независимых приложений, все ли они в одном стеке?


Про архитектуру я уже немного рассказывал. Библиотека компонентов у нас есть, их несколько. Есть та, которую мы получаем от Яндекса, чтобы визуальный стиль был одинаковым. Есть дизайн-система, которая говорит, какие сетки, цвета, типографику (и т.д.) мы используем на фронтенде то есть, эта система полностью диктует расположение и цветовую схему. Наконец, библиотека общих между приложениями компонентов, которые мы используем. Приложений у нас больше 20 (26?), и во всех она используется; иногда мы довольно сильно ползем по версиям получаются разные версии в разных приложениях, из-за чего может страдать визуальная часть. Это одна из больших проблем устройства микросервисов с общей библиотекой, но мы стараемся.

Какой размер вашей команды?


У меня две роли в компании: я руковожу отделом порядка 50 человек и одновременно являюсь product owner нашей платформенной команды, там 8 человек.

React Native или Flutter?


У нас были эксперименты с React Native, Flutter тогда был очень новым; мы решили, что выберем React Native.

Яндекс хочет свой фрейм запускать?


Нет, BEM это очень старый фреймворк, он устарел, мы вместо него используем React. Никто не хочет запускать новый фреймворк.
Вопрос: на бэкенде только JS, или есть какие-то legacy-части?
Я рассказывал, что у нас есть сервер с Xscript с XML/XSL. Это как раз и есть наше legacy, мы его активно выпиливаем и хотим как можно скорее прекратить его использовать. В основном в 96% случаев у нас используется JS.

Redux-Thunk или Redux-Saga?


Мы использует Thunk. К Saga был подход; может быть, у нас тогда просто не было ребят, которые достаточно хорошо в ней разбираются, но преимуществ над Thunk мы не увидели. Сейчас уже есть подход с hooks, но пока Thunk очень активно используется.

Вы внутри компании или команды ставите задачи по Smart?


Когда мы делаем проекты, цели ставятся по Smart. То есть, мы должны четко представлять, что мы будем делать и к чему прийти. Новичкам тоже задачи ставятся по Smart. Но я не могу сказать, чтобы уже в процессе разработки всегда были четко прописанные задачи: часто, когда ребята в команде создают задачи, они могут быть совершенно по-разному описаны, но для новичков всегда всё описывается так, чтобы было ясно, как идти и к чему. То есть, не все 100% задач ставятся по Smart, но мы активно используем эту методологию.

Насчет микросервисов сейчас выкатили Module Federation Pack 5, можно ли в эту сторону посмотреть?


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

В чем разница в управлении 5, 10 и 50 людьми?


Во внимании, уделяемом разработчикам. Когда разработчиков 5-10, я могу с каждым из них пообщаться, выслушать проблемы, понять, чего они хотят и как развиваются. Когда их 50, это невозможно; конечно, это ухудшает ощущения от роли руководителя, потому что кажется, что я отделен от разработчиков, но сделать с этим ничего нельзя. Это основная разница. Кроме того, 5-10 человек это одна команда, которая вместе работает, но 50 человек не могут быть одной командой; такое количество разработчиков нужно разбивать по отдельным управляемым группам, иначе не получится держать фокус.

Будет ли массовый переход на NestJS?


Сложно сказать. Может, завтра появится новый фронтенд-фреймворк, превосходящий NestJS, и мы все будем на него переходить. Я думаю, что сейчас NestJS хорошо проработан, но нужно исходить из задачи. Для многих задач, которые мы решаем на Node, не нужен такой серьезный фреймворк например, для лямбда-функций, которые кто-то будет вызывать; но, когда на фронтенде есть развесистая логика, кажется, что подошел бы лучше Nest. Он сейчас хорошо проработан, есть и бэкенд-фреймворк (хотя он был довольно сырым, когда мы смотрели его). Nest развивается и, может быть, станет более популярным, но я не думаю, что будет массовый переход на него, как на Express.

Чем отличаются собеседования на джуна и миддла? Что оценивается во втором случае?


Когда мы собеседуем джуна, мы проверяем мотивацию человека, базовые знания JS, смотрим на коммуникативность и желание развиваться. С миддлом все интереснее: ведь миддлы это люди, которые пишут основную часть кода наших проектов; у них мало встреч, они большую часть времени именно разрабатывают. Мы должны хорошо проверить его hardskills (задачами), узнать, как он рассуждает, поговорить про архитектуру, спросить, как он организует проекты, рассмотреть его стиль написания кода. У самого миддла уже есть сформированные ожидания относительно компании то есть, с нашей стороны нужно донести, чего мы ждем от него и что можем предложить.

Есть ли какая-то боль в твоей команде, которую хотелось бы решить? С чем это связано, и какое может быть решение?


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

Как строите процесс по управлению таким количеством человек? Сколько лидов? Тяжело ставить цели?


Непросто. Очень много коммуникаций. Вместо официальных лидов у нас в каждой команде роль лидера выполняет самый опытный разработчик, который непосредственно работает и общается с людьми, проводит ревью, декомпозирует и нарезает задачи. С каждым таким лидом мы коммуницируем, пересекаемся на ревью. Есть еще более крупные направления (B2B, B2C), и у каждого направления есть человек, который за него отвечает. Он выстраивает работу в своем направлении, в том числе работу с людьми. Я стараюсь общаться как со старшими разработчиками, так и с ведущими разработчиками направления, как можно чаще; еще у нас есть общие встречи старших разработчиков, где мы обсуждаем новости, проблемы команд и процессов, думаем, что делать. Я думаю, старшие разработчики должны ощущать себя некоторой командой, с которой можно свернуть любые горы сделать процессы такими, как нужно, вместо того, чтобы смиряться с неудобствами.

Проводите 1 на 1? Как часто? Лайфхаки?


Собственно, у нас в компании ревью как раз называется 1 на 1. Сейчас я провожу со всеми старшими разработчиками ревью раз в месяц (это реже, чем рекомендуется лучше проводить раз в пару недель). Зачастую нам есть, что обсуждать. Лайфхаков особых нет в литературе достаточно подробно расписано про 1 на 1. Важно давать разработчику говорить он должен говорить примерно 80% времени; в этом суть: задача руководителя создать на ревью дружественную и безопасную атмосферу, чтобы разработчик мог ему рассказать все, что его беспокоит. Это довольно тяжело и не всегда получается, но круто, если 1 на 1 есть, и на них есть, что обсуждать. Их лучше проводить в неформальной обстановке например, можно в парке. Создание комфортной атмосферы может быть разным это не только переговорка в офисе.

Какие вакансии у вас открыты?


В каком направлении? У нас довольно много в разных направлениях. По фронтенду мы ищем нескольких миддл-разработчиков (по-моему, 2), можно и senior.

Какие сложные задачи возникают у руководителя?


Сложно говорить о сложности задач, когда ты их решаешь. Допустим, отказ от легаси это сложная задача. Есть бизнес, который хочет развиваться; есть ты, руководитель, который хочет, чтобы легаси не стало. Нужно находить общий язык с бизнесом и добиваться внесения в бизнес-план задач по отказу от легаси, что нетривиально. Это требует хороших коммуникативных навыков, хорошего фокуса нужно постоянно держать на пульсе руку; задача бизнеса зарабатывать деньги, он не любит отказываться от работающих легаси-систем.
Сложная задача придумывать задачи по улучшению работы в отделе. Нужно анализировать, с какими проблемами сталкиваются разработчики, не забывать улучшать dev-experience. Выявлять проблемы это тоже нетривиально.

Рассматриваете фронтов на удаленке?


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

Что делать, если тимлид слабоват и явно не должен оставаться на позиции?


Нужно использовать механизм подачи обратной связи. Это мощный и классный механизм, но, конечно, нужно делать это аккуратно, чтобы человек не обиделся. Нужно уметь проявлять эмпатию, понимать чувства человека, давать в правильном направлении обратную связь. Он может либо принять, либо не принять ее; если он стал тимлидом, он должен уметь работать над собой и принимать обратную связь. Важно не просто дуться на него из-за того, что он не дотягивает, а сказать ему конструктивно, что, на ваш взгляд, делается плохо, и узнать его мнение. Я сам не мастер подачи обратной связи, мне еще предстоит этому научиться, но я знаю главное правило: говорить про действие, а не про личность. Если рассказать лиду, какие вещи в команде проседают может быть, все починится.



А что дальше?


30 июня в 20:00 в нашем инстаграм-аккаунте будет выступать Влада Рау Senior Digital Analyst в лондонском офисе McKinsey Digital Labs. Сейчас Влада занимается product/data engineering. До своего переезда в Лондон она дважды стажировалась в Google в Дублине, а также училась в ВШМ СПбГУ и IE Business School в Мадриде.

Задать ей вопрос можно в комментариях к этому посту.



Что было ранее


  1. Илона Папава, Senior Software Engineer в Facebook как попасть на стажировку, получить оффер и все о работе в компании
  2. Борис Янгель, ML-инженер Яндекса как не пополнить ряды стремных специалистов, если ты Data Scientist
  3. Александр Калошин, СEO LastBackend как запустить стартап, выйти на рынок Китая и получить 15 млн инвестиций.
  4. Наталья Теплухина, Vue.js core team member, GoogleDevExpret как пройти собеседование в GitLab, попасть в команду разработчиков Vue и стать Staff-engineer.
  5. Ашот Оганесян, технический директор и основатель DeviceLock кто ворует и зарабатывает на ваших персональных данных.



Подробнее..

Эволюция команды разработки

31.12.2020 14:09:18 | Автор: admin

Весной 2019 года меня пригласили руководить разработкой в небольшой стартап, занимающийся обработкой Big Data.

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

Команда разработки включала в себя 10 сотрудников: тимлид, front-end разработчики, back-end разработчики, системный администратор и DevOps. Стэк разработки: Python, PHP, JavaScript. Мои глобальные задачи были стандартны, но это не делало их простым. Я упорядочил их по порядку решения задач:

  1. Повысить качество и отказоустойчивость инфраструктуры

  2. Повысить квалификацию разработчиков

  3. Повысить качество ПО

Повышение качества и отказоустойчивости инфраструктуры

Проблема 1: Команда работала по старинке.Каждый разработчик сам управлял локальным окружением разработки. Это приводило ко всем знакомой ситуации при возникновении ошибок на productionе: у меня локально работало. Окружение должно быть единым для всех ваших окружений. С приходом контейнеризации (в частности, Dockerа) в массы, эта задача стала легко решаемой.

Решение: Контейнизируйте ваши приложения. Выберите единую ОС для вашего базового образа (на тот момент у нас был Ubuntu 18.04 LTS). Устанавливайте 3-rd party пакеты с точной версией, вплоть до хотфиксной. Пусть поддержкой занимаются системные админстраторы и DevOpsы, разработчикам делать там нечего.

Проблема 2: Много self-hosted сервисов, мало системных администраторов

Все проекты и их компоненты были на выделенных серверах, которые поддерживались двумя (а долгое время одним) системным администратором. Большая часть работы была рутинным админством: тут "подкрутить", там "отшлифовать".

Решение: Освободите руки системного администратора от рутинных задач насколько это возможно. Автоматизируйте свои процессы с помощью Terraform и Ansible. На уровне малого бизнеса/стартапа зачастую дешевле делегировать часть работы, чем нанять еще одного системного администратора. Возьмите managed СУБД и K8s, за одно решив таким образом такие проблемы как отказоустойчивость, масштабируемость и админством этой инфраструктуры.

Проблема 3: Вшитые в код ключи/пароли/сертификаты (секреты) от production сервисов

Решение: Внедрите систему хранения секретами, такой как Vault. Настройте политику доступа к этим данным. Перенесите все секреты из кода в хранилище и запрашивайте их при инициализации приложения.

Повышение квалификации разработчиков

На момент моего прихода в команде были в основном junior разработчики.

Проблема 1: Низкая квалификация разработчиков

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

Решение: Оставьте только талантливых людей (даже если они juniorы), которые быстро учатся и самое главное, хотят учиться. На остальных не тратьте время. Новичков вполне могут позволить другие крупные и состоявшиеся компании. Наберите вместо 5 новичков 2 хороших специалиста, которые будут качественно выполнять свою работу. Старайтесь находить тех, у кого вы бы сами могли чему-нибудь научиться в узкой области.

Проблема 2: Каждый разработчик пишет код в своем стиле

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

Решение: Дирижируйте свою команду. Прививайте разработчиков к единому стилю написания кода. Используйте линтеры типа we-make-python-styleguide (сборник плагинов к flake8) для поддержания единого стиля.

Проблема 3: Отсутствие технологического развития

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

Решение: Много читайте и постоянно следите за новинками вашей области. Внедряйте и обучайте этому вашу команду. Вместе с ростом квалификации вашей команды растет и ваша.

Повысить качество ПО

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

Проблема 1: Плохо спроектированный код

Cотни и тысячи строк кода смешанных предметных областей, в который сложно вникнуть, поддерживать и улучшать.

Решение: Внедрите DDD и Twelve-Factor App.

Проблема 2: Классы, классы и еще раз классы по всюду

Проектировать большой набор абстракций с одной реализацией не есть хорошо. Не нужно использовать классы только ради группировки вашей бизнес-логики

Решение: Для группировки сойдут модули и пакеты. Функцию не обязательно оборачивать в класс. Прочитайте о YAGNI, KISS, а также о функциональном программировании.

Проблема 3: Слишком сложные для понимания автотесты

Сразу взять и понять как работает та область, которой вам поручили заняться сложно.

Решение: Описывайте логику в виде BDD сценария. Вникать в предметную область гораздо проще прочитав его сценарии, чем программный код.

Заключение

Перемены, описанные выше происходили в течение 1 года. По всем 3 пунктам удалось добиться хороших результатов. Руководство осталось довольным.

С наступающим, Новым годом!

Подробнее..

Тимлиды. Много и сразу. Как выбрать и развивать

26.06.2020 18:17:05 | Автор: admin
Всем привет! Меня зовут Андрей Новиков, я руководитель разработки в одном из подразделений компании Exness, и совместно с Леной Скворцовой, нашим HR BP, мы хотим вам рассказать про то, как выбираем тимлидов в командах разработки, как их развиваем и как растим под жарким кипрским солнцем.



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


Наша инфографика на 01/06/2020

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

  1. Найм сотрудников на Кипр всегда происходит медленнее, чем в СНГ, так как для многих релокация это серьезный шаг.
  2. В один момент нанять 79 тимлидов непростая задача, которая растянется на годы.
  3. Для наших инженеров стать тимлидом еще один путь развития, который позволяет ребятам, желающим в будущем занимать менеджерскую позицию, расти внутри компании.
  4. Этапы шторминга и притирания проходят гораздо быстрее с человеком, которого команда уже знает.

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

  1. Процесс выбора;
  2. Talentpool;
  3. Программа развития;
  4. IDP;
  5. Уроки и советы.


Процесс выбора


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

Для этого весь процесс мы разделили на несколько этапов:

  1. Самостоятельная подготовка;
  2. Собеседование;
  3. Калибровка результатов.




Самостоятельная подготовка


В качестве самостоятельной подготовки всем кандидатам из команды мы давали письменное задание подумать над вопросами: Если бы я стал тимлидом, что бы я изменил в команде прямо сейчас?, Почему я хочу стать тимлидом?, Какие проблемы и вызовы я вижу перед собой в новой роли?.
Ответы на эти вопросы очень важны, потому что с одной стороны, они заставляют еще раз задуматься над вопросом Действительно ли я хочу стать тимлидом?, порефлексировать над своим опытом, сильными и слабыми сторонами, с другой подсветить проблемы и области развития команды, которые видны в текущей роли.

Собеседование


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

  1. Какая мотивация у сотрудника стать тимлидом? Деньги, карьера, вызов, саморазвитие, признание?
  2. Какие сильные стороны есть у кандидата для роли тимлида?
  3. Что необходимо прокачать и изменить?
  4. Какие риски есть при назначении данного сотрудника на роль тимлида? Например, команда останется без единственного фронта, и нужно сразу открывать позицию на замену, или есть риск сильной демотивации другого кандидата?

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

Калибровка результатов


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

Talent Pool


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

Программа развития


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

Программа базового менеджмента



  • Развитие лидерства команды
    • Роли менеджмента
    • Цикл управления
    • Ситуационное лидерство
  • Навыки влияния
    • Управление вовлеченностью
    • Типы личностей
    • Избегание манипуляций
  • Навыки влияния и оценка деятельности
    • 1-1 встречи
    • Оценка 360
    • Как предоставлять негативный фидбек
  • Управление собственной продуктивностью
    • Приоритеты
    • Типы планирования
    • Энерджи-менеджмент
  • Мотивация
    • Мотивация или вовлечение
    • Теория мотивации
    • Gallup Q12

Программа операционного менеджмента


  • Инцидент менеджмент;
  • Гибкие методологии разработки (Scrum, Kanban);
  • Фасилитация встреч;
  • Процесс найма;
  • Процесс адаптации;
  • Увольнение;
  • Разбор сложный кейсов;
  • Зарплата.

Первые месяцы работы с тимлидами мы проводим еженедельные 1-2-1 митинги для разбора всех сложных ситуаций, ответов на вопросы и помощи в принятии решений. Первые увольнения и найм, сложные 1-2-1 митинги также проходят совместно с руководителем тимлида для поддержки и более плавного вхождения в роль.

IDP (Individual Development Plan)


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

Процесс составления и развития по IDP выглядит так:

  1. Подготовка. На первичной встрече тимлид и Learn & Development (L&D) специалист/ HR обсуждают те области, где сотрудник чувствует неуверенность/ хочет расти. Это беседа с примерами из ежедневной работы руководителя, цель которой понять, что конкретно хочется улучшить. Как в идеале выглядит результат? Чем это поможет бизнесу?

  2. Составление IDP. IDP это список книг, статей, подкастов, видео, фильмов, активностей для прокачки конкретного скилла. На каждый скилл, как правило, включаем чтение/ видео/ активность, чтобы, как говорится, и в теории, и на практике.
  3. Развитие. После того, как IDP готов, мы приступаем к работе над ним. Один раз в месяц тимлид и L&D специалист/ HR встречаются, чтобы посмотреть, работает ли IDP, стоит ли его подкорректировать, и чем еще можно помочь. IDP это рабочий инструмент, который может меняться и дополняться. Например, после результатов 360 мы часто дополняем IDP, если видим, что конкретная компетенция просела.

Как выбрать компетенции для IDP? Задача L&D специалиста и тимлида на первой встрече понять на примерах, какая компетенция нуждается в улучшении.
Обычно все компетенции в IDP попадают в три основные области скиллов в компании: business acumen (понимание бизнеса и отрасли), operational excellence (execution) и leadership (soft skills, так необходимые руководителю). Для тимлидов первая версия IDP в основном заключалась в работе над leadership, а именно people management.
Как мы измеряем прогресс? Как всегда фидбек! Это и личный фидбек от коллег, и результаты 360, и, конечно же, отзывы тимлидов про свое развитие.



Уроки и советы


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

Основная проблема, с которой мы столкнулись, это неоднозначное понимание роли ТЛ. Роль тимлида в разных компаниях состоит из разных навыков и обязанностей, очень часто ее путают с ролью техлида. Поэтому важно сделать четкое и структурированное описание должности тимлида, его обязанностей, ответственности, возможностей и роли в компании и донести ее на встречах с командами.

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

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

Перевод Как точно оценить проект за 6 шагов

21.10.2020 12:13:27 | Автор: admin
Всем салют. Эксперт OTUS Андрей Романов приглашает всех желающих на свой бесплатный демо-урок по теме: Командообразование в удаленных и распределенных командах.

А мы в свою очередь традиционно делимся с вами полезным переводом




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

Ниже вы найдете руководство, которое поможет вам сформировать адекватную оценку. Приготовьтесь учиться искусству оценивания проекта.

1. Привлекайте к оценке членов команды и помните об их потенциале


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

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

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

2. Познакомьтесь с процессами управления проектами в компании


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

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

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

3. Расширяйте кругозор


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

Относитесь к ошибкам, как к возможности научиться чему-то новому.

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

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

4. Ознакомьтесь с проектной историей своей команды


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

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

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

5. Задавайте больше правильных вопросов


Иногда из-за отсутствия важной информации о предстоящих проектах может сложиться неверная оценка. Чтобы избежать этой ошибки, вы должны досконально знать каждую деталь проектного предложения. Если для вас все еще что-то неясно или есть что-то, что вводит вас в заблуждение, не стесняйтесь задавать вопросы. Будьте изобретательны и не слишком настойчивы, когда будете их задавать. Постарайтесь разобраться в бизнесе клиента и уважайте его мнение. Задавайте вопросы, которые понятны клиентам, и продолжайте делать это, пока не получите ответ.

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

6. Примените иерархическую структуру работ


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

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

Надеюсь, эта статья оказалась для вас полезной.



Читать ещё:


Подробнее..

Модель Белбина для IT сила и слабость разных команд

05.11.2020 12:07:06 | Автор: admin
В работе с некоторыми командами бывают ситуации, когда что-то работает само, и об этом не надо думать. Сами доделываются задачи, сама развёртывается Continuous Integration есть люди, которые этим занимаются, и за рабочими процессами не нужно специально следить. Но в других командах это само не происходит.

Почему? Проще всего сказать, что все люди разные, поэтому и команды разные. Но, если тимлид будет рассматривать команду как систему, то сможет увидеть закономерности: поймёт, где за командой надо обязательно следить, а в каких случаях всё произойдёт как будто само собой. Опираясь на такой подход мы сможем привести команду к балансу и поможем ей выиграть (довести проект до конца). Описать командное взаимодействие как систему позволяет ролевая модель команд Белбина.

Максим Цепков IT-архитектор и бизнес-аналитик, навигатор и эксперт по миру Agile, работающий с самыми разнообразными системами от бирюзовых организаций до Спиральной динамики. О моделях Белбина Максим рассказывает часто (смотрите семинар, доклад на SPMconf и на COMAQA, а также статью о ролях).

Сегодня мы публикуем расшифровку доклада, посвященного модели команд по Белбину, с которым Максим выступил на конференции TeamLead Conf 2020.




Что предлагает Рэймонд Мередит Белбин


Исследование Белбина


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

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

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

Также Реймонд выяснил, что, понимая модель, даже неудачная команда может компенсировать свои слабые стороны и тоже достичь успеха. Об этом у Белбина написано две книги:



Читать их стоит именно в таком порядке. Хотя половина контекста там перекрывается, они про разное: первая больше про историю исследований, а вторая про подбор и формирование команды. На официальном сайте belbin.com есть много материалов для тех, кто заинтересуется темой всерьез, включая научные исследования применения модели. Многие из тех, кто практикует эту систему, являются научными сотрудниками и выступают на ежегодных профессиональных конференциях.

Содержание модели Белбина


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

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



Реймонд протестировал людей на эти роли, после чего смог описать:
  • Конфигурации ролей для сильных и слабых команд;
  • Рекомендации по формированию сильной команды;
  • Способы компенсировать конкретные слабости команды.

Позднее Rob Thomsett, американский исследователь, адаптировал модель Белбина для IT на него ссылается Эдвард Йордан в своей книге Смертельный марш. В книге, кстати, есть список из 20 причин провальных IT-проектов.

Еще Реймонд Белбин доказал что между командным духом и успехом команды нет статистической корреляции. Потому что он наблюдал и команды, которые дружно шли к победе и тех, кто дружно шли к поражению. И даже команды, которые, вдрызг разругавшись, достигали победы. И успешные команды стабильных экстравертов (у которых было все в порядке с командным духом).

Сегодня я расскажу про проблемы команды, а по мере рассказа покажу роли, которые описал Белбин.

Проблемы команды


Много идей и разговоров, но работа движется слабо


Вроде бы внутри команды все готовы к работе. Но все время что-то мешает, и есть куча недоделанных вещей. Например, все спроектировали и пишут код, но при этом Continuous Integration и контроль версий не работает. То, что из коробки есть сделали, а то, где надо докрутить почему-то не доделывается.

Диагноз: в команде нет людей на две роли исполнителя:

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

Специалист. Это профессионал, который любит и знает свою работу (например, пишет бэкенд или базу данных), но за свои границы не выходит. Поэтому Continuous Integration для него должен делать кто-то другой.

Лечение: фокус на результате. Если такая ситуация возникает, а Работника в команде нет, нужен фокус на результате, особенно в серых зонах ответственности. Лучше всего организовать этот момент отдельно. И конечно, идеальный вариант найти Работника компании при формировании команды, и тогда этот фокус он организует сам.

Нет идей, ступор при проблемах и затруднениях


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

Диагноз: не хватает ролей, приносящих новые идеи. За них отвечают две роли Генератор и Исследователь ресурсов, и они совсем разные:

Генератор (Plant) активно порождает оригинальные идеи и видит самореализацию в их воплощении. Он горит своими идеями, причем не очень важно, насколько они подходят проекту. Запилить какую-нибудь сложную систему фреймворка, декларативное описание форм, еще что-то, что не очень нужно, зато прикольно и красиво это про него. У Генератора есть важная черта когда он придумал идею и хочет реализовать ее, то он нацелен на то, чтобы она пригодилась и была рабочей.

Исследователь ресурсов (Resource Investigator) не генерит идеи. Но он много читает, активно общается и приносит новые идеи из внешнего мира: новые технологии, которые хорошо бы применить и т.д. Он загорается ими и видит самореализацию в их адаптации и воплощении.

Лечение: Если этих ролей нет, то идеи надо находить любыми другими способами: например, мозговые штурмы и другие способы порождения идей. Но лучшим решением при формировании команды найти Генератора. Он особенно важен на уникальных проектах или на проектах в неопределенности, где готовых решений не бывает, а мы заранее не знаем, сработает ли привлекательное снаружи решение.

Бесконечные споры между конкурирующими идеями


Бывает и противоположная ситуация, когда существуют бесконечные споры между конкурирующими идеями. Например, как сделать общение фронтенда с бэкендом по разным паттернам. Или как использовать промежуточные транспортные Java-объекты: какими способами, какие нужны фреймворки и паттерны, использовать ли отдельно для каждого класса фабрику для порождения объектов или нет, и т.д.

Диагноз: в команде несколько конкурирующих Генераторов или Исследователей ресурсов, конкурирующих за реализацию своих идей. Два Генератора в команде такая же плохая идея, как и ни одного.

Лечение: развести Генераторов по зонам ответственности, или переключить одного из них в альтернативную роль, если она есть. Например, в одном из проектов я был Генератором и придумывал новые идеи. Но руководитель проекта тоже видел свою реализацию в придумывании новых идей. Я это засек и начал ему оппонировать без выдвижения своих идей, переключившись на роль Аналитика-стратега (которая тоже у меня есть). И это сработало.

Реализация сложных идей не продвигает к результату


Бывает и так, что идеи есть, но они сложные. В этом случае команда либо не движется к результату, либо останавливается где-то на полпути. Это случается, когда есть мощный генератор, придумывающий новые сложные фреймворки и идеи, и которые сразу идут в реализацию. Но потом выясняется, например, что декларативное описание форм, которое он придумал, 100% проблем не решает, и даже 50% решает с трудом. Он его усложняет, но все кейсы и особые случаи все равно не натягиваются, и начинается ступор.

Диагноз: идеи от Генератора принимаются без критики, потому что у него нет достойного оппонента Аналитика-старатега, или не получается обсуждение.

Лечение: организовать обсуждение и защиту идей до их реализации, а лучше заранее найти Аналитика-стратега для оппонирования. Здорово, если вообще есть человек, который будет оппонировать идеям в самом начале. Но для этого он должен иметь вес в глазах Генератора.

Основная задача Аналитика-стратега (Monitor Evaluator) оценивать идеи и варианты, искать истину и синтезировать сложное решение с учетом всех нюансов. Если его в команде нет, ревью постановок и обсуждения нужно специально фасилитировать, потому что Генераторы харизматичны, но обидчивы.

Паралич принятия решений


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

Примеры:
  • Способ реализации непонятной задачи: Давайте еще поисследуем. Мы посмотрели три фреймворка и нужно делать выбор. Но у каждого есть свои плюсы и минусы. Что же делать? Давайте еще поисследуем.
  • Определение исполнителя для задачи с неясными перспективами решения. Есть противная задача: написать сложную алгоритмику системы скидок или комиссий, которую придумали маркетологи. Но никому не хочется этим заниматься.
  • Релиз с дефектами. При выпуске релиза определили список дефектов. И дальше релиз либо нужно выпускать в таком виде, считая, что дефекты не так страшны (ведь пользователи ждут функционал), либо отсрочить выпуск релиза. Лучше всего сразу принять решение. Но бывают ситуации, в которых наступает паралич кажется, что дефекты магическим образом исправятся за последние два дня, оставшиеся до даты выхода
.
Диагноз: нет руководителей Координатора или Шейпера.

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

Координатор (Coordinator) организует совместную работу, используя сильные стороны сотрудников и давая им возможность проявиться, но при этом принимает взвешенные ключевые решения. Координатор и работает на команду, и руководит. Он старается, чтобы люди проявляли свои способности. Выслушивает других, но при этом умеет принять адекватное решение: Я вас услышал и решил, что здесь так потому что сроки.

Шейпер (Shaper) это более традиционный харизматичный руководитель, который активно и жестко ведет команду к принятым целям по выбранному им пути: Идем туда!

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

Слишком уверенный лидер


Противоположная ситуация.

Диагноз: у руководителя-Шейпера нет уважаемого им оппонента (Координатора или Аналитика-стратега) для обсуждения решений. Это обратная сторона Шейпера без оппонента он ведет команду к поражению, а не к победе, но при этом уверен в правильности своих действий. Как и Генератору, оппонент нужен ему для обсуждения решений.

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

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

Непродуктивная команда звезд


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

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

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

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

В такой команде существует парадокс: обычно руководитель команды умнее среднего участника, но не обязательно самый-самый (а вообще лучший вариант, если умнее других будет Генератор его задача подавать классные идеи, и пусть он не отвлекается на повседневное руководство). Но для команды звезд нужно, чтобы руководитель был глупее среднего уровня. Тогда звезды объединяются и сотрудничают между собой, чтобы донести до этого глупого руководителя свои гениальные идеи.

Реймонд Белбин это проиллюстрировал историей про американский атомный проект, где командой ученых руководил генерал. Все ученые его дружно ненавидели за невысокие, по их меркам, умственные способности. Но при этом он уверенно и успешно руководил проектом.

Некому завершать работу


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

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

Педант (Completer Finisher) доводит дело до конца. Перфекционист, для которого главное качество и детали, а сроки могут подождать. Но без него оставшиеся 20% проекта никому не интересны.

У Педанта есть и обратная сторона он хочет сделать все излишне качественно. Если он стоит во главе команды, последствия ужасны, потому что для него сроки это ничто. Но если он не руководитель, у него все время голова болит о том, что еще не внедрено и недоделано. И благодаря ему оно доделывается!

Лечение: чек-листы и административный контроль за реальным завершением задач не нужны, когда педант есть в команде. Увы, в IT педантов мало.

Нет сотрудничества


Симптомы: поиск виновных в проблемах и неудачах, отсутствие взаимопомощи, люди указывают на несовершенства других.

Диагноз: нет человека, который бы заботился о взаимоотношениях и сглаживал острые углы, это слепая зона у руководителя. Оказывается, это отдельная роль. Это не Координатор, и тем более не Шейпер, то есть роль не должна быть руководящей.

Душа команды (Team Worker) ненавязчиво налаживает отношения в команде, сглаживает углы и в управлении явно не участвует.

Лечение: найти человека с эмпатией, который будет заботиться о взаимоотношениях. Руководителю объяснить, что важно не только производство, но и эмоциональные отношения. Необходимо показать ему на примерах, почему это важно, а не бесполезная трата времени. К тому же люди обычно оценивают коллег из своей роли если роль несвойственна и непонятна, они искренне не видят, чем занят другой.

Одинаковые слабости у всех членов команды


Симптомы: команда повторяет ошибки, а в некоторых ситуациях даже впадает в ступор и не может двигаться.

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

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

Человек и команда


Человек в команде


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

Например, когда я работал с руководителем Шейпером и Генератором, я вместо Генератора действовал как Аналитик-стратег (хотя формально занимал позицию архитектора, от которого ожидалась генерация архитектуры). Но в том же проекте были области, которые руководителя не интересовали, и нормальным работающим разделением стало то, что именно там я генерил идеи для архитектуры.

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

Достоинства и недостатки


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

С ролями связаны понятные функции: генерация идей, реализация, принятие решений и эти функции в команде так или иначе кто-то всегда берет на себя. Поэтому неэффективно назначать человека на несвойственную ему роль например, квалифицированный разработчик (специалист) с огромным опытом назначается руководителем команды за профессионализм, а руководить людьми у него не получается.

Еще у каждой роли есть допустимые недостатки как продолжение ее достоинств, и недопустимые, которые мешает выполнять основные функции роли и/или даже разрушают команду. Грань между ними тонка увеличиваясь, допустимый недостаток становится недопустимым. Любой человек может совмещать две-три роли, при этом сильные качества в одной могут быть недостатками в другой. Чтобы понимать это, у вас должна быть адекватная саморефлексия.

Зрелость команды


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

Но когда вы себя понимаете и знаете свои достоинства и недостатки, сильные и слабые стороны, то становитесь зрелым человеком в команде. В исследованиях Белбина на втором этапе даже несбалансированные команды побеждали, когда осознавали свои недостатки и стремились компенсировать их.

Проигравшие команды же разделились на две категории:
  • Те, кто не осознавал и/или не признавал недостатков. Например, опытные и сложившиеся менеджеры, которые пришли повышать свою квалификацию, не понимали про какие-то роли и их недостатки. О каких недостатках речь? Мы такими компаниями и командами руководили! Уж как-нибудь без этих особо умных обойдемся!
  • Фаталисты, которые не стремились исправиться. Они узнали о ролях и решили для себя о, мы слабая команда, мы идем к проигрышу. И не предпринимали ничего, чтобы это исправить.
  • Зрелость в осознании себя внутри команды и знание роли, а также когда ваша самооценка, имидж и факты совпадают, приводят к зрелости как себя, так и команды.


Формирование команды


Пригодность и приемлемость


При составлении команд имеют значение как профессиональные знания и навыки (Белбин это называет пригодность), так и приемлемость по командному профилю (роли):
  • Пригодные и приемлемые им работа скучна, это просто ступенька карьеры.
  • Приемлемые и непригодные развиваются, и им интересно работать в команде.
  • Неприемлемые, но пригодные проблемные. Работу делают, но в команде из-за них возникают трения.

Непригодных и неприемлемых надо уволить из команды в другой команде они могут подойти по профилю и проявить свои сильные стороны:



Для баланса должны быть все командные роли. Конечно, каждый может играть несколько ролей, переключаясь между ними. Но важно, чтобы обязанности совпадали со способностями (что, конечно, получается не всегда). Поэтому нужно все время осознавать роли, чтобы вовремя устранять дисбаланс.

Ключевые моменты при формировании команды:


  • Нужны идеи, исполнители и организаторы.
  • Нужен хотя бы один (а лучше несколько) Работников компании и желателен один Педант.
  • На несколько ключевых ролей (ядро команды) выбирайте профессионалов (пригодных по знаниям и навыкам) и у которых нет резких конфликтов по ролям. Они обеспечат выполнение работы.
  • Дополняйте команду пусть и не столь выдающимися специалистами, но приемлемыми по командному профилю. Даже если они имеют формально недостаточный уровень по знаниям и навыкам, они будут расти и эффективно работать.
  • При включении новых людей в сложившуюся команду приемлемость критичнее, чем знания и навыки. Если новый сотрудник подходит по своей роли, это снизит шторминг после его появления в команде.
  • Командный дух не обеспечивает успеха, а конфликт между Шейперами и Генераторами не стоит решать при помощи их примирения его надо делать конструктивным.
  • Однородные команды слабы и часто выбирают себе подобных.
  • Обязанности следует делить с учетом профессионализма и (обязательно!) ролей участников команды.

Состав сбалансированной команды:


  • Руководитель Координатор, умеющий работать с талантливыми, но зачастую трудными участниками;
  • Один сильный Генератор;

При этом хорошим будем следующее распределение умственных способностей:
  • умный Генератор;
  • еще один умный не-Генератор, который ему оппонирует;
  • умный Координатор;
  • остальные чуть ниже среднего уровня.


Размер команды


Эксперименты Белбина показали, что оптимальный размер команды 5-7 человек. Целевым было шесть, но выяснилось:
  • Ни 5, ни 7 человек не проигрывают и не выигрывают;
  • 8 человек могут быть успешны, но возрастает нагрузка на руководителя, а также требования к нему;
  • 4 человека могут быть успешны, если представлены все роли. Но в этом случае у команды нет резерва;
  • В команде от 10 человек неизбежно появляется ядро из 2-4 человек, принимающих решения и люди без включения в него.


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

Команды-победительницы:


  • Смешанные сбалансированные команды, где представлены все роли.
  • Однородные команды из стабильных экстравертов. В IT это редкость, но все же такие встречаются. Эти команды хорошо работают за счет сотрудничества, так как им нравится трудиться вместе. Роли в таких командах могут быть не выделены, но сотрудничество помогает преодолеть проблемы. Правда, они так же весело могут пойти на дно.
  • Команды, во главе которых суперзвезда: если стратегия лидера верна, команда движется к победе, если нет к поражению. И то, и другое будет стремительным.
  • Команды типа Аполлон (команды звезд): острый ум, ресурсы и таланты, но и большие сложности в их применении. Ключ к успеху хороший Координатор. Для сложных проектов такие команды особенно хороши, но нужно внимательно выбирать руководителя проекта.


Заключение


Вы познакомились с теорией. Как ее можно применить в повседневной жизни? Во-первых, вы можете проверить свои роли в команде (пройдя тест) и осознать свои сильные и старые стороны. И далее можете использовать это для собственной работы, выборе своего места или проекта.

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

В-третьих, полезно учитывать личные качества людей, их командные роли при формировании новых команд. Конечно, при нынешнем дефиците IT-специалистов формирование идеальных сбалансированных команд недопустимая роскошь. Но и формирование заведомо слабых команд, которые провалят проект, потому что там нет ни одного способного породить новые идеи (а для проекта это критически важно), или нет человека, ориентированного на завершение проекта, а не на вечное продолжение тоже не очень хорошая идея. В любом случае, эта теория поможет компенсировать недостатки. Так же как в случае, если команда получается конфликтной знать об этом заранее лучше, чем выяснить в процессе.

И пара слов про тестирование. Многие роли яркие, вы их можете увидеть и без теста. Как и многие конфликты можно опознать без тестирования. Но у человека бывает несколько ролей, и вы можете не знать про другие, так как по поведению можно видеть только одну из них ту, которую он сейчас играет. В первой книге опубликован тест на 8 ролей (без специалиста), и он позволит их выявить и лучше применять решения.

А тем временем конференция TeamLead 2020 переносится на 25-26 февраля 2021 года. Наш опыт в онлайне показал, что это лучше чем ничего, но этого недостаточно. Мы приходим на конференции за общением, решениями, знакомствами, новыми идеями и обсуждениями. А работа с людьми, управление, софт-скиллы тем более очень сильно зависит от нюансов, поэтому личное общение здесь крайне важно.

Из-за ситуации с Covid cо всей болью, разочарованием и грустью мы приняли решение о переносе конференции. Но сформированная программа конференции не меняется, билеты автоматически будут перенесены, проживание в гостинице (если бронировали через нас) будет автоматически перенесено на новые даты.

По любым вопросам пишите на organization@ontico.ru, всё разрулим и всё решим.
Подробнее..

5 мифов о тимлидах. Как стать тимлидом и избежать ошибок

19.11.2020 16:18:00 | Автор: admin
Привет, Хабр! Один из вечных споров в IT о том, как развиваться разработчику: прокачивать хардскиллы или навыки управленца? Если и вы задаете себе этот вопрос, давайте вспомним 5 известных мифов о работе тимлида и конечно, сравним их с реальностью.

Меня зовут Александр, я возглавляю TeamLead-направление в SimbirSoft. Приведу примеры, какие у тимлидов задачи и что можно сделать, чтобы наладить обмен опытом как между собой, так и со всеми, кто готов учиться.



image alt
Я уже более года веду наш внутренний проект по обучению Академию тимлидов. Наши менторы помогают Middle-разработчикам, которые настроены на получение управленческих навыков. За год обучение прошли 80 специалистов, и половина из них уже работают на проектах.

Что показывает практика:


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

Почему это происходит? Что делает тимлид на самом деле? Предлагаю вспомнить самые частые заблуждения и заодно разобрать конкретные задачи, которые тимлиду предстоит решать.



Миф 1. Тимлид самый крутой технарь в команде


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

Конечно, в каждой компании есть свое представление о том, кто такой тимлид и что входит в его обязанности. При этом роль управленца в IT критически важна, как и в других сферах.

В первую очередь, тимлид необходим в масштабных проектах и распределенных командах, когда крупную IT-систему например, банковскую совместно создают и инхаус-разработчики, и несколько внешних подрядчиков.

Пример: бывает, что в проектной команде задействованы разработчики разных направлений, с разным опытом Backend, Frontend и Mobile, QA-специалисты, SDET и DevOps. Даже если вы считаете, что разработчикам нужно стремиться к самоорганизации, обычно это недостижимый идеал. В жизни команде зачастую нужен классический лидер.

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

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



Миф 2. Тимлид не развивается как технарь и выгорает


Соотношение технических задач к управленческим может быть разным например, 70/30, 80/20 или даже 50/50.

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

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

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



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

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


Миф 3. Тимлид должен кодить сам и лучше всех


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

Тимлид также отвечает за техдолг и код-ревью, за планирование и технические процессы, за выполнение разработчиками задач в срок. Ему важно уметь делегировать, не брать на себя всю работу. Уметь корректно распределять задачи между членами команды в зависимости от их профессионализма, учитывая их предпочтения и стремления.

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



Миф 4. Тимлид в одиночку отвечает за весь проект


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



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

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

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

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

  • провели 5 тимбилдингов распределенных команд и обеспечили благоприятный климат в команде;
  • команда увеличила скорость выполнения задач на 10% за счет налаженных коммуникаций;
  • сократили процесс настройки окружения с 3 дней до 4 часов.

На этом примере мы убедились, как значительно работа тимлида может повлиять на процессы в команде. За несколько лет сотрудничества наша команда на проекте расширилась до более чем 60 специалистов: backend-, frontend- и мобильных разработчиков, аналитиков, QA.

Миф 5. Разработчики переходят в тимлиды, чтобы повысить свою зарплату


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

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



Академия тимлидов: наш опыт


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

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

Например, у нас есть Академия тимлидов внутренний проект для передачи опыта. С 2019 года мы обучаем тех разработчиков, которые интересуются управлением командами. За год обучение прошли 80 специалистов, половина из них более 40 человек уже погрузились в новую роль и подключились к проектным командам.

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

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

Что такое Академия тимлидов

Наш практикум это 21 онлайн-консультация (более 50 часов) и 5 месяцев погружения в профессию. Онлайн-консультации проходят один раз в неделю.

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

Для кого:


  • Для тех, кто хочет стать тимлидом.
  • Для тех, кто уже руководит командами разработчиков.
  • Для разработчиков Middle/Senior, которые хотят прокачать в себе управленческие навыки.

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

Приглашаем зарегистрироваться на практикум или открытый стартовый вебинар!
Подробнее..

Про outsource и product компании

10.04.2021 14:17:23 | Автор: admin

Всем привет.

Я team lead, сертифицированный коуч и начинающий психолог.

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

Я работал в двух продуктовых компаниях, одной outstaff (жил и работал в Абу Даби, по контракту с минской компанией) и двух outsource. В общей сложности был где-то на 15 проектах.

В этой статье хочу поделиться своим видением текущей ситуации на рынке.

  • За время работы заметил следующие интересные феномены:

  • В продуктовых компаниях люди чаще обсуждают что изменить в продукте (язык заплетается). В outsource компаниях в процессах

  • В продуктовых компаниях меньше менеджмента

  • В продуктовых компаниях реже взаимодействие с заказчиком (или целевой аудиторией)

Ни на одном проекте не встретил аналитику в outsource.

Здесь думаю следует пояснить, что такое outsource.

Аутсорсинг (своими словами) это такая сфера, в которой заказчик очень не хочет что-то делать и решает передать эту работу отдельной команде, за счёт чего последние и живут.

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

Здесь очень важно понимать, что заказчик в момент обращения за помощью уже находится в НЕ спокойном состоянии. Его напряжение настолько сильное, что он готов расстаться со своими деньгами, лишь бы его избавили от этого напряжения. Более того, он согласен принимать условия scrum, agile и прочего, лишь бы только не встречаться снова с проблемой, которую он не хочет решать.

Забегая вперёд, именно от незнания вышеизложенного часто идёт удивление почему заказчик вдруг стал недоволен. Он и был недоволен, и это вообще не с вами связано.

Так вот, помимо непосредственных задач, которые заказчик пытается переложить на outsource компанию он транслирует ещё и своё нежелание/сопротивление эту работу делать.
Выражаться это может в чём угодно он плохо сформулированных требования (ну, потому что не хочет он больше видеть эту проблему. Решите уже её за меня), он жалуется на плохую работу предыдущих исполнителей или текущих сотрудников и т.д.

Причём всё это нужно трактовать не как объективные и осознанные недовольства заказчика, а как психологическую разгрузку. Что-то в стиле пожаловаться друзьям. Однако в случае outsource компании возможность пожаловаться является услугой, оказываемой такому заказчику.

Здесь ни в коем случае руководство outsource компании не должно обесценивать работу менеджеров или бизнес-аналитиков. Эти люди стоят на передовой. Их задача состоит в том, чтобы путём снижения сопротивления заказчика составить понятные и хорошо описанные требования для команды разработчика.

Таким специалистам необходимо иметь достаточно неплохие дипломатические навыки. И чётко разделять профессиональную и личную критику (вы делаете фигню и вы козёл).

Заказчик, каким бы он милым не казался, будет находиться в большом стрессе. И его логичным желанием будет слить своё напряжение в дипломата со стороны outsource.
Таким специалистом не должен быть разработчик (либо это должно быть отдельно прояснено с ним).

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

Думаю, здесь стоит упомянуть первый принцип гибкой методологии разработки:

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

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

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

Всё очень просто. Заказчик начинает использовать разработчика, как бизнес-аналитика. И сливать в него своё раздражение от задачи, которую ему так не хочется делать.

Так заказчик неосознанно пытается сказать Мне очень важно, чтобы вы это сделали. Я больше не хочу выносить это, избавьте меня от этой проблемы поскорее, вот вам деньги.

Заказчик как бы воспринимает разработчиков как гуру, мастеров, которые решат его вопрос и без подробных объяснений (возможно отсюда элитарность професси программистов в СНГ, помимо денег).
Он думает, что необходимо только заплатить деньги и кошмар закончится.

И здесь есть интересная ловушка.

Обычно в любой компании разработчики всё-таки являются подчинёнными. Над ними стоят менеджеры. А решения в беседах разработчику приходится принимать на менеджерском уровне, а-то и выше (переносы релиза, просьба о помощи других разрабов/девопса/тестировщиков и т.д).

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

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

Для упрощения воспользуемся метафорой семьи.

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

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

Поэтому разработчик находится в какой-то не совсем понятной ситуации. Как бы между двух родителей.

Здесь очень важно заметить про страх непринятия и обесценивания.

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

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

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

Получается при сильной фигуре заказчика, старшие разработчики могут открыто выражать своё недовольство как менеджерам, так и заказчикам. И уже отстаивать свой личный интерес.
Младшие же разработчики так делать не могут (чаще всего) в силу собственной идентичности в данной группе.

И здесь важно заметить, что если человек деградирует до невербального периода (до того, как научился говорить), то он просто не будет выражать своё недовольство, замкнётся и выгорит.

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

Со старшими же разработчиками всё сложнее. Здесь как раз могут возникать конфликты. Т.к. необходима сепарация от родителя-менеджера, для выстраивания адекватных отношений с заказчиком. Иначе стресс (между двух родителей).

В такой ситуации для менеджеров наступает момент встречи с "ребёнком в подростковом периоде". Когда он ещё не самостоятельный (человек всё-таки на контракте). Но уже требует своего признания (уважение его договоров с заказчиком).

Данное признание очень помогает продвинуться всей компании, т.к у менеджеров убирается жёсткая необходимость ставить кого-то над таким разработчиком (бизнес-аналитика, менеджера).

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

И менеджерам ещё долго придётся вынашивать своё потомство, до появления следующей конфликтной ситуации.

Такой конфликт спор за признание родителя. Или "про процессы". Является наиболее частым в outsource компании именно из-за специфики работы.

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

От сюда и появляется первый феномен (из начала статьи).

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

А как следствие там будет скорее конфликт между детьми в коллективе в стиле папа, посмотри, как я могу (больше разговоров про непосредственно работу), чем про процесс. Никто не будет хотеть бороться за место отца, все будут бороться за его внимание друг с другом.

Как следствие разворачивается и второй пункт меньше менеджмента. Он практически не нужен. Всё прекрасно работает.

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

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

Подробнее..

Записки юного TeamLead Ошибки, о которых не стыдно говорить

22.04.2021 00:12:56 | Автор: admin

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

Предисловие

Буквально несколько дней назад был "субботник" у одной компании с красно-белым лого. В первом докладе спикер рассказывал про оси развития разработчика. Всего он выделил три оси:

  1. Технологии

  2. Продукт

  3. Люди

В целом, он не ошибся. Любой разработчик может уйти в сторону оси "Технологии" и делать свой стек технологий сильнее - становиться ведущим или старшим разработчиком. Можно попробовать прокачать себя в оси "Продукт" - уйти в PM и потом пойти дальше по матрице компетенций и расти по вертикали. Но есть еще одна ось, о которой можно много говорить, о которой много пишут, писали, и будут писать - "Люди". Управление людьми, работа с командой напрямую, выстраивание своих локальных процессов разработки - участь TeamLead (далее TL).

Я осмелился написать этот пост на основе своих же ошибок. Мне не стыдно их признать, не стыдно рассказать о них, показать, что некоторые тактики не всегда помогают.

Ошибки

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

Вот и я будучи TL в компании в первые месяцы допустил несколько больших ошибок.

Доверие

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

Мысли а ля "Я могу сделать это лучше" первое время постоянно рядом, из-за этого получается, что вы перегружаете себя и, конечно же, не успеваете. Ведь помимо разработки у вас есть другие не менее важные задачи. Решение данного вопроса очень простое: нужно учиться доверять, оценивать людей не только по их личным, но и по их техническим характеристикам. Тогда будет намного легче. Возможно, вы перестанете быть звездой-гением-мысли-лучшим разработчиком среди всех разработчиков в компании, но вы будете хорошим TL, который умеет самое главное - доверять. От этого вам плюсик в карму от команды.

Оценка сроков

Другая не менее распространенная ошибка - Ошибка в оценке сроков

Иногда, на глобальном планировании на несколько спринтов вперед бизнес может сказать "Нам нужно это, это, и вот это - сможешь?".

Тут начинается игра "Кто хочет стать Багоделом", потому что чем больше вы возьмете на себя и свою команду, тем больше будет проблем потом. Проблемы будут появляться из-за:

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

  2. Сложности. То, что по заявлением должно делаться N часов - делается 2N часов - отсюда смещение по времени и нарушение дедлайнов.

  3. Перегруженности команды: в высоком темпе разработчик работать может, но недолго - дальше выгорание и потеря сотрудника.

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

Приоритеты

Это особенно важная история в рамках команд, которые работают над несколькими большими задачами в спринте.

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

Отсутствие развития сотрудников в профессиональном плане

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

Общение с разработчиками

Или One-to-One. Лучший способ узнать что происходит у разработчика - прямо спросить. И не обязательно спрашивать "ну что, как там с задачами?". Нужно быть человеком и искренне проявлять интерес к жизни сотрудника. Спросить что-то отвлеченное от работы или обсудить, к примеру, вчерашний футбольный матч - прекрасное начало диалога, который поможет больше понять что беспокоит сотрудника. Если необходимо спросить про трудности с задачами - это стоит делать без претензией, а с искренним желанием помочь.

Ошибок, которых я допустил - тысяча. Но скажу одно - даже у ошибок есть польза. Нужно просто уметь получать эту пользу.

Конфликты

Самое страшное, что может случиться в команде - это конфликт между разработчиками. Что самое забавное, его причины достаточно прозаичны, например - pull request был предвзято оценен или чрезмерно раскритикован. И самое неприятное в конфликте то, что он может быть продолжительным и он может съесть день вашего времени. Решение конфликта кроется в общении:

  1. С каждым по-отдельности - разговор one-to-one для поиска причины и оценки ситуации

  2. Совместно с конфликтующими - разговор, который направит на нахождение компромисса

Это поможет быть:

  1. Ближе к команде

  2. Справедливее. Вы не занимаете стороны - вы стремитесь к общей идее сплоченной команды

Не занимайте стороны, не говорите эмоциями - говорите фактами.

Заключение статьи

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

Проблема производительности команды не кроется в отдельных разработчиках - она кроется в грамотной постановке не только дедлайна и задачи, но и в условиях, в которых разработчики каждый день находятся, в правильной "постановке атмосферы" разработки - надеюсь не перемудрил и вы меня поняли. Если кратко: сделать комфортные условия и увеличить КПД - вот задача тимлида.

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

Подробнее..

Митап Инженер заходит в бар Dev-to-Teamlead

28.05.2021 08:05:31 | Автор: admin

3июня, 15:00 МСК, онлайн.
Регистрация https://miro-event.timepad.ru/event/1650491/

Эксперты

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

Тема

В рамках серии митапов "Инженер заходит в бар" продолжаем исследовать траектории профессионального развития разработчиков. На этот раз поговорим про переход из инженера в руководителя команды.

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

Ты соглашаешься и начинается: проводишь больше времени на митингах, чем за написанием кода; нужно делатьperformance review, 1-to-1 и прочую психологию с социологией; мысленно примеряешь на себя стереотип "Был хороший разработчик, стал плохой руководитель".

На митапе поговорим с ребятами, кто был в такой ситуации и как-то справился.

Обсудим:

  • момент перехода что было самое сложное и что помогло преодолеть;

  • отложенные сложности какие были проблемы по мере накопления тимлидского опыта;

  • следующие шаги после тимлидства кто куда пошёл дальше, почему именно туда.

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

Серия "Инженер заходит в бар"

Мы делаем митапы для тех, кто умеет программировать и столкнулся с осознанием, что IT не только про программирование. Кроме кода есть люди, с которыми нужно договариваться. Есть сверхскоростные темпы изменения технологий и рынка. Нужно постоянно учиться новому. Есть желание делать нужное. "Инженер заходит в бар" митапы для тех, кто задумывается о процессах в IT, независимо от своей роли.

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

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

Все выпуски серии.

Организаторы

Мы инженеры изMiroи DevRel-бюро Долгушев и Сторожилов. Мы много общаемся с разными IT-компаниями и видим, насколько по-разному все отвечают на схожие вопросы. Нам интересно разобраться, увидеть систему (или её отсутствие) и обсудить всё это с другими инженерами. Ну и просто поговорить с интересными людьми об их опыте.

Регистрация https://miro-event.timepad.ru/event/1650491/

Подробнее..

Как быть тимлидом и продолжать программировать

19.11.2020 20:15:16 | Автор: admin

В недавнем выпуске подкаста DotNet & More мы обсуждали полезные материалы для тимлидов и всплыла классическая проблема: как совмещать управлениекомандой и написание кода. Этой осенью я рассказывал о лайвхаках, которые помогают мне продолжать программировать на позиции лида и мне показалось полезным, в этом контексте, выложить текстовуюрасшифровку доклада.


Хочу сказать отдельное спасибо Алисе Мироненко за подготовку транскрипта. Видео версия доклада:

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

Мне часто встречаются люди с такой карьерной историей: в новую компанию приходит разработчик с десятилетним опытом работы. В 2010 году онпришел в компанию Х,быстро развился до синьора, он талантливый, крутой. Так как онталантливый, ему дали тимлида.

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

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

Потом человек с таким опытом приходит к нам на позицию разработчика.

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

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

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

Но расстояние между лидоми менеджером такое же, как междуджуномилидом.

У наснет времени учиться на менеджеров это главнаяпроблема.

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

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

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

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

Если мы решилиуглубиться в разработку, у нас должна быть инженерная нагрузка, хотя бы 30%. Возникает вопрос: А разве эти 30%насспасут? Да, об этом сегодня и поговорим как добиться этих 30% эффективной работы, чтобы мы продолжали развиваться как настоящие инженеры.


Давайте начнем с того,когда тимлиду стоит заниматься разработкой. Я сделал небольшойчеклист.

Возможно, у вас есть время на разработку, если:

  1. Вы занимаетесьмикроменеджментом.

  2. Пишете много документации в стол.

  3. Вы единая точка коммуникациина проекте.

  4. Ваша команда только пишет код.

  5. У вас много тет-а-тет митингов.

  6. Вы инициатор большинстваэтих митингов.

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

В целом ясчитаю, что совмещениеролейуправленцаи инженера зависит от трех вещей:

1) Стадии развития вашей команды

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

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

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

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

2) Уровня квалификации и мотивации ваших сотрудников

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

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

Если у вас команда немотивированных и неквалифицированных сотрудников, то, наверное, вы всё время будете заняты микроменеджментом и больше ничем.

Есть классическая табличка на эту тему:

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

3) Уровня коммуникации на проекте

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

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

Очевидно, что в таком случае у вас не будет времени на инженерную деятельность.

Как настроить коммуникацию?

Вариант:если я единая точка коммуникации,я возьму и самоустранюсь.

Главная проблема будет в том, что появится неформальный лидер. Понятие неформальный лидер неприятное, потому чточасто неформальные и формальные лидеры не одно лицо. Это становится проблемой для формального лидера.

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

Как перестать быть единой точкой коммуникации?

Если всех всё устраивает, один из самых приятных вариантов натравить на командуSCRUM-мастера, чтобыконтролировать иоптимизировать рабочий процесс. К сожалению, это не всегда срабатывает.

Тогда можно пойти по классическому пути: уходите в отпуск оставляетесвоегозаместителя. Никакой заказчик не будет против, чтобы временно пообщаться с вашимсотрудником(кроме редких исключений).Но этонепомогает познакомить заказчика со всей командой. Поэтому я бы хотел рассмотреть более общий способтого, как подружитьзаказчика с командой:

  • Познакомьте заказчика с командой через task manager.

  • Организуйте встречу с командой в привычном для заказчика месте и времени. Не приводите сразу всех.

  • Ведите первые митинги как обычно, тет-а-тет с заказчиком, но с командой на фоне.

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

  • Поднимайте на встречах вопросы, которые можно адресовать команде. Пусть на них отвечают, не ожидая вас.

  • Позвольте вашим коллегам вести митинги и переписки напрямую с заказчиком, но в первое время будьте рядом.

  • Всегда будьте в копии и на связи с заказчиком.

  • Это было про коммуникацию, теперь прото,как делегировать.

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

Делегирование это отдельная тема, сейчас я остановлюсь только на нескольких моментах.

Не забывать, чтоваши функции не очевидны другим.

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

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

Не забывайте, что делегирование это не безучастность. Вы должны быть в курсе событий, слушать митинги.

Мы поняли, когда можно браться за разработку: команда не находится на этапешторминга,мы умеем делегировать.

Давайтетеперь подумаем,как бороться с отвлечением и управлять вниманием

В чем проблема борьбы с отвлечением для тимлидов? В том, что классические подходы к тайм-менеджменту focus time, помидорка, скалирование времени и другие не работают, если сотрудники не уважают ваше время.

Но что делать с вопросами коллег? Важно отвечать на них хотя бы в течение получаса.

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

Для тимлидов отметим важный момент: пишем через 15 минут правильно.

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

Рассмотрим еще одну проблему возврат в контекст.

Вы программируете, у вас в голове: Задача-метод-класс. Вас отвлекли, контекст пропал. Выответили сотруднику, нужно вернуться в контекст.

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

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

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

На виртуальном столе, где у вас релиз в продакшен, Jenkins/TeamCity, Splunk/Kibana, чат с DevOps. То же самое с обсуждением требований: Skype/Teams, Jira, Confluence.

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

Пора программировать

Мы настроили время, коммуникацию, справились с отвлекающими факторами, налили чаёк Имы парализованы.

У насантипаттерн аналитики-паралитики.

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

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

У нас то же самое. Разработка ПО это комплексная задача. Бизнес-контекст, архитектура, коди прочее. От нас как от тимлидов требуют думать глобально.

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

Напоследок хотелось бы поговорить про выбор программерскойроли, когда вы тимлид

Давайте рассмотрим основные роли:

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

Если вашабольшая команда,времени на это может не быть. Стоит вовремя отдать эту роль, когда команда растет, иначе вы можете превратиться впрототипщика(человек, который пилитпрототипы,а доведение проекта до ума оставляет на откуп команде).

Затыкательдыр человек, который приходит, когда нам чего-то не хватает для полного счастья.

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

Еще одни руки еще один программист,которыйпросто еще что-то делает фикситбаги, например.

Этот подход работает, потому что тимлид с такой ролью хорошо знает систему. Тут важно не статькодерскимбалластом.

И мое любимое кодерскийбалласт. Человек, которого лучше бы не было.

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

Резюмируя: как быть тимлидом и продолжать программировать.

Когда?

  • Когда команда на стадиинормингаилиперформинга.

  • Когда люди квалифицированы и мотивированы.Когда настроена коммуникация.

Как?

  • Прямая коммуникация.

  • Делегирование.

Рекомендации

  • Управлять отвлекающими факторами.

  • Микродекомпозироватьзадачи.

  • Облегчить переключение фокуса внимания.

  • Трезво выбирать роль.

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

Подробнее..

Перевод 10 способов замотивировать команду после провального проекта

22.01.2021 18:12:57 | Автор: admin

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

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

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

Позвольте нам вдохновить вас, как лидера. Здесь вы найдете советы для мотивации и поднятия настроения вашей команды.

Смотрите на картину шире

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

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

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

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

Поддержите членов команды

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

Члены команды часто берут на себя больше ответственности добровольно, если у них появляется возможность самим выбирать путь. Помимо этого, так вы сможете повысить производительность.

Каждый член команды преследует свои цели, как личные, так и профессиональные. Начните инвестировать в их стремления и поощряйте их настойчивость в достижении целей.

Не акцентируйте внимание команды на недостатках

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

Уважение и поддержка это улица с двусторонним движением.

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

Будьте готовы к неудаче

Идите вперед и забудьте мысль, что неудача это еще не конец. Возьмите и начните все сначала. Если бы в каждой новой концепции не было готовности к неудаче, она бы не смогла материализоваться. При необходимости напомните о Томасе Эдисоне, чтобы показать, что даже 1000 попыток стоят одной победы.

Обновите рабочее место

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

Сделайте работников счастливее

Если на рабочем месте приятно находиться это уже половина счастья работника. Так вы сможете поднять уровень энтузиазма и позитива в команде.

Плохое отношение и неудовлетворенность рабочим место заразительны.

Несчастный сотрудник может распространять негатив. Нужно следить за расстроенными сотрудниками. Разногласия могут возникать и между членами команды, и, возможно, именно тимлиду придется делать первый шаг в разрешении ситуации (http://personeltest.ru/aways/blog.ganttpro.com/en/resolve-differences-in-multinational-company/).

Поощряйте саморазвитие

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

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

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

Бросьте микроменеджмент

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

Планируйте

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

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

Поощряйте малые этапы

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

Невозможно дойти от нуля до сотни за один шаг.

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

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


Перевод статьи подготовлен в преддверии старта курса "Team Lead 2.0".

Узнать подробнее о курсе.


ЗАБРАТЬ СКИДКУ

Подробнее..

Смена работы тимлидом как готовиться, как онбордиться, и что дальше

04.06.2021 08:06:10 | Автор: admin

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

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

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

Содержание.

Что изучить еще до выхода на работу

Блог Уилла Ларсона

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

Книга Первые 90 дней Майкла Уоткинса

Основная идея данной книги на старте у нового руководителя есть кредит доверия, и его нужно оправдать за первые 90 дней, продемонстрировав существенные достижения.

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

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

  • The rush to "show value" поясняет, как не наломать дров в стремлении быстро показать результат.

  • Your first 90 days as CTO or VP Engineering статья для лидеров уровнем выше, но полезна как карта куда направить внимание в первую очередь.

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

На старте. Собираем контекст и ожидания

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

Ниже я опишу, как на старте собирал контекст и устанавливал нужные коммуникации.

Сразу зарезервируйте время на обучение

Когда-то давно я прочитал про такое явление как спираль сделанной работы (к сожалению, не помню, где читал). Смысл этой спирали в том, что чем больше работы вы делаете, тем больше работы вам придется делать в дальнейшем.

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

Если мы не следим за балансом обязательств и копим незавершенку, то мы становимся все больше должны. Спираль может закрутиться до состояния, когда без нас уже ничего не может быть сделано, и мы вынуждены крутиться, как белка в колесе, чтобы поддержать хотя бы текущие обязательства. Еще это печальное состояние известно как bus factor = 1.

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

Понаблюдайте, как идет работа в компании

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

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

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

Daily sync с командой

Классический stand up meeting. Здесь я понял текущие боли проекта, настроение команды, кто в чем профи, есть ли тлеющие или явные конфликты.

Также этот митинг отличное время, чтобы легализовать себя в команде. Расскажите о своем прошлом опыте, чем вы увлекаетесь в жизни, как планируете действовать.Например, я рассказал, что не намерен крушить и строить заново, что сначала буду просто наблюдать. Что постепенно поговорю с каждым на 1-to-1, но только когда наберусь контекста, чтобы разговор был предметным.

Lead sync

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

Статус-митинг с PM и вице-президентом

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

Meet & Greet

Это встреча всех сотрудников компании. Здесь я еще немного узнал про культуру, планы компании, новые продукты, насущные вопросы из повседневной работы. В середине 2020 года насущной темой ожидаемо были карантин и работа на удаленке.

Хорошо. Мы понаблюдали, изначальное представление о происходящем составили. Что дальше?

Проведите несколько встреч сами

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

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

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

Вот какие я провел встречи и что мы на них обсуждали.

1-to-1 с PM проекта

Эту встречу я провел в конце первой недели. Мы проверили мои первые предположения об основных вызовах на проекте и восполнили пробелы в моем понимании ситуации. Также советую обсудить с PM, кто из вас чем занимается в повседневной работе. Это поможет избежать двух ситуаций:

  • Вы оба не сделали что-то, ожидая, что это сделает другой.

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

Список вопросов, с которыми я пришел на встречу с PM.
  • Каков общий ландшафт проекта и ключевые ценности для бизнеса?

  • Какие главные боли бизнеса в связи с проектом? Над чем явно стоит поработать в первую очередь?

  • Какие компоненты системы критичны, и кто их стейкхолдер?

  • Могу ли я понаблюдать за работой конечных пользователей?

  • Какие у команды есть обряды? Синки, ретроспективы, планирование, backlog triage? Как проходят эти встречи, и есть ли замечания к их эффективности?

  • Почему выбрали именно kanban (scrum, lean, любую другую методологию)? Какие плюсы уже ощутили? Какие ожидали, но не получили?

  • Ключевые эпики, roadmap на год, интересы стейкхолдеров.

  • Какая сейчас температура в команде, на проекте, в отношениях со стейкхолдерами?

  • Какие с точки зрения PM планы по техдолгу, багам, внепроектным активностям?

  • Стоит ли нам общаться 1-to-1 регулярно или хватит рабочих встреч?

1-to-1 с непосредственным руководителем

Эту встречу мы провели в начале второй недели.

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

Подход тот же: заранее подготовить вопросы, проверить гипотезы, пополнить контекст. После встречи извлечь список возможных действий.

Список вопросов, которые я обсудил с руководителем:
  • Общий ландшафт проекта и его ценность для бизнеса.

  • Главные боли бизнеса в связи с проектом. Над чем нужно работать в первую очередь?

  • Как менялась динамика команды и ее отношения с бизнесом со сменой тимлидов в прошлом? Как давно это происходило?

  • Мой подход в целом, как планирую действовать в ближайшее время.

  • Какие планы у компании на этот год и глобальные планы?

  • Какие трансформации хочется провести в компании?

  • Есть ли подводные камни, о которых мне нужно знать?

  • Есть ли элементы культуры, которые стоит убрать? Что, наоборот, нельзя трогать?

  • Есть ли избыточные митинги или просадки в коммуникациях?

  • Какие основные риски в адаптации лида снаружи на твой взгляд?

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

Также очень рекомендую статью Уилла Ларсона Partnering with your manager. Она поможет построить с руководителем продуктивные отношения, а не просто приносить ему проблемы, с которыми он должен будет вам помогать.

1-to-1 с каждым участником команды

В отличие от предыдущих 1-to-1, с этими встречами торопиться не стоит. Вы будете иметь дело не только с проектными, но и с личными вопросами, поэтому важно приходить с максимумом контекста и минимумом домыслов и предвзятостей.

В моем случае предстояло провести девять встреч, и на них ушло полтора месяца.

Вот советы по подготовке к 1-to-1:

  • Прочитайте (или перечитайте) раздел про 1-to-1 в Team Lead Road Map.

  • Не стройте из себя супермена на встрече. Расскажите о своих прошлых провалах, не стесняйтесь говорить, что вам нужна помощь сейчас.

  • Записывайте любые положительные отзывы о коллегах. На 1-to-1 поделитесь с коллегой, что о нем говорит команда.

  • Запишите и негативные отзывы. Но в формате Вася считает, что Петя делает задачи медленно, а не Петя делает задачи медленно. На 1-to-1 предложите коллеге рассказать о той или иной ситуации, которую вы наблюдали и внимательно выслушайте. А потом извлеките действия, которые помогут снять напряжение сейчас и избежать подобных ситуаций в будущем.

  • До общения с коллегой не читайте его HR-карточку и историю решения сложных вопросов. Фрейминг существует и это штука очень сильная. Даже если вам кого-то представили как low performer-а, сначала поговорите с ним лично и разберитесь с его мотивацией.

  • На первый 1-to-1 заложите часа два и оставьте свободным календарь после. Мало что будет хуже, чем в разгар личной беседы убежать на другой митинг.

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

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

Список вопросов, которые я задавал

Конечно, список неполный, поскольку каждый 1-to-1 включал ряд личных вопросов.

  • Хочешь ли что-то обсудить прежде, чем мы перейдем к моим вопросам?

  • Каким ты видишь общий ландшафт проекта, ключевые ценности для бизнеса?

  • В каких частях проекта ориентируешься отлично? В каких хотел бы подкачаться?

  • Чем бы хотел заниматься? Хотел бы забрать на себя целиком какое-то направление? Какого плана задачи интересны (например, менторство)?

  • Как по-твоему идут дела на проекте?

  • Какие главные боли проекта?

  • Есть ли что-то, что мешает в работе лично тебе?

  • С кем тяжело работать в команде? А с кем хотел бы работать чаще?

  • Опиши идеального следующего кандидата в нашу команду?

  • Какие самые большие и интересные штуки стоит сделать? Что нужно сделать уже в этом году?

  • Есть ли у тебя долгосрочное видение себя? Хочешь составить план роста вместе? Что изменить, чтобы работа больше способствовала твоим целям?

  • Восхищаешься ли ты кем-то в компании?

  • Как чувствуешь себя на удаленке?

  • Что можно поменять в митингах?

  • Чувствуешь ли ты перегруз? Недогруз?

  • Что ты думаешь о фидбеке и его количестве? Как часто будем проводить 1-to-1 в будущем?

  • Хочешь ли что-то узнать обо мне?

  • Как настроение после беседы?

Итог по проведенным 1-to-1

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

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

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

Что полезного сделать, пока вы собираете контекст

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

Однако это не значит, что в первые неделю-две нельзя сделать ничего полезного. Это отличное время, чтобы зачистить все, обо что вы сами споткнулись.

Запишите, как проходил ваш найм

Комфортны ли были интервалы между собеседованиями и их количество? Было ли по ходу собеседований понятно, какой и когда следующий шаг? Получили ли вы оффер в виде красивого брендированного письма или это был просто неформатированный текст? Легко ли было найти офис и кабинет HR в первый день?

Запишите все, что было неудобно или вызвало вопросы. Оформите список идей и поделитесь в виде фидбека с HR и руководителем. Но именно в виде фидбека, а не критики. Не касайтесь личностей. Вместо что плохо, опишите как можно сделать хорошо.

Запишите, как проходили первые дни в компании

Был ли у вас buddy? Достаточно ли было информации о компании на старте? Может, слишком много информации, и голова пухла? Как быстро вы получили технику? Был ли полезен корпоративный мерч, который вам выдали в первый день? Запишите все, за что зацепился ваш мозг, каждую мелочь.

Моя адаптация была очень комфортной, но через три недели я отправил коллегам из HR список из 30 небольших идей. Большинство они воплотили в жизнь, а позже, на Новый Год, подарили мне крутой рюкзак :)

Автоматизируйте/задокументируйте первые шаги на проекте

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

Составьте видимый план себя как лидера

Я решил сделать это в виде mindmap в miro, который базируется на Team Lead Road Map, но дополнен следующими моментами:

  • Моим опытом тимлида и пониманием, что важно в этой роли.

  • Ссылками на любимые статьи, курсы, книги.

  • Ссылками на документы и инструкции компании, релевантные роли тимлида.

  • Какие обязанности я забрал с предыдущего лида, а что еще предстоит забрать.

  • Какие из лидерских активностей я делегировал.

  • Какие активности относятся к категории muda, и я их постепенно истребляю.

Далее я поделился этим mindmap со всеми тимлидами, с нашим тим-коучем (да, у нас есть такой человек) и с вице-президентом. Также я делюсь им со всеми, кому интересна прокачка в тимлида, как инструкцией: что есть тимлид, что можно прокачать и где взять информацию для прокачки.

Приступаем к действиям

Итак, прошли первые недели. Теперь у нас есть некоторое понимание проекта, список ожиданий от нас, противоречия сторон в понимании проекта и вашей роли.

Это уже хорошие ориентиры для дальнейших действий. Вот еще парочка:

  • Статья Work on what matters поможет определить, куда направить свои усилия после того, как вы снимете все низко висящие фрукты. Как избежать жевания чипсов, то есть выполнения легкой и видимой, но не особо полезной работы.

  • Статья Good process is evolved, not designed в паре со статьей Managing technical quality in a codebase помогают постепенно вывести оптимальный процесс для команды и проекта, вместо декларирования с завтрашнего дня мы Agile и затевания революций.

И еще один совет. Чтобы помочь самому себе в будущем, систематизируйте весь получаемый сейчас опыт. Записывайте, что сработало, а что нет. Как вы внедряли изменения, с каким сопротивлением сталкивались. Например, можно вести brag document. Вот чем он будет полезен:

  • Систематизация полученного опыта

  • Если вдруг загрустили перечитаете и вспомните, сколько всего вы уже сделали

  • Можно найти темы для статей или докладов из своего же опыта - эта статья так и родилась.

  • Поможет при пересмотре зарплаты это готовый список ваших достижений

  • Поможет в подготовке резюме в следующий раз

В общем, практика полезная и непыльная.

А мы переходим к списку того, что я делал в первые месяцы.

Станьте клеем

Метафора с клеем, на мой взгляд, очень удачна и выражает собой 90% ценности лидера в команде и компании. Очень рекомендую посмотреть доклад Tanya Reilly на эту тему. Здесь же приведу примеры того, что можно и нужно склеить, придя в новую команду.

Склейте развалившиеся коммуникации

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

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

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

Сформулируйте единое понимание, зачем существует ваш проект

На каждом 1-to-1 я задавал один и тот же вопрос: Каков общий ландшафт проекта и ключевые ценности для бизнеса?. И я получил очень разные ответы.

Позже мы с командой сформулировали нашу ценность следующим образом:

Мы поставляем данные для принятия стратегических решений, поэтому наши данные должны быть абсолютно корректны, и система должна работать 24x7, чтобы избежать потерь. Сейчас с этой формулировкой знакомы все: ребята в команде, кандидаты на собеседованиях, даже CEO.

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

Отдайте процедурные долги

Тут примеры простые:

  • Согласуйте закупки железа или лицензий, которые давно нужны.

  • Обновите зарплаты тем, кому их давно не обновляли.

  • Согласуйте найм специалистов, которых не хватает в команде.

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

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

Выгоните призраков

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

Такие призраки есть в любой компании. Не стесняйтесь спрашивать "почему так?". Возможно это застарелая и ненужная привычка, бесполезность которой уже никто не замечает, а вы ее видите пока вы новенький.

Ниже примеры того, каких призраков мы с командой разогнали в начале работы:

Нам нужно лучше оценивать задачи

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

Если у вас не аутсорс и не fixed price проекты, попробуйте понять: а бизнесу вообще нужны точные оценки в часах? По моим наблюдениям, чаще нужно четкое понимание как идут дела сейчас, примерные сроки и понимание следующих шагов. Говоря проще, бизнесу нужна уверенность, что вы делаете то, что надо. Чтобы дать такую уверенность, нужны не высеченные в камне оценки, а постоянная коммуникация и выравнивание ожиданий если обстоятельства изменились. И бизнес отлично понимает, что обстоятельства просто не могут не меняться.

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

Бизнес не дает нам заниматься техдолгом, мы постоянно загружены задачами

Еще один классический призрак.

Дэвид Аллен в книге Getting things done очень удачно сравнивает обязательства, которые мы берем на себя, с кредитной картой. Если мы берем новую задачу не зная, где граница наших возможностей это все равно, что сделать покупку в кредит, не зная ни кредитного лимита, ни текущего баланса.

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

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

Определив наш WIP limit и показав его топ-менеджменту, я получил очень прямой и честный ответ Вы сами следите за своей нагрузкой. И вы не можете, а должны заниматься техническим долгом. Довод про перегрузку бизнес-задачами это просто нелепая отмазка. Если задач больше, чем вы можете сделать за раз, просто сообщайте об этом, и будем договариваться.

Так мы изгнали призрака бизнес плохой, и не дает нам делать работу хорошо.

Устраните болевые точки и незавершенку

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

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

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

Это было болью, поскольку мы теряли данные, и это ставило под угрозу основную цель существования нашего проекта консистентные данные в режиме 24x7.

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

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

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

Создайте общедоступные артефакты

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

Проект с высоты птичьего полета

Какое место мы занимаем в бизнесе компании, в чем наше назначение, какие у нас основные челленджи. Мы сделали это в формате презентации, Miro так умеет. С этой презентацией я рассказывал про проект нашему CEO и ее же показываю новым сотрудникам при онбординге.

Высокоуровневая архитектура проекта

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

Хорошую помощь в построении понятных и простых диаграмм может оказать нотация C4 Model, статья Thinking Like An Architect Part 5 и опыт в прохождении system design interview.

Технический роадмап проекта

По сути это временная шкала, отражающая что мы уже сделали, что в фокусе прямо сейчас, что планируем следующим шагом. Отдельным "облаком" - что будем делать дальше, но еще не проработали в деталях (unshaped).Мы не планируем дальше пары шагов вперем, не тратим время на декомпозицю и проработку архитектуры далекого будущего - это наша реализация принципа defer commitment. Засчет этого мы всегда сфокусированы на том, что делаем сейчас и действительно заканчиваем большие задачи, а не попеременно хватаем и бросаем самые горячие картошки.

Визуализация стратегических задач (эпиков)

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

Для эпиков недостаточно разбивки на подзадачи в виде одномерного списка задач в трекере это не отражает все детали, сложности, риски.Поэтому для каждого эпика мы создаем визуализацию, на которой слева направо идут все завершенные/текущие/предстоящие активности, открытые вопросы, артефакты (дизайн-макеты, наброски алгоритмов) и т.д.

С помощью этих визуализаций мы проводим синки и внутри, и вне команды.

Визуализация загрузки команды

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

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

  • Зеленый задачи долгосрочного технического развития. Снижение/предотвращение рисков, снижение operational costs, прокачка observability, testability и прочих ...ility

  • Желтый бизнес-задачи со стандартным приоритетом.

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

  • Красный авария, например, падение на проде. Мы не берем ничего, пока не разберемся с текущей ситуацией.

Этих артефактов достаточно, чтобы сделать работу вашей команды видимой и понятной.

Впрочем, не факт, что другие команды и стейкхолдеры будут смотреть сюда. Но формирование новых коллективных привычек это тема отдельной статьи. А артефакты в любом случае помогут вам и команде.

Что шло не по плану

Я все еще не пишу код

На эту тему я переживал еще на этапе собеседования. Я привык работать, не отрывая руки от кода. Тут же выглядело так, что будет не до кода, поскольку много высокоуровневых задач и people management да еще и новый стек надо освоить.

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

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

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

Сейчас я близок к тому, чтобы взяться за код. Вот что я могу посоветовать здесь:

  • Устраняйте муду, которая пожирает ваше время. Заменяйте митинги на общедоступные артефакты. Устраняйте ручные действия, вызванные несовершенством процессов и инструментов. Очень много работы можно просто взять и выбросить.

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

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

Мою систему работы с задачами разнесло в щепки

Да, это был момент настоящей паники

В один вовсе не прекрасный день я понял, что моя система работы с задачами перестала работать. Изначально она базировалась на техниках Максима Дорофеева, и я не один год ее дотачивал. Она идеально работала больше пяти лет, но с текущим количеством и уровнем задач мою систему разнесло в щепки. Я потерял контроль над происходящим.

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

  • Джедайские техники Максима Дорофеева. Эту книгу я читал и раньше, но перечитать оказалось совсем не лишним.

  • "Антитайм-менеджмент" Николая Додонова. На эту книгу очень много отсылок в Джедайских техниках, и эта книга двано была у меня в списке на чтение. Но я прокрастинировал, пока не "прижало". Прочтя могу сказать, что это отличная книга, которая раскрывает, как работает наш мозг в условиях перегрузки, и как построить постоянный продуктивный ритм работы.

  • Getting Things Done Дэвида Аллена. Еще одна книга, чтение которой я откладывал несколько лет. Исчерпывающее, хотя и сухое, руководство о том, как быть готовым к любой нагрузке. Вероятно, большинству система покажется слишком изощренной, но эта книга больше всего помогла справиться с нагрузкой. А со временем некоторые куски этой системы начали отваливаться сами собой, когда наплыв задач уменьшился. Некоторые практики становятся ненужными, когда вместо вороха дел у вас появляется долгосрочный горизонт и понимание, что важно. Эта книга помогает их найти.

  • То, как мы работаем не работает Тони Шварца. Книга про базовую гигиену труда и отдыха. Рекомендую прочитать ее всем, кто чувствует перегруз на работе и всем, у кого есть подчиненные.

По мере чтения книг я перестраивал систему, пока она не дошла до нужной отказоустойчивости. Но больше всего помогла смена отношения к задачам, в чем помогли "Антитайм-менеджмент" и То, как мы работаем не работает.

Выводы

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

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

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

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

Статья получилась огромной, но надеюсь она поможет лидерам в адаптации на новой работе, потому что это дело не такое уж простое. Успехов вам!

Список материалов

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru