Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.
Как гласит народный афоризм, ошибочно приписываемый Александру Суворову, плох тот солдат, который не мечтает стать генералом. Не можем уверенно утверждать, что на военной службе дела обстоят именно так, но в разработке программного обеспечения точно все не так однозначно.
Помимо очевидного факта, что руководителей требуется значительно меньше, чем подчиненных, и, возможно, менее очевидного, что не у всех сотрудников хватает компетенции и навыков для работы в качестве управленца, есть еще и иная сторона вопроса: далеко не все разработчики мечтают о росте в менеджерскую вертикаль. А те, кто мечтают, не всегда осознают, что им это сулит. Бывают даже случаи, когда разработчик пробует себя в качестве руководителя группы, а потом, получив этот опыт, предпочитает вернуться к жизни инженера и продолжить развиваться исключительно в прикладных технических навыках.
Содержание
Как это вообще — быть тимлидом?
В мире промышленной разработки софта существует великое множество различных должностей, позиций и терминов для описания технических менеджеров — руководителей, среди подчиненных которых нет других руководителей. К ним относится и позиция лидера команды во всех ее видах. Несмотря на многообразие названий этой должности в российской IT-культуре — Team Lead, Lead Developer, Head of …, руководитель группы/команды/направления и даже «Лидер по IT», — от человека в данной роли везде ожидаются примерно одинаковые функции:
- Коммуникация между производственной командой и внешними (по отношению к команде) коллегами, заказчиками и вышестоящими руководителями
- Управление потоком задач, которые поступают в команду, и контроль за их выполнением. Сюда же — принятие необходимых технических решений
- Непосредственное управление выделенными на команду ресурсами — как человеческими, так и материальными, оптимизация производственного процесса
- Оперативное решение проблем или, при невозможности их решения, передача их вышестоящим руководителям
- Повышение производительности команды, профессиональный рост ее участников и трансляция их интересов бизнесу.
Детали могут отличаться в зависимости от размера компании и процессов. Какие-то из этих функций могут осуществляться совместно с другими ролями, например, менеджеры проектов, менеджеры по продукту, аналитики, архитекторы.
Неизменным остается то, что тимлид руководит командой, которая непосредственно осуществляет производственный процесс — будь то разработчики, тестировщики или полноценная кросс-функциональная команда, также известная как “Agile feature team”.
Из этих функций вытекают некоторые особенности, которые существенно отличают рабочий процесс тимлида от линейного разработчика. Давайте рассмотрим некоторые изменения, которые произойдут в вашей профессиональной деятельности, если вы решите принять подобную ответственность.
Качество продукта — теперь ваше дело
Теперь вас будут спрашивать, если на вашем участке работы возникли технические проблемы — особенно если это повлекло за собой финансовые или репутационные риски для бизнеса. Если авария случилась у вашей команды, то и ответственность будет лежать на ваших плечах.
Поэтому в ваших интересах обеспечивать качество реализуемых решений. С одной стороны, это дает вам небывалые возможности: теперь вы сможете решать задачи куда более высокого уровня, чем в роли линейного разработчика, имея для этого большой ассортимент средств. Вашими инструментами теперь являются не только фреймворки, платформы и программные комплексы, но и сами люди в вашей команде.
С большой вероятностью, именно вы будете принимать (если захотите, конечно) финальные решения об используемых технологиях, покрытии продукта тестами, архитектуре приложения, методологиях разработки. С другой стороны, как гласит древнейшая пословица (также известная как принцип Питера Паркера), — к большой власти прилагается большая ответственность, и все возможные негативные последствия этих решений, как технические, так и сугубо бизнесовые, вернутся к вам сторицей.
Например, разработчик что-то недосмотрел на этапе Code Review, и ваше приложение не прошло модерацию в App Store? Свежий релиз, напичканный новыми библиотеками, уронил прод? У каждого десятого юзера не нажимается кнопка, ��отому что вы решили не тестировать устаревшую операционную систему? В вашем проекте накопилось столько технического долга, что ваши сотрудники ошибаются в оценке даже простейших задач в несколько раз? Маркетинг закупил трафик на миллионы, а ваш сервис упал от нагрузки, тем самым уничтожив рекламный бюджет впустую? Даже если ни в одном из случаев это не ваша вина — все это ваша ответственность.
Кроме того, в крупных B2B и B2C продуктах разработка зачастую является одной из последних линий поддержки, и разнообразные хотелки, жалобы и претензии клиентов имеют все шансы попасть к вам на стол. Особенно если соответствующий департамент и/или менеджеры по работе с клиентами не обладают необходимой информацией или полномочиями по каким-либо вопросам.
Все проблемы команды — теперь ваши проблемы
В команде всегда найдутся те, кто не успел сделать задачу к дедлайну, решил уволиться, только присоединился к команде и еще ничего не понимает, хочет больше зарплату, просит другой график работы, или забывает отмечать время работы в Jira, ушел в отпуск и не оставил информацию по текущим задачам. Теперь это в том числе и ваши проблемы, и вам с ними жить.
Все, что вы регулярно наблюдали в качестве разработчика, но что решалось без вашего участия, теперь требует непосредственного вашего внимания, действий, учета рисков при планировании ресурсов и понимания, что вообще со всем этим делать. При этом нет какого-то стандартного решения таких проблем — они могут отличаться от команды к команде, и сформировать некий майндсет для принятия подобных решений можно только на опыте. Сталкиваясь с таким в первый раз, мало кто может среагировать не то что компетентно, а хотя бы просто адекватно. И очень здорово, если найдутся старшие товарищи, с которыми можно посоветоваться.
Поэтому вам понадобится немалая выдержка и некоторая личная психологическая зрелость, чтобы эти решения были не только эффективными, но и не требовали от вас чрезмерной нагрузки, в том числе и эмоциональной. Типичная (ошибочная) линия поведения начинающих руководителей — пытаться закрыть все дырки самостоятельно, своим ресурсом. Чаще всего это приводит к тому самому выгоранию, а научиться делегировать ответственность своим тиммейтам и понимать, где, что и кому можно доверить — важнейший для руководителя навык. И он обычно оттачивается годами.
Писать код — теперь не обязанность, а роскошь
Чем выше уровень специалиста в производственной иерархии, тем выше уровень и масштаб задач, которые он решает. Как прораб на стройке не кладет штукатурку, а главный инженер на заводе — не стоит за станком, так и тимлид не решает спринтовые задачи и не фиксит баги — во всяком случае, пока этого не требуют обстоятельства. В достаточно крупных инженерных компаниях это правило распространяется даже на линейных разработчиков высоких грейдов: тамошние сеньоры практически не пишут код, они пишут дизайн-документы, планы развития, емейлы, участвуют в встречах, обучают новобранцев.
В компаниях меньшего размера этим и занимается тимлид. Конечно, тимлиду не запрещают программировать — просто у него слишком много других забот. Побаловаться с кодом теперь получится только в свободное от всего остального время. Это одна из основных причин, по которым некоторые разработчики высокой квалификации отказываются от управленческих позиций, — чтобы продолжить повышать свою квалификацию именно в качестве программиста.
Конечно, стоит оговориться, что это сильно зависит от размера команды и организации — многие небольшие компании ищут в качестве тимлида типаж «играющего тренера». И на этой позиции менеджерские обязанности сочетаются с задачами программирования в плюс-минус равных пропорциях. Это очень хороший вариант для тех разработчиков, кто хочет примерить на себя шкурку менеджера, но не погружаться в этот омут сразу с головой.
Интересы бизнеса — теперь и ваши интересы
Наиболее значимым изменением в корпоративной жизни сотрудника при переходе с линейной должности на руководящую является необходимость выступать посредником различных интересов, которые вступают в противоречие друг с другом. В бизнес-процессах любого коммерческого производственного предприятия (к которым относятся и компании, разрабатывающие ПО) можно выделить три основных роли участников:
- Пользователи, они же клиенты. Они являются потребителем продукта и обеспечивают ему выручку. Их интересы включают в себя получение ценности с помощью предлагаемого им продукта. И именно их явные и неявные желания, ожидания и боли, связанные с этим продуктом, задают общее направление производственному процессу.
- Производство — люди, которые создают продукт — от разработчиков и тестировщиков до иллюстраторов и копирайтеров. В их сферы интересов входят качество и комфорт производственных процессов, условия труда, личный профессиональный рост, признание их заслуг компанией и разные личные амбиции.
- Бизнес — люди, которые являются владельцами или инвесторами компании. Они заинтересованы в рентабельности компании, репутации бренда, росте коллектива и производственных мощностей, а также в выполнении различных нормативов — например, в соблюдении законов и требований регулирующих организаций.
Это упрощенная схема — она в большей степени применима к продуктовым компаниям, где продукт рождается как раз в пересечении сфер интересов этих групп. С некоторыми уточнениями она может быть экстраполирована и на инженерные компании с другой бизнес-моделью. Взаимодействие этих групп с продуктом и друг другом можно представить в виде диаграммы Эйлера-Венна:
У каждой из групп есть как свои изолированные интересы, так и некоторые пересечения — линейные сотрудники производственного блока (не только разработчики, но и архитекторы, девопсы, тестировщики и другие, в чьи функции входит решение поставленных технологических задач) не обязаны учитывать, как их департамент взаимодействует с пользователями, продуктом и бизнесом. В то время как для тимлида это является неизбежным и едва ли не ключевым — ведь его функция уже не ограничивается исключительно производственным процессом.
Между бизнесом и производством всегда есть некоторый конфликт. Если упрощать и возводить в абсолют — бизнес всегда стремится получить максимум прибыли при минимуме расходов (включая расходы на производство, в том числе, оплату труда). В то время как люди, занятые разработкой, хотели бы зарабатывать как можно больше, а делать, — если не как можно меньше вообще, то хотя бы как можно меньше того, что им не хочется делать. Помимо этого разработчики хотят решать интересные для себя задачи — пробовать новые инструменты и технологии, делать что-то сверх требуемого минимума, писать тесты, рефакторить неудобный код и другим образом творчески самореализовываться. Бизнес же рад отказаться от всех возможных лишних трат времени и ресурса и хотел бы добавлять как можно больше ценности в продукт в единицу времени.
Поэтому невозможно переоценить роль тимлида в взаимодействии между ними — именно он является медиатором и точкой, в которой эти, зачастую противоположные, группы должны сойтись к некоторому общему знаменателю. Именно он ответственен за то, чтобы в каждом отдельном случае найти компромисс и по максимуму удовлетворить потребности всех сторон.
Это ответственность, и она требует большого списка софт-скиллов — необходимо хорошо слушать, и убеждать, и доносить свою позицию до людей с разной подготовкой, независимо от их положения в иерархии, и знать, где и чем придется пожертвовать (это неизбежно). Тем, кто попадает в руководители из непосредственно разработчиков, в начале бывает очень сложно — они не привыкли мыслить в такой парадигме.
Придется много общаться с людьми
Тимлид — должность в первую очередь про коммуникацию. В некотором роде он является прокси между своей командой и внешним миром, пропуская через себя колоссальные объемы информации и поддерживая взаимодействие с немалым количеством людей.
Чем крупнее компания, тем больше круг контактов у такого руководителя. Часто он в несколько раз больше, чем его собственная команда. В дополнение к этому, выход на уровень управления автоматически означает, что придется так или иначе соприкоснуться с внутрикорпоративной политикой — попасть в отдельный слой отношений между сотрудниками компании, который не регламентируется и не регулируется только лишь профессиональными обязанностями и этикой. Это, на самом деле, вещь в себе, и далеко не всем комфортно, удобно и приятно с этим соприкасаться. В больших же компаниях с высоким уровнем внутренней конкуренции вообще нужно держать ухо востро, потому что ваши интересы неизбежно будут входить в конфликт с интересами кого-то еще, со всеми вытекающими последствиями.
Все люди разные, не все одинаково компетентны и осведомлены о деталях рабочего процесса, не со всеми общение может складываться легко и непринужденно. С некоторыми вообще может возникать явный конфликт, при этом задачи как-то решать все равно придется. Кроме того, нередко приходится отстаивать собственное мнение и право провести те или иные свои решения — и этот навык является одним из абсолютно необходимых для тимлида, и именно его отсутствие часто является причиной отказа в повышении до этой позиции.
Тимлидов редко ищут там, где нет проблем
Как показывают различные кадровые исследования, большинство компаний предпочитает растить тимлидов внутри, из уже имеющихся специалистов. Причины этого достаточно прозаичны — тимлиду для эффективной работы нужно иметь огромное количество «внутренних» знаний о конкретной предметной области, продукте, команде и компании. И порой аккумулировать эти данные приходится годами. Передать их все человеку «с улицы» крайне трудно, для этого в компании должен быть специально поставленный процесс онбординга сотрудников, и далеко не все компании вообще могут себе это позволить, либо не считают это целесообразным. А вот нужда в руководителях команд назревает крайне быстро — практически в любой компании, где больше 10 человек, как минимум один такой специалист необходим.
Если команда собирается с нуля, то вариант с повышением кого-то из топовых разработчиков отсутствует, и приходится проводить отбор с рынка. С точки зрения потенциального кандидата — это лучший вариант. Как раз из-за того, что проект еще новый — в нем не накопился техдолг, мало легаси, все люди новые (между ними нет сложившихся неформальных отношений), и можно отлично себя зарекомендовать.
В сложившихся компаниях, если не получилось найти подходящего специалиста внутри, и приходится искать его снаружи, нередко можно диагностировать какие-то провалы в процессах, рабочих отношениях или экономической модели. Они еще обильно сдобрены немалым количеством контр-продуктивных практик, которые реализуются по инерции, потому что так принято.
И обо всем этом на собеседовании никто будущему руководителю рассказывать не поспешит. Это добавляет ответственности потенциальному тимлиду уже на стадии собеседования — если не задать правильные вопросы и не идентифицировать предстоящие проблемы, то после получения этой должности можно столкнуться и с непреодолимыми проблемами, которые значительно попортят опыт работы и желание продолжать сотрудничество.
Это просто весьма утомительная работа
Как можно догадаться по описанному списку разнообразных проблем, которые так или иначе одним из концов упираются в тимлида, на этой позиции человек сталкивается с очень серьезной нагрузкой. Как справедливо пишет википедия:
Исследования показывают, что работа руководителя низового звена является напряженной и наполненной разнообразными действиями. Она характеризуется частыми перерывами, переходами от одной задачи к другой. Задачи сами по себе потенциально краткие: в одном исследовании обнаружено, что время, затрачиваемое мастером в среднем на выполнение одного задания равнялось 48 секундам. Временной период для реализации решений, принимаемых мастером, также короткий.
Для успешного выполнения требований от тимлида требуется, во-первых, держать в голове много мелких деталей о принципах работы продукта и используемых в нем технологий. Во-вторых — умение контролировать одновременно кратко-, средне- и долгосрочные вопросы, регулярно переключаясь между ними. Это в свою очередь влечет очень высокие требования к навыку управлению собственным временем. В относительно успешном продукте у тимлида много открытых вопросов, которые он должен решить. И их всегда больше, чем он успевает обработать. Поэтому важно умение их грамотно приоритизировать и приложить нужные усилия в нужный момент.
Гипотетически, вы всегда можете найти крайнего среди своих подчиненных и озадачить его. Однако руководители, систематически решающие проблемы именно таким образом, не пользуются большим уважением ни у коллег, ни у членов команды, и имеют мало шансов продвинуться дальше в управленческой вертикали.
Выводы
Поскольку мы в этой статье сфокусировались на сложностях, с которыми сталкивается тимлид, может сложиться впечатление, что это неблагодарная и чрезмерно тяжелая работа. На самом деле — это соразмерная плата за огромный пласт очень полезного опыта, новые точки личного и профессионального роста, возможность в куда большей степени влиять на продукт. И самое главное, — за возможность решать более сложные и менее типовые задачи, а ведь это один из главных мотиваторов любого инженера и одна из движущих сил, сделавших многих из нас разработчиками.
Абсолютно точно не стоит ее бояться, надо лишь здраво оценивать свои возможности и соизмерять их с теми ожиданиями, которые к вам предъявляет эта должность. Кроме того, разумно предположить, что чем выше ответственность, тем выше предполагается за нее и компенсация.
Оправдывает ли себя эта ответственность и сопутствующая ей смена условий работы — каждый решает сам. Есть немало других направлений профессионального развития, не включающих в себя менеджерские функции. А может быть вы прочитали это и поняли, что это именно то, чего вы хотите? В таком случае мы можем лишь поддержать подобные устремления и пожелать удачи на этом нелегком пути.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 18:26:49 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="l5XerLhAyGUIK5rAYYb_DlfpmM7yryltlqb_UaJ-eKJ4RBWbSj5lBb5ovlhtiQ95l-C1ZPqY188rRmUF8HmfzA";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?</title>
<meta name="description" content="Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/vsem-li-nado-byt-timlidami">
<meta property="og:title" content="Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?">
<meta property="og:description" content="Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.">
<meta property="og:image" content="https://ru.hexlet.io/vite/assets/blog_post-7eTyeLLt.webp">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="YiCHu8iKFWT0sqFLACz9SbKZU_KL4IZ4q_5yylhKYc-N8UyMOvS4BELxhdMMIw0-cpB-WIPXeNoWHuieCk2GoQ" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="/vite/assets/blog_post-7eTyeLLt.webp"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--ca5a6047d43e5c0f6d07b52e845817fa2c47ef02/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-bro.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T18:26:49.058Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"QhcURVx7Gb_0kuQ5njY-p46HwfzQ-_BiEgTx32Xf6FKtxt9yrgW030LRwKGSOc7QTo7sVtjMDsCv5GuLN9gPPA","post":{"model_name":"BlogPost","category":{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"},"creator":{"public_name":"Alexander Uskov","id":322721,"is_tutor":false},"tags":[{"id":1119,"slug":"bez-steka","name":"Без стека"}],"id":1657,"title":"Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?","slug":"vsem-li-nado-byt-timlidami","state":"published","summary":"Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.","votes_count":9,"created_at":"2021-12-22T09:57:30.794Z","published_at":"2021-12-23T13:42:30.742Z","body":"**Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.**\n\nКак гласит народный афоризм, ошибочно приписываемый Александру Суворову, плох тот солдат, который не мечтает стать генералом. Не можем уверенно утверждать, что на военной службе дела обстоят именно так, но в разработке программного обеспечения точно все не так однозначно. \n\nПомимо очевидного факта, что руководителей требуется значительно меньше, чем подчиненных, и, возможно, менее очевидного, что не у всех сотрудников хватает компетенции и навыков для работы в качестве управленца, есть еще и иная сторона вопроса: далеко не все разработчики мечтают о росте в менеджерскую вертикаль. А те, кто мечтают, не всегда осознают, что им это сулит. Бывают даже случаи, когда разработчик пробует себя в качестве руководителя группы, а потом, получив этот опыт, предпочитает вернуться к жизни инженера и продолжить развиваться исключительно в прикладных технических навыках.\n\n::programs\n\n## Содержание\n\n## Как это вообще — быть тимлидом?\n\nВ мире промышленной разработки софта существует великое множество различных должностей, позиций и терминов для описания технических менеджеров — руководителей, среди подчиненных которых нет других руководителей. К ним относится и позиция лидера команды во всех ее видах. Несмотря на многообразие названий этой должности в российской IT-культуре — Team Lead, Lead Developer, Head of …, руководитель группы/команды/направления и даже «Лидер по IT», — от человека в данной роли везде ожидаются примерно одинаковые функции:\n- Коммуникация между производственной командой и внешними (по отношению к команде) коллегами, заказчиками и вышестоящими руководителями\n- Управление потоком задач, которые поступают в команду, и контроль за их выполнением. Сюда же — принятие необходимых технических решений\n- Непосредственное управление выделенными на команду ресурсами — как человеческими, так и материальными, оптимизация производственного процесса\n- Оперативное решение проблем или, при невозможности их решения, передача их вышестоящим руководителям\n- Повышение производительности команды, профессиональный рост ее участников и трансляция их интересов бизнесу.\n\nДетали могут отличаться в зависимости от размера компании и процессов. Какие-то из этих функций могут осуществляться совместно с другими ролями, например, менеджеры проектов, менеджеры по продукту, аналитики, архитекторы. \n\nНеизменным остается то, что тимлид руководит командой, которая непосредственно осуществляет производственный процесс — будь то разработчики, тестировщики или полноценная кросс-функциональная команда, также известная как “Agile feature team”. \n\nИз этих функций вытекают некоторые особенности, которые существенно отличают рабочий процесс тимлида от линейного разработчика. Давайте рассмотрим некоторые изменения, которые произойдут в вашей профессиональной деятельности, если вы решите принять подобную ответственность.\n\n## Качество продукта — теперь ваше дело \n\nТеперь вас будут спрашивать, если на вашем участке работы возникли технические проблемы — особенно если это повлекло за собой финансовые или репутационные риски для бизнеса. Если авария случилась у вашей команды, то и ответственность будет лежать на ваших плечах.\n\nПоэтому в ваших интересах обеспечивать качество реализуемых решений. С одной стороны, это дает вам небывалые возможности: теперь вы сможете решать задачи куда более высокого уровня, чем в роли линейного разработчика, имея для этого большой ассортимент средств. Вашими инструментами теперь являются не только фреймворки, платформы и программные комплексы, но и сами люди в вашей команде. \n\nС большой вероятностью, именно вы будете принимать (если захотите, конечно) финальные решения об используемых технологиях, покрытии продукта тестами, архитектуре приложения, методологиях разработки. С другой стороны, как гласит древнейшая пословица (также известная как [принцип Питера Паркера](https://en.wikipedia.org/wiki/With_great_power_comes_great_responsibility)), — к большой власти прилагается большая ответственность, и все возможные негативные последствия этих решений, как технические, так и сугубо бизнесовые, вернутся к вам сторицей. \n\nНапример, разработчик что-то недосмотрел на этапе Code Review, и ваше приложение не прошло модерацию в App Store? Свежий релиз, напичканный новыми библиотеками, уронил прод? У каждого десятого юзера не нажимается кнопка, потому что вы решили не тестировать устаревшую операционную систему? В вашем проекте накопилось столько технического долга, что ваши сотрудники ошибаются в оценке даже простейших задач в несколько раз? Маркетинг закупил трафик на миллионы, а ваш сервис упал от нагрузки, тем самым уничтожив рекламный бюджет впустую? Даже если ни в одном из случаев это не ваша вина — все это ваша ответственность. \n\nКроме того, в крупных B2B и B2C продуктах разработка зачастую является одной из последних линий поддержки, и разнообразные хотелки, жалобы и претензии клиентов имеют все шансы попасть к вам на стол. Особенно если соответствующий департамент и/или менеджеры по работе с клиентами не обладают необходимой информацией или полномочиями по каким-либо вопросам.\n\n## Все проблемы команды — теперь ваши проблемы\n\nВ команде всегда найдутся те, кто не успел сделать задачу к дедлайну, решил уволиться, только присоединился к команде и еще ничего не понимает, хочет больше зарплату, просит другой график работы, или забывает отмечать время работы в Jira, ушел в отпуск и не оставил информацию по текущим задачам. Теперь это в том числе и ваши проблемы, и вам с ними жить. \n\nВсе, что вы регулярно наблюдали в качестве разработчика, но что решалось без вашего участия, теперь требует непосредственного вашего внимания, действий, учета рисков при планировании ресурсов и понимания, что вообще со всем этим делать. При этом нет какого-то стандартного решения таких проблем — они могут отличаться от команды к команде, и сформировать некий майндсет для принятия подобных решений можно только на опыте. Сталкиваясь с таким в первый раз, мало кто может среагировать не то что компетентно, а хотя бы просто адекватно. И очень здорово, если найдутся старшие товарищи, с которыми можно посоветоваться.\n\nПоэтому вам понадобится немалая выдержка и некоторая личная психологическая зрелость, чтобы эти решения были не только эффективными, но и не требовали от вас чрезмерной нагрузки, в том числе и эмоциональной. Типичная (ошибочная) линия поведения начинающих руководителей — пытаться закрыть все дырки самостоятельно, своим ресурсом. Чаще всего это приводит к тому самому выгоранию, а научиться делегировать ответственность своим тиммейтам и понимать, где, что и кому можно доверить — важнейший для руководителя навык. И он обычно оттачивается годами. \n\n## Писать код — теперь не обязанность, а роскошь\n\nЧем выше уровень специалиста в производственной иерархии, тем выше уровень и масштаб задач, которые он решает. Как прораб на стройке не кладет штукатурку, а главный инженер на заводе — не стоит за станком, так и тимлид не решает спринтовые задачи и не фиксит баги — во всяком случае, пока этого не требуют обстоятельства. В достаточно крупных инженерных компаниях это правило распространяется даже на линейных разработчиков высоких грейдов: тамошние сеньоры практически не пишут код, они пишут дизайн-документы, планы развития, емейлы, участвуют в встречах, обучают новобранцев. \n\nВ компаниях меньшего размера этим и занимается тимлид. Конечно, тимлиду не запрещают программировать — просто у него слишком много других забот. Побаловаться с кодом теперь получится только в свободное от всего остального время. Это одна из основных причин, по которым некоторые разработчики высокой квалификации отказываются от управленческих позиций, — чтобы продолжить повышать свою квалификацию именно в качестве программиста.\n\nКонечно, стоит оговориться, что это сильно зависит от размера команды и организации — многие небольшие компании ищут в качестве тимлида типаж «играющего тренера». И на этой позиции менеджерские обязанности сочетаются с задачами программирования в плюс-минус равных пропорциях. Это очень хороший вариант для тех разработчиков, кто хочет примерить на себя шкурку менеджера, но не погружаться в этот омут сразу с головой.\n\n## Интересы бизнеса — теперь и ваши интересы\n\nНаиболее значимым изменением в корпоративной жизни сотрудника при переходе с линейной должности на руководящую является необходимость выступать посредником различных интересов, которые вступают в противоречие друг с другом. В бизнес-процессах любого коммерческого производственного предприятия (к которым относятся и компании, разрабатывающие ПО) можно выделить три основных роли участников: \n\n- Пользователи, они же клиенты. Они являются потребителем продукта и обеспечивают ему выручку. Их интересы включают в себя получение ценности с помощью предлагаемого им продукта. И именно их явные и неявные желания, ожидания и боли, связанные с этим продуктом, задают общее направление производственному процессу.\n- Производство — люди, которые создают продукт — от разработчиков и тестировщиков до иллюстраторов и копирайтеров. В их сферы интересов входят качество и комфорт производственных процессов, условия труда, личный профессиональный рост, признание их заслуг компанией и разные личные амбиции.\n- Бизнес — люди, которые являются владельцами или инвесторами компании. Они заинтересованы в рентабельности компании, репутации бренда, росте коллектива и производственных мощностей, а также в выполнении различных нормативов — например, в соблюдении законов и требований регулирующих организаций.\n \nЭто упрощенная схема — она в большей степени применима к продуктовым компаниям, где продукт рождается как раз в пересечении сфер интересов этих групп. С некоторыми уточнениями она может быть экстраполирована и на инженерные компании с другой бизнес-моделью. Взаимодействие этих групп с продуктом и друг другом можно представить в виде диаграммы Эйлера-Венна:\n\n\n\nУ каждой из групп есть как свои изолированные интересы, так и некоторые пересечения — линейные сотрудники производственного блока (не только разработчики, но и архитекторы, девопсы, тестировщики и другие, в чьи функции входит решение поставленных технологических задач) не обязаны учитывать, как их департамент взаимодействует с пользователями, продуктом и бизнесом. В то время как для тимлида это является неизбежным и едва ли не ключевым — ведь его функция уже не ограничивается исключительно производственным процессом. \n\nМежду бизнесом и производством всегда есть некоторый конфликт. Если упрощать и возводить в абсолют — бизнес всегда стремится получить максимум прибыли при минимуме расходов (включая расходы на производство, в том числе, оплату труда). В то время как люди, занятые разработкой, хотели бы зарабатывать как можно больше, а делать, — если не как можно меньше вообще, то хотя бы как можно меньше того, что им не хочется делать. Помимо этого разработчики хотят решать интересные для себя задачи — пробовать новые инструменты и технологии, делать что-то сверх требуемого минимума, писать тесты, рефакторить неудобный код и другим образом творчески самореализовываться. Бизнес же рад отказаться от всех возможных лишних трат времени и ресурса и хотел бы добавлять как можно больше ценности в продукт в единицу времени. \n\nПоэтому невозможно переоценить роль тимлида в взаимодействии между ними — именно он является медиатором и точкой, в которой эти, зачастую противоположные, группы должны сойтись к некоторому общему знаменателю. Именно он ответственен за то, чтобы в каждом отдельном случае найти компромисс и по максимуму удовлетворить потребности всех сторон.\n\nЭто ответственность, и она требует большого списка софт-скиллов — необходимо хорошо слушать, и убеждать, и доносить свою позицию до людей с разной подготовкой, независимо от их положения в иерархии, и знать, где и чем придется пожертвовать (это неизбежно). Тем, кто попадает в руководители из непосредственно разработчиков, в начале бывает очень сложно — они не привыкли мыслить в такой парадигме.\n\n## Придется много общаться с людьми\n\nТимлид — должность в первую очередь про коммуникацию. В некотором роде он является прокси между своей командой и внешним миром, пропуская через себя колоссальные объемы информации и поддерживая взаимодействие с немалым количеством людей. \n\nЧем крупнее компания, тем больше круг контактов у такого руководителя. Часто он в несколько раз больше, чем его собственная команда. В дополнение к этому, выход на уровень управления автоматически означает, что придется так или иначе соприкоснуться с внутрикорпоративной политикой — попасть в отдельный слой отношений между сотрудниками компании, который не регламентируется и не регулируется только лишь профессиональными обязанностями и этикой. Это, на самом деле, вещь в себе, и далеко не всем комфортно, удобно и приятно с этим соприкасаться. В больших же компаниях с высоким уровнем внутренней конкуренции вообще нужно держать ухо востро, потому что ваши интересы неизбежно будут входить в конфликт с интересами кого-то еще, со всеми вытекающими последствиями. \n\nВсе люди разные, не все одинаково компетентны и осведомлены о деталях рабочего процесса, не со всеми общение может складываться легко и непринужденно. С некоторыми вообще может возникать явный конфликт, при этом задачи как-то решать все равно придется. Кроме того, нередко приходится отстаивать собственное мнение и право провести те или иные свои решения — и этот навык является одним из абсолютно необходимых для тимлида, и именно его отсутствие часто является причиной отказа в повышении до этой позиции.\n\n## Тимлидов редко ищут там, где нет проблем\n\nКак показывают различные кадровые исследования, большинство компаний предпочитает растить тимлидов внутри, из уже имеющихся специалистов. Причины этого достаточно прозаичны — тимлиду для эффективной работы нужно иметь огромное количество «внутренних» знаний о конкретной предметной области, продукте, команде и компании. И порой аккумулировать эти данные приходится годами. Передать их все человеку «с улицы» крайне трудно, для этого в компании должен быть специально поставленный процесс онбординга сотрудников, и далеко не все компании вообще могут себе это позволить, либо не считают это целесообразным. А вот нужда в руководителях команд назревает крайне быстро — практически в любой компании, где больше 10 человек, как минимум один такой специалист необходим. \n\nЕсли команда собирается с нуля, то вариант с повышением кого-то из топовых разработчиков отсутствует, и приходится проводить отбор с рынка. С точки зрения потенциального кандидата — это лучший вариант. Как раз из-за того, что проект еще новый — в нем не накопился техдолг, мало легаси, все люди новые (между ними нет сложившихся неформальных отношений), и можно отлично себя зарекомендовать.\n\nВ сложившихся компаниях, если не получилось найти подходящего специалиста внутри, и приходится искать его снаружи, нередко можно диагностировать какие-то провалы в процессах, рабочих отношениях или экономической модели. Они еще обильно сдобрены немалым количеством контр-продуктивных практик, которые реализуются по инерции, потому что так принято. \n\nИ обо всем этом на собеседовании никто будущему руководителю рассказывать не поспешит. Это добавляет ответственности потенциальному тимлиду уже на стадии собеседования — если не задать правильные вопросы и не идентифицировать предстоящие проблемы, то после получения этой должности можно столкнуться и с непреодолимыми проблемами, которые значительно попортят опыт работы и желание продолжать сотрудничество. \n\n## Это просто весьма утомительная работа\n\nКак можно догадаться по описанному списку разнообразных проблем, которые так или иначе одним из концов упираются в тимлида, на этой позиции человек сталкивается с очень серьезной нагрузкой. Как справедливо пишет википедия:\n\n\n> Исследования показывают, что работа руководителя низового звена является напряженной и наполненной разнообразными действиями. Она характеризуется частыми перерывами, переходами от одной задачи к другой. Задачи сами по себе потенциально краткие: в одном исследовании обнаружено, что время, затрачиваемое мастером в среднем на выполнение одного задания равнялось 48 секундам. Временной период для реализации решений, принимаемых мастером, также короткий. \n\nДля успешного выполнения требований от тимлида требуется, во-первых, держать в голове много мелких деталей о принципах работы продукта и используемых в нем технологий. Во-вторых — умение контролировать одновременно кратко-, средне- и долгосрочные вопросы, регулярно переключаясь между ними. Это в свою очередь влечет очень высокие требования к навыку управлению собственным временем. В относительно успешном продукте у тимлида много открытых вопросов, которые он должен решить. И их всегда больше, чем он успевает обработать. Поэтому важно умение их грамотно приоритизировать и приложить нужные усилия в нужный момент.\n\nГипотетически, вы всегда можете найти крайнего среди своих подчиненных и озадачить его. Однако руководители, систематически решающие проблемы именно таким образом, не пользуются большим уважением ни у коллег, ни у членов команды, и имеют мало шансов продвинуться дальше в управленческой вертикали.\n\n::posts\n\n## Выводы\n\nПоскольку мы в этой статье сфокусировались на сложностях, с которыми сталкивается тимлид, может сложиться впечатление, что это неблагодарная и чрезмерно тяжелая работа. На самом деле — это соразмерная плата за огромный пласт очень полезного опыта, новые точки личного и профессионального роста, возможность в куда большей степени влиять на продукт. И самое главное, — за возможность решать более сложные и менее типовые задачи, а ведь это один из главных мотиваторов любого инженера и одна из движущих сил, сделавших многих из нас разработчиками. \n\nАбсолютно точно не стоит ее бояться, надо лишь здраво оценивать свои возможности и соизмерять их с теми ожиданиями, которые к вам предъявляет эта должность. Кроме того, разумно предположить, что чем выше ответственность, тем выше предполагается за нее и компенсация. \n\nОправдывает ли себя эта ответственность и сопутствующая ей смена условий работы — каждый решает сам. Есть немало других направлений профессионального развития, не включающих в себя менеджерские функции. А может быть вы прочитали это и поняли, что это именно то, чего вы хотите? В таком случае мы можем лишь поддержать подобные устремления и пожелать удачи на этом нелегком пути. \n","reading_time":9,"url":"https://ru.hexlet.io/blog/posts/vsem-li-nado-byt-timlidami","cover_thumb_variant":null,"cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp","cover_main_variant":"/vite/assets/blog_post-7eTyeLLt.webp","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":660,"title":"Кто такой тестировщик и как им стать","slug":"gid-po-professii-testirovschik-chem-zanimaetsya-skolko-zarabatyvaet-chto-nado-znat-i-gde-uchitsya","summary":"Рассказываем, кто такой тестировщик и чем он занимается, сколько зарабатывает такой специалист, а также какие нужны знания и компетенции, чтобы им стать.","created_at":"2020-01-29T16:58:16.214Z","published_at":"2023-12-29T10:36:34.186Z","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTYzNiwicHVyIjoiYmxvYl9pZCJ9fQ==--72f5a3fb78c634c408f39349dbd2e203809b4069/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%82%D0%B5%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA2023-01.png"},{"model_name":"BlogPost","id":1636,"title":"Как просить повышения зарплаты программисту и не бояться этого","slug":"bolshe-zarabatyvat","summary":"Вместе с карьерным коучем Оксаной Паниной рассказываем, как правильно просить прибавку к зарплате и не потерять доверие работодателя.\r\n","created_at":"2021-12-01T12:30:31.883Z","published_at":"2022-11-24T09:08:03.643Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":1655,"title":"Не бояться, решать задачи и проверить звук в Zoom: Как джуниор-разработчику подготовиться к собеседованию","slug":"ne-boyatsya","summary":"Джуниор-разработчикам найти работу сложнее, чем программистам с опытом. Работодателям приходится чаще доказывать, что такой начинающий специалист будет полезен для компании, а его навыки принесут прибыль. Мы подробно рассказываем, как джунам правильно готовиться к первому собеседованию.","created_at":"2021-12-21T08:07:45.008Z","published_at":"2022-01-27T10:38:47.586Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"},"mainStackCategory":{"id":11,"name":"Курсы по Java","slug":"java","short_name":"Java","order":80,"state":"published","category_slug":"courses_java"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":178,"slug":"fullstack-java","title":"Fullstack-разработчик на Java","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":null,"duration_in_months":16},"id":277,"slug":"fullstack-java","title":"Fullstack-разработчик на Java","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-java","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--ca5a6047d43e5c0f6d07b52e845817fa2c47ef02/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-bro.png"},{"stack":{"id":179,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":null,"duration_in_months":16},"id":279,"slug":"fullstack-php","title":"Fullstack-разработчик на PHP","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-php","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png"},{"stack":{"id":180,"slug":"fullstack-python","title":"Fullstack-разработчик на Python","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":null,"duration_in_months":16},"id":281,"slug":"fullstack-python","title":"Fullstack-разработчик на Python","subtitle":"","subtitle_for_lists":null,"locale":"ru","current":true,"duration_in_months_text":"16 месяцев","stack_slug":"fullstack-python","price_text":"от 7 934 ₽","duration_text":"16 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png"},{"stack":{"id":43,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":140,"duration_in_months":12},"id":74,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","subtitle":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","subtitle_for_lists":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","locale":"ru","current":true,"duration_in_months_text":"12 месяцев","stack_slug":"fullstack-javascript","price_text":"от 7 934 ₽","duration_text":"12 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"},{"stack":{"id":2,"slug":"php","title":"PHP-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":60,"duration_in_months":10},"id":1,"slug":"php","title":"РНР-разработчик","subtitle":"Изучите PHP и Laravel для разработки и проектирования REST API","subtitle_for_lists":"Изучите PHP и Laravel для разработки и проектирования REST API","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"php","price_text":"от 5 650 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png"}]},"url":"/blog/posts/vsem-li-nado-byt-timlidami","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Alexander Uskov","name":"Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?","datePublished":"2021-12-23T13:42:30.742Z","headline":"Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.","image":"/vite/assets/blog_post-7eTyeLLt.webp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":9}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/career","name":"Карьера"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/vsem-li-nado-byt-timlidami","name":"Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/career">Карьера</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="Без стека"><span class="m_5add502a mantine-Badge-label">Без стека</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">23 декабря 2021 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>9 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>9</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" alt="Ответственность за команду, много созвонов и мало кода: всем ли надо быть тимлидами?"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p><strong>Существует стереотип, что следующей ступенькой в карьере разработчика является должность тимлида. Бывший тимлид и консультант Александр Усков рассказывает, что это значит — быть тимлидом, и действительно ли программисту необходимо им становиться.</strong></p>
<p>Как гласит народный афоризм, ошибочно приписываемый Александру Суворову, плох тот солдат, который не мечтает стать генералом. Не можем уверенно утверждать, что на военной службе дела обстоят именно так, но в разработке программного обеспечения точно все не так однозначно.</p>
<p>Помимо очевидного факта, что руководителей требуется значительно меньше, чем подчиненных, и, возможно, менее очевидного, что не у всех сотрудников хватает компетенции и навыков для работы в качестве управленца, есть еще и иная сторона вопроса: далеко не все разработчики мечтают о росте в менеджерскую вертикаль. А те, кто мечтают, не всегда осознают, что им это сулит. Бывают даже случаи, когда разработчик пробует себя в качестве руководителя группы, а потом, получив этот опыт, предпочитает вернуться к жизни инженера и продолжить развиваться исключительно в прикладных технических навыках.</p>
<style data-mantine-styles="inline">.__m__-_R_7derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_7derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_7derddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-java?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">16 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Java</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY3MSwicHVyIjoiYmxvYl9pZCJ9fQ==--ca5a6047d43e5c0f6d07b52e845817fa2c47ef02/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-bro.png" alt="Fullstack-разработчик на Java" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-php?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">16 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на PHP</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2OSwicHVyIjoiYmxvYl9pZCJ9fQ==--cbbaa606be07bca305bd21d9919235989a1ed289/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20typing-amico.png" alt="Fullstack-разработчик на PHP" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-python?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">16 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Python</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root"></p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzY2NSwicHVyIjoiYmxvYl9pZCJ9fQ==--f7793ed718d27cc7ce1799556a7623d56e7635f8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Code%20snippets-rafiki.png" alt="Fullstack-разработчик на Python" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-javascript?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">12 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Node.js</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Fullstack-разработчик на Node.js" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/php?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">РНР-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите PHP и Laravel для разработки и проектирования REST API</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6Mzk5MiwicHVyIjoiYmxvYl9pZCJ9fQ==--e9d0f30948ea766a7e6bc3e3d56c192344d45fb8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-cuate%20(1).png" alt="РНР-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 5 650 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Как это вообще — быть тимлидом?</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-3">Качество продукта — теперь ваше дело</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-4">Все проблемы команды — теперь ваши проблемы</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-5">Писать код — теперь не обязанность, а роскошь</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-6">Интересы бизнеса — теперь и ваши интересы</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-7">Придется много общаться с людьми</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-8">Тимлидов редко ищут там, где нет проблем</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-9">Это просто весьма утомительная работа</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-10">Выводы</a></li>
</ul>
<h2 id="heading-2-2">Как это вообще — быть тимлидом?</h2>
<p>В мире промышленной разработки софта существует великое множество различных должностей, позиций и терминов для описания технических менеджеров — руководителей, среди подчиненных которых нет других руководителей. К ним относится и позиция лидера команды во всех ее видах. Несмотря на многообразие названий этой должности в российской IT-культуре — Team Lead, Lead Developer, Head of …, руководитель группы/команды/направления и даже «Лидер по IT», — от человека в данной роли везде ожидаются примерно одинаковые функции:</p>
<ul>
<li>Коммуникация между производственной командой и внешними (по отношению к команде) коллегами, заказчиками и вышестоящими руководителями</li>
<li>Управление потоком задач, которые поступают в команду, и контроль за их выполнением. Сюда же — принятие необходимых технических решений</li>
<li>Непосредственное управление выделенными на команду ресурсами — как человеческими, так и материальными, оптимизация производственного процесса</li>
<li>Оперативное решение проблем или, при невозможности их решения, передача их вышестоящим руководителям</li>
<li>Повышение производительности команды, профессиональный рост ее участников и трансляция их интересов бизнесу.</li>
</ul>
<p>Детали могут отличаться в зависимости от размера компании и процессов. Какие-то из этих функций могут осуществляться совместно с другими ролями, например, менеджеры проектов, менеджеры по продукту, аналитики, архитекторы.</p>
<p>Неизменным остается то, что тимлид руководит командой, которая непосредственно осуществляет производственный процесс — будь то разработчики, тестировщики или полноценная кросс-функциональная команда, также известная как “Agile feature team”.</p>
<p>Из этих функций вытекают некоторые особенности, которые существенно отличают рабочий процесс тимлида от линейного разработчика. Давайте рассмотрим некоторые изменения, которые произойдут в вашей профессиональной деятельности, если вы решите принять подобную ответственность.</p>
<h2 id="heading-2-3">Качество продукта — теперь ваше дело</h2>
<p>Теперь вас будут спрашивать, если на вашем участке работы возникли технические проблемы — особенно если это повлекло за собой финансовые или репутационные риски для бизнеса. Если авария случилась у вашей команды, то и ответственность будет лежать на ваших плечах.</p>
<p>Поэтому в ваших интересах обеспечивать качество реализуемых решений. С одной стороны, это дает вам небывалые возможности: теперь вы сможете решать задачи куда более высокого уровня, чем в роли линейного разработчика, имея для этого большой ассортимент средств. Вашими инструментами теперь являются не только фреймворки, платформы и программные комплексы, но и сами люди в вашей команде.</p>
<p>С большой вероятностью, именно вы будете принимать (если захотите, конечно) финальные решения об используемых технологиях, покрытии продукта тестами, архитектуре приложения, методологиях разработки. С другой стороны, как гласит древнейшая пословица (также известная как <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://en.wikipedia.org/wiki/With_great_power_comes_great_responsibility" rel="noopener noreferrer" target="_blank">принцип Питера Паркера</a>), — к большой власти прилагается большая ответственность, и все возможные негативные последствия этих решений, как технические, так и сугубо бизнесовые, вернутся к вам сторицей.</p>
<p>Например, разработчик что-то недосмотрел на этапе Code Review, и ваше приложение не прошло модерацию в App Store? Свежий релиз, напичканный новыми библиотеками, уронил прод? У каждого десятого юзера не нажимается кнопка, потому что вы решили не тестировать устаревшую операционную систему? В вашем проекте накопилось столько технического долга, что ваши сотрудники ошибаются в оценке даже простейших задач в несколько раз? Маркетинг закупил трафик на миллионы, а ваш сервис упал от нагрузки, тем самым уничтожив рекламный бюджет впустую? Даже если ни в одном из случаев это не ваша вина — все это ваша ответственность.</p>
<p>Кроме того, в крупных B2B и B2C продуктах разработка зачастую является одной из последних линий поддержки, и разнообразные хотелки, жалобы и претензии клиентов имеют все шансы попасть к вам на стол. Особенно если соответствующий департамент и/или менеджеры по работе с клиентами не обладают необходимой информацией или полномочиями по каким-либо вопросам.</p>
<h2 id="heading-2-4">Все проблемы команды — теперь ваши проблемы</h2>
<p>В команде всегда найдутся те, кто не успел сделать задачу к дедлайну, решил уволиться, только присоединился к команде и еще ничего не понимает, хочет больше зарплату, просит другой график работы, или забывает отмечать время работы в Jira, ушел в отпуск и не оставил информацию по текущим задачам. Теперь это в том числе и ваши проблемы, и вам с ними жить.</p>
<p>Все, что вы регулярно наблюдали в качестве разработчика, но что решалось без вашего участия, теперь требует непосредственного вашего внимания, действий, учета рисков при планировании ресурсов и понимания, что вообще со всем этим делать. При этом нет какого-то стандартного решения таких проблем — они могут отличаться от команды к команде, и сформировать некий майндсет для принятия подобных решений можно только на опыте. Сталкиваясь с таким в первый раз, мало кто может среагировать не то что компетентно, а хотя бы просто адекватно. И очень здорово, если найдутся старшие товарищи, с которыми можно посоветоваться.</p>
<p>Поэтому вам понадобится немалая выдержка и некоторая личная психологическая зрелость, чтобы эти решения были не только эффективными, но и не требовали от вас чрезмерной нагрузки, в том числе и эмоциональной. Типичная (ошибочная) линия поведения начинающих руководителей — пытаться закрыть все дырки самостоятельно, своим ресурсом. Чаще всего это приводит к тому самому выгоранию, а научиться делегировать ответственность своим тиммейтам и понимать, где, что и кому можно доверить — важнейший для руководителя навык. И он обычно оттачивается годами.</p>
<h2 id="heading-2-5">Писать код — теперь не обязанность, а роскошь</h2>
<p>Чем выше уровень специалиста в производственной иерархии, тем выше уровень и масштаб задач, которые он решает. Как прораб на стройке не кладет штукатурку, а главный инженер на заводе — не стоит за станком, так и тимлид не решает спринтовые задачи и не фиксит баги — во всяком случае, пока этого не требуют обстоятельства. В достаточно крупных инженерных компаниях это правило распространяется даже на линейных разработчиков высоких грейдов: тамошние сеньоры практически не пишут код, они пишут дизайн-документы, планы развития, емейлы, участвуют в встречах, обучают новобранцев.</p>
<p>В компаниях меньшего размера этим и занимается тимлид. Конечно, тимлиду не запрещают программировать — просто у него слишком много других забот. Побаловаться с кодом теперь получится только в свободное от всего остального время. Это одна из основных причин, по которым некоторые разработчики высокой квалификации отказываются от управленческих позиций, — чтобы продолжить повышать свою квалификацию именно в качестве программиста.</p>
<p>Конечно, стоит оговориться, что это сильно зависит от размера команды и организации — многие небольшие компании ищут в качестве тимлида типаж «играющего тренера». И на этой позиции менеджерские обязанности сочетаются с задачами программирования в плюс-минус равных пропорциях. Это очень хороший вариант для тех разработчиков, кто хочет примерить на себя шкурку менеджера, но не погружаться в этот омут сразу с головой.</p>
<h2 id="heading-2-6">Интересы бизнеса — теперь и ваши интересы</h2>
<p>Наиболее значимым изменением в корпоративной жизни сотрудника при переходе с линейной должности на руководящую является необходимость выступать посредником различных интересов, которые вступают в противоречие друг с другом. В бизнес-процессах любого коммерческого производственного предприятия (к которым относятся и компании, разрабатывающие ПО) можно выделить три основных роли участников:</p>
<ul>
<li>Пользователи, они же клиенты. Они являются потребителем продукта и обеспечивают ему выручку. Их интересы включают в себя получение ценности с помощью предлагаемого им продукта. И именно их явные и неявные желания, ожидания и боли, связанные с этим продуктом, задают общее направление производственному процессу.</li>
<li>Производство — люди, которые создают продукт — от разработчиков и тестировщиков до иллюстраторов и копирайтеров. В их сферы интересов входят качество и комфорт производственных процессов, условия труда, личный профессиональный рост, признание их заслуг компанией и разные личные амбиции.</li>
<li>Бизнес — люди, которые являются владельцами или инвесторами компании. Они заинтересованы в рентабельности компании, репутации бренда, росте коллектива и производственных мощностей, а также в выполнении различных нормативов — например, в соблюдении законов и требований регулирующих организаций.</li>
</ul>
<p>Это упрощенная схема — она в большей степени применима к продуктовым компаниям, где продукт рождается как раз в пересечении сфер интересов этих групп. С некоторыми уточнениями она может быть экстраполирована и на инженерные компании с другой бизнес-моделью. Взаимодействие этих групп с продуктом и друг другом можно представить в виде диаграммы Эйлера-Венна:</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/TnjLcV4.png" alt="" loading="lazy"/></p>
<p>У каждой из групп есть как свои изолированные интересы, так и некоторые пересечения — линейные сотрудники производственного блока (не только разработчики, но и архитекторы, девопсы, тестировщики и другие, в чьи функции входит решение поставленных технологических задач) не обязаны учитывать, как их департамент взаимодействует с пользователями, продуктом и бизнесом. В то время как для тимлида это является неизбежным и едва ли не ключевым — ведь его функция уже не ограничивается исключительно производственным процессом.</p>
<p>Между бизнесом и производством всегда есть некоторый конфликт. Если упрощать и возводить в абсолют — бизнес всегда стремится получить максимум прибыли при минимуме расходов (включая расходы на производство, в том числе, оплату труда). В то время как люди, занятые разработкой, хотели бы зарабатывать как можно больше, а делать, — если не как можно меньше вообще, то хотя бы как можно меньше того, что им не хочется делать. Помимо этого разработчики хотят решать интересные для себя задачи — пробовать новые инструменты и технологии, делать что-то сверх требуемого минимума, писать тесты, рефакторить неудобный код и другим образом творчески самореализовываться. Бизнес же рад отказаться от всех возможных лишних трат времени и ресурса и хотел бы добавлять как можно больше ценности в продукт в единицу времени.</p>
<p>Поэтому невозможно переоценить роль тимлида в взаимодействии между ними — именно он является медиатором и точкой, в которой эти, зачастую противоположные, группы должны сойтись к некоторому общему знаменателю. Именно он ответственен за то, чтобы в каждом отдельном случае найти компромисс и по максимуму удовлетворить потребности всех сторон.</p>
<p>Это ответственность, и она требует большого списка софт-скиллов — необходимо хорошо слушать, и убеждать, и доносить свою позицию до людей с разной подготовкой, независимо от их положения в иерархии, и знать, где и чем придется пожертвовать (это неизбежно). Тем, кто попадает в руководители из непосредственно разработчиков, в начале бывает очень сложно — они не привыкли мыслить в такой парадигме.</p>
<h2 id="heading-2-7">Придется много общаться с людьми</h2>
<p>Тимлид — должность в первую очередь про коммуникацию. В некотором роде он является прокси между своей командой и внешним миром, пропуская через себя колоссальные объемы информации и поддерживая взаимодействие с немалым количеством людей.</p>
<p>Чем крупнее компания, тем больше круг контактов у такого руководителя. Часто он в несколько раз больше, чем его собственная команда. В дополнение к этому, выход на уровень управления автоматически означает, что придется так или иначе соприкоснуться с внутрикорпоративной политикой — попасть в отдельный слой отношений между сотрудниками компании, который не регламентируется и не регулируется только лишь профессиональными обязанностями и этикой. Это, на самом деле, вещь в себе, и далеко не всем комфортно, удобно и приятно с этим соприкасаться. В больших же компаниях с высоким уровнем внутренней конкуренции вообще нужно держать ухо востро, потому что ваши интересы неизбежно будут входить в конфликт с интересами кого-то еще, со всеми вытекающими последствиями.</p>
<p>Все люди разные, не все одинаково компетентны и осведомлены о деталях рабочего процесса, не со всеми общение может складываться легко и непринужденно. С некоторыми вообще может возникать явный конфликт, при этом задачи как-то решать все равно придется. Кроме того, нередко приходится отстаивать собственное мнение и право провести те или иные свои решения — и этот навык является одним из абсолютно необходимых для тимлида, и именно его отсутствие часто является причиной отказа в повышении до этой позиции.</p>
<h2 id="heading-2-8">Тимлидов редко ищут там, где нет проблем</h2>
<p>Как показывают различные кадровые исследования, большинство компаний предпочитает растить тимлидов внутри, из уже имеющихся специалистов. Причины этого достаточно прозаичны — тимлиду для эффективной работы нужно иметь огромное количество «внутренних» знаний о конкретной предметной области, продукте, команде и компании. И порой аккумулировать эти данные приходится годами. Передать их все человеку «с улицы» крайне трудно, для этого в компании должен быть специально поставленный процесс онбординга сотрудников, и далеко не все компании вообще могут себе это позволить, либо не считают это целесообразным. А вот нужда в руководителях команд назревает крайне быстро — практически в любой компании, где больше 10 человек, как минимум один такой специалист необходим.</p>
<p>Если команда собирается с нуля, то вариант с повышением кого-то из топовых разработчиков отсутствует, и приходится проводить отбор с рынка. С точки зрения потенциального кандидата — это лучший вариант. Как раз из-за того, что проект еще новый — в нем не накопился техдолг, мало легаси, все люди новые (между ними нет сложившихся неформальных отношений), и можно отлично себя зарекомендовать.</p>
<p>В сложившихся компаниях, если не получилось найти подходящего специалиста внутри, и приходится искать его снаружи, нередко можно диагностировать какие-то провалы в процессах, рабочих отношениях или экономической модели. Они еще обильно сдобрены немалым количеством контр-продуктивных практик, которые реализуются по инерции, потому что так принято.</p>
<p>И обо всем этом на собеседовании никто будущему руководителю рассказывать не поспешит. Это добавляет ответственности потенциальному тимлиду уже на стадии собеседования — если не задать правильные вопросы и не идентифицировать предстоящие проблемы, то после получения этой должности можно столкнуться и с непреодолимыми проблемами, которые значительно попортят опыт работы и желание продолжать сотрудничество.</p>
<h2 id="heading-2-9">Это просто весьма утомительная работа</h2>
<p>Как можно догадаться по описанному списку разнообразных проблем, которые так или иначе одним из концов упираются в тимлида, на этой позиции человек сталкивается с очень серьезной нагрузкой. Как справедливо пишет википедия:</p>
<blockquote>
<p>Исследования показывают, что работа руководителя низового звена является напряженной и наполненной разнообразными действиями. Она характеризуется частыми перерывами, переходами от одной задачи к другой. Задачи сами по себе потенциально краткие: в одном исследовании обнаружено, что время, затрачиваемое мастером в среднем на выполнение одного задания равнялось 48 секундам. Временной период для реализации решений, принимаемых мастером, также короткий.</p>
</blockquote>
<p>Для успешного выполнения требований от тимлида требуется, во-первых, держать в голове много мелких деталей о принципах работы продукта и используемых в нем технологий. Во-вторых — умение контролировать одновременно кратко-, средне- и долгосрочные вопросы, регулярно переключаясь между ними. Это в свою очередь влечет очень высокие требования к навыку управлению собственным временем. В относительно успешном продукте у тимлида много открытых вопросов, которые он должен решить. И их всегда больше, чем он успевает обработать. Поэтому важно умение их грамотно приоритизировать и приложить нужные усилия в нужный момент.</p>
<p>Гипотетически, вы всегда можете найти крайнего среди своих подчиненных и озадачить его. Однако руководители, систематически решающие проблемы именно таким образом, не пользуются большим уважением ни у коллег, ни у членов команды, и имеют мало шансов продвинуться дальше в управленческой вертикали.</p>
<style data-mantine-styles="inline">.__m__-_R_33derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_33derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_33derddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/gid-po-professii-testirovschik-chem-zanimaetsya-skolko-zarabatyvaet-chto-nado-znat-i-gde-uchitsya"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTYzNiwicHVyIjoiYmxvYl9pZCJ9fQ==--72f5a3fb78c634c408f39349dbd2e203809b4069/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%82%D0%B5%D1%81%D1%82%D0%B5%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA2023-01.png" loading="lazy" alt="Кто такой тестировщик и как им стать"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Кто такой тестировщик и как им стать</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Рассказываем, кто такой тестировщик и чем он занимается, сколько зарабатывает такой специалист, а...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">29 декабря 2023 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/bolshe-zarabatyvat"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Как просить повышения зарплаты программисту и не бояться этого"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Как просить повышения зарплаты программисту и не бояться этого</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Вместе с карьерным коучем Оксаной Паниной рассказываем, как правильно просить прибавку к зарплате...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">24 ноября 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/ne-boyatsya"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Не бояться, решать задачи и проверить звук в Zoom: Как джуниор-разработчику подготовиться к собеседованию"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Не бояться, решать задачи и проверить звук в Zoom: Как джуниор-разработчику подготовиться к собеседованию</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Джуниор-разработчикам найти работу сложнее, чем программистам с опытом. Работодателям приходится ...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">27 января 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h2 id="heading-2-10">Выводы</h2>
<p>Поскольку мы в этой статье сфокусировались на сложностях, с которыми сталкивается тимлид, может сложиться впечатление, что это неблагодарная и чрезмерно тяжелая работа. На самом деле — это соразмерная плата за огромный пласт очень полезного опыта, новые точки личного и профессионального роста, возможность в куда большей степени влиять на продукт. И самое главное, — за возможность решать более сложные и менее типовые задачи, а ведь это один из главных мотиваторов любого инженера и одна из движущих сил, сделавших многих из нас разработчиками.</p>
<p>Абсолютно точно не стоит ее бояться, надо лишь здраво оценивать свои возможности и соизмерять их с теми ожиданиями, которые к вам предъявляет эта должность. Кроме того, разумно предположить, что чем выше ответственность, тем выше предполагается за нее и компенсация.</p>
<p>Оправдывает ли себя эта ответственность и сопутствующая ей смена условий работы — каждый решает сам. Есть немало других направлений профессионального развития, не включающих в себя менеджерские функции. А может быть вы прочитали это и поняли, что это именно то, чего вы хотите? В таком случае мы можем лишь поддержать подобные устремления и пожелать удачи на этом нелегком пути.</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Alexander Uskov</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">4 года назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/vsem-li-nado-byt-timlidami/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">9</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/gid-po-professii-testirovschik-chem-zanimaetsya-skolko-zarabatyvaet-chto-nado-znat-i-gde-uchitsya">Кто такой тестировщик и как им стать</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/bolshe-zarabatyvat">Как просить повышения зарплаты программисту и не бояться этого</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/ne-boyatsya">Не бояться, решать задачи и проверить звук в Zoom: Как джуниор-разработчику подготовиться к собеседованию</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_java?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по Java</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>