Как стать автором
Обновить

Путь воина: как стать Tech Lead и не сойти с ума

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.6K

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

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

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

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

  • Разработка и поддержка архитектуры системы;

  • Оценка масштабируемости и безопасности системы;

  • Автоматизация процессов разработки;

  • Использование инструментов статического анализа кода (например, SonarQube) для контроля качества;

  • Распределение задач между членами команды и расстановка приоритетов;

  • Анализ потенциальных рисков и подготовка планов их минимизации;

  • Контроль выполнения задач и попытки не сорвать дедлайны;

  • Коммуникационные задачи (взаимодействие с бизнесом и другими отделами);

  • Обучение и развитие команды;

  • … и еще десяток увлекательных задач, в зависимости от специфики проекта.

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

А оно вообще вам надо: потенциальные проблемы выбранного пути

Сразу скажу, что не всем разработчикам надо метить в управленцы и уж точно далеко не всем надо в топы. Роль управленца часто разбивает “розовые очки”, оставляя за бортом идеализм.  Поэтому просто спросите себя, прежде чем начать путь к новой роли - зачем оно вам нужно?  Какие цели вы преследуете? И точно ли уверены, что хотите не только заниматься кодом, но и отвечать за планирование работы, делегировать задачи и решать вопросы не только внутри команды разработчиков, но и внутри бизнеса, где главная цель - выгода и деньги. Готовы ли вы принимать решения и брать на себя ответственность в условиях, когда нужно выбрать между плохим и очень плохим вариантом?  

Подсвечу несколько проблем этой роли, чтобы расставить все точки над i. 

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

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

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

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

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

Определитесь с мотивацией, выделите все плюсы и минусы… и вперед! 

Архитектурное мышление и бизнес-логика 

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

Архитектурное мышление: от монолита до микросервисов

По моему опыту, большая часть проблем в разработке (до 70%) может быть связана с недостатками архитектуры. Например, переход от монолита к микросервисам может спасти проект от коллапса, если нагрузка на систему постоянно растет. Но как понять, когда это нужно делать? Архитектурное мышление требует глубокого понимания масштабируемости и принципов чистой архитектуры. Как его прокачать? 

  • Начните с изучения case studies успешных компаний: анализируйте, как они решали архитектурные вызовы на разных этапах роста. Например, как Netflix масштабировал свою инфраструктуру.

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

  • Участвуйте в code review других команд и проектов — это поможет увидеть разные архитектурные решения в действии.

Автоматизация: как сэкономить время и щепотку нерв с помощью CI/CD?

Понимаю, от самого слова «автоматизации» уже слегка дёргается глаз и, кажется, не использует его только ленивый, но это стандарт в современной инженерии. Она способна повысить скорость разработки, свести к минимуму ошибки и улучшить качество продукта. Исследование DORA (DevOps Research and Assessment) показывает, что высокопроизводительные команды чаще используют CI/CD и автоматизацию.

  • Начните с тестирования: настройте автоматические тесты для каждого нового коммита. Это поможет быстро находить баги на ранних этапах.

  • Добавьте статический анализ кода: используйте инструменты, такие как SonarQube, чтобы автоматически проверять качество кода.

  • Автоматизируйте деплой: настройте автоматический деплой на staging и production. Это сократит время выпуска новых версий и уменьшит риск человеческой ошибки.

  • Используйте готовые инструменты: например, Jenkins, GitLab CI/CD или GitHub Actions. Они уже содержат множество готовых решений для автоматизации.

  • Обучите команду: убедитесь, что все участники команды понимают, как работает CI/CD и как им пользоваться.

А еще не забываем про базовый набор техлида: проведение code review, включая TTD, мониторинг и логирование, знание баз данных и контейнеризации (Docker, Kubernetes). 

Бизнес-ориентированность: коммуникация между миром разработчиков и миром бизнеса

База: если вы не можете объяснить бизнесу, зачем нужна ваша идея, значит, она никому не нужна. 

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

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

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

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

  • Избегайте технического слэнга: используйте простые слова. Например, вместо "реализуем RESTful API" скажите: "сделаем так, чтобы наша система могла легко взаимодействовать с другими сервисами".

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

Мотивация и искусство принятия решений

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

Лидерство: как вдохновить команду, когда все горит?

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

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

  • Разделение задач: убедитесь, что нагрузка распределена равномерно. Если кто-то перегружен, помогите ему делегировать часть задач.

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

  • Поддержка: уделите время каждому участнику команды. Спросите, как они справляются, и предложите помощь. Иногда простой разговор может творить чудеса.

Искусство принятия решений: как не бояться ошибаться, но всегда учиться?

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

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

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

Процессы: методология и документация

Без лишних предисловий еще одна база: процессы> код. 

Agile и Scrum: как адаптировать методологии под свою команду? 

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

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

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

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

Документация: как сделать ее другом, а не противником?

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

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

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

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

  • Храните всё в одном месте: используйте такие инструменты, как Confluence, Notion, Яндекс Вики, чтобы вся документация была доступна в одном месте. Ничего не бесит так сильно, как тысяча и одна ссылка на разные папки в облаках.

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

Путь воина

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

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

Еще больше о карьере, работе в IT и нейронках читайте в моем телеграм канале. Подписывайтесь и давайте строить карьеру вместе! 

Теги:
Хабы:
+5
Комментарии1

Публикации

Работа

Ближайшие события