На Хабре любят хейтить менеджеров, которые «забыли, как кодить». Мол, оторвались от реальности, не понимают сроков, не чувствуют боль разработчика. Я раньше тоже так думал. А потом попал в команду к человеку, который три года не открывал IDE, и за полгода понял, что был неправ.

Контекст: что было до

До Серёги (это нынешний тимлид) у нас был Андрей. Андрей — зверь в техническом смысле. Кодовую базу знал так, что мог в голове прокрутить стек вызовов уровней на пять. Каждый PR ревьюил лично. Сам писал кучу кода.

И команда его в итоге ненавидела. Не сразу — сначала было восхищение, потом привыкание, потом тихое раздражение.

Один случай, он показательный. Февраль прошлого года, я три дня делал кэширование для дашбордов. Написал, тестами покрыл, отправил на ревью. Андрей вернул с 36 комментариями. Тридцать шесть — я потом реально посчитал. Половина стилистика, четверть «тут можно красивее», четверть — он хотел другую архитектуру. Переделал — ещё под тридцать. Ещё раз — ещё двадцать. На четвёртый круг я сдался и попросил: покажи, как ты видишь. Он сел и за полтора часа переписал 70% моего кода. Объективно стало лучше. И абсолютно чужим.

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

Из шестерых четверо ушли за полтора года. Маша ушла в тестирование, сказала «разработка не моё». Я почти уверен, что дело не в разработке.

Важное: Андрей не злой человек. Он реально хотел помочь, реально считал, что учит нас писать лучше. Когда я показал черновик Серёге, он первым делом сказал: «Ты Андрея злым описал, он нормальный». Может, и правда. А может, я до сих пор обижен за те комментарии, хрен знает. С Андреем мы потом нормально общались, он даже помогал, когда мы застревали в архитектуре — но это уже было после, когда он перестал быть над нами.

Серёга

Назначили, когда Андрей ушёл в архитекторы. Первая встреча, дословно: «Слушайте, я код не открывал года полтора. В вашем стеке не шарю. Ревьюить не буду, архитектуру предлагайте сами. Но если кто-то будет вас дёргать по мелочам — приходите, разберёмся».

Я тогда подумал: ну всё, приехали.

Через полгода понял, что ошибся.

Я решил посчитать

Мне в какой-то момент стало интересно — не в смысле «докажу, что он бездельник», к тому моменту уже было видно, что команда поехала быстрее. Просто хотелось понять: куда уходит время человека, который не пишет код?

Договорился с Серёгой, что месяц он будет скидывать мне в конце дня список дел. Без деталей, категории и примерное время. Параллельно поднял метрики из GitLab за два периода — последние полгода Андрея и первые полгода Серёги.

Написал скрипт, кому интересно:

import gitlab
from collections import defaultdict
from datetime import datetime, timedelta, timezone

# ============================================================
# НАСТРОЙКИ 
# ============================================================
GITLAB_URL = "https://gitlab.com"          # ← ваш GitLab-инстанс
PRIVATE_TOKEN = "glpat-xxxxxxxxxxxx"       # ← Settings → Access Tokens
PROJECT_ID = 123                           # ← ID проекта 
PERIOD_DAYS = 180

# ============================================================
# ПОДКЛЮЧЕНИЕ
# ============================================================
gl = gitlab.Gitlab(GITLAB_URL, private_token=PRIVATE_TOKEN)
gl.auth()  # проверяем, что токен рабочий
project = gl.projects.get(PROJECT_ID)

since = datetime.now(timezone.utc) - timedelta(days=PERIOD_DAYS)

# ============================================================
# КОММИТЫ
# ============================================================
author_commits = defaultdict(int)
author_lines_added = defaultdict(int)
author_lines_removed = defaultdict(int)

print("⏳ Загружаю коммиты...")
commits = project.commits.list(since=since.isoformat(), get_all=True)
print(f"   Найдено коммитов: {len(commits)}")

for i, commit in enumerate(commits):
    author = commit.author_name
    author_commits[author] += 1

    try:
        diff = commit.diff()

        for d in diff:
            for line in d.get('diff', '').split('\n'):
                if line.startswith('+') and not line.startswith('+++'):
                    author_lines_added[author] += 1
                elif line.startswith('-') and not line.startswith('---'):
                    author_lines_removed[author] += 1

    except Exception as e:
        print(f"   ⚠️  Не удалось получить diff для {commit.short_id}: {e}")

    # Прогресс (каждые 100 коммитов)
    if (i + 1) % 100 == 0:
        print(f"   Обработано {i + 1}/{len(commits)}...")

# ============================================================
# MERGE REQUESTS
# ============================================================
print("\n⏳ Загружаю Merge Requests...")

mr_authors = defaultdict(int)

mrs = project.mergerequests.list(
    created_after=since.isoformat(),
    state='merged',
    get_all=True
)
print(f"   Найдено MR: {len(mrs)}")

merge_times = []

for mr in mrs:
    # Считаем авторов MR
    if mr.author and 'name' in mr.author:
        mr_authors[mr.author['name']] += 1

    if mr.merged_at is None:
        continue

    created = datetime.fromisoformat(mr.created_at.replace('Z', '+00:00'))
    merged = datetime.fromisoformat(mr.merged_at.replace('Z', '+00:00'))
    merge_times.append((merged - created).total_seconds() / 3600)

# ============================================================
# ВЫВОД РЕЗУЛЬТАТОВ
# ============================================================
print("\n" + "=" * 60)
print("? РЕЗУЛЬТАТЫ")
print("=" * 60)

print(f"\n? Период: последние {PERIOD_DAYS} дней")
print(f"   ({since.strftime('%Y-%m-%d')} — {datetime.now(timezone.utc).strftime('%Y-%m-%d')})")

# Коммиты по авторам
print(f"\n? Коммиты по авторам:")
for author, count in sorted(author_commits.items(), key=lambda x: -x[1]):
    added = author_lines_added[author]
    removed = author_lines_removed[author]
    print(f"   {author:<30} {count:>5} коммитов  (+{added} / -{removed} строк)")

# MR по авторам
print(f"\n? Merge Requests по авторам:")
for author, count in sorted(mr_authors.items(), key=lambda x: -x[1]):
    print(f"   {author:<30} {count:>5} MR")

# Среднее время до мержа
print(f"\n⏱️  Время до мержа:")
if merge_times:
    avg = sum(merge_times) / len(merge_times)
    median = sorted(merge_times)[len(merge_times) // 2]
    print(f"   Среднее:  {avg:.1f} часов")
    print(f"   Медиана:  {median:.1f} часов")
    print(f"   Мин:      {min(merge_times):.1f} часов")
    print(f"   Макс:     {max(merge_times):.1f} часов")
else:
    print("   Нет данных о мержах за указанный период")

print("\n" + "=" * 60)

Скрипт писал ночью, продакшн-качество не обещаю. Для разовой аналитики хватило.

Что получилось

Метрики по коду (GitLab, 6 месяцев):

Метрика

При Андрее

При Серёге

Коммиты тимлида

847 (58%)

0

Коммиты остальных

612

1340

PR от команды / мес

23

41

Среднее время ревью

34 часа

8 часов

PR отклонено / переписано

31%

7%

Story points за спринт (среднее): при Андрее 34, при Серёге 48. Плюс 41%.

Я проверил — может, мы стали проще оценивать? Нет, средний размер PR даже немного вырос. Просто мы перестали ждать ревью по полтора дня, перестали переписывать каждый PR по четыре раза, перестали бояться предлагать решения. Через три месяца пересобрал данные — цифры те же, ±5%, не аномалия.

Аналогичных данных по Андрею у меня нет — он не вёл дневник, и я не додумался попросить. Так что сравнение хромает: по GitLab — яблоки к яблокам, по распределению времени — только Серёга. Имейте в виду.

Время Серёги по Notion за месяц:

Категория

Часы

%

Митинги с другими командами

28

18%

Согласования, эскалации

24

15%

Защита от входящих запросов

22

14%

1-1

16

10%

Планирование

14

9%

Стейкхолдеры

12

8%

Найм

10

6%

Документация

8

5%

Политика

8

5%

Разное

15

10%

Когда показал ему табличку, Серёга удивился: «У меня ощущение, что я целыми днями на митингах, а тут всего 18%». Ну да — потому что остальные 82% тоже работа, просто её не видно.

Кстати, про «видно по комментариям»

Небольшое отступление, но оно в тему.

Недавно я обучил модель на 10 000 комментариев к код-ревью — хотел отделить полезные от мусора. Классификатор получился нормальный, точность 87%. Но потом я полез смотреть, где модель ошибается, и заметил странное: она систематически сомневалась на одних и тех же людях. Их комментарии выглядели нормально, но что-то было не так. Поднял историю коммитов — все они уволились через месяц-два.

Модель видела угасание. Комментарии сжимаются, вопросы исчезают, «ок» вместо абзацев, тон выравнивается в стерильную линию. Из тех, кто реально ушёл, модель заметила почти три четверти. За шесть недель. По комментариям к коду.

Я потом думал — а что бы она показала на нашей команде при Андрее? Когда четверо из шести ушли за полтора года? Подозреваю, красные флаги были бы по всем, включая тех, кто остался. Потому что были и такие: паттерн угасания есть, а увольнения нет. Человек приходит, закрывает задачи, кивает на созвонах. Год, два. Формально — работает. Фактически — присутствует. По метрикам всё в порядке, а внутри давно пусто.

Тот, кто уходит — хотя бы делает выбор.

Подробный разбор с кодом и паттернами — на Хабре. А если интересна тема на стыке LLM и всего, что обычно не измеряют — я про это пишу в «токены на ветер».

Ладно, вернёмся к Серёге.

Несколько случаев

Про демо. Июнь, большое демо для инвесторов, real-time аналитика. За день до показа прод лёг — конкретно та часть, которую показывать. Мы втроём — я, Костя, Димка — почти трое суток в коде. Серёга не написал ни строчки. Он пошёл к CEO и сказал: переносим на два дня. CEO орал — инвесторы летят, репутация, сроки. Серёга: можем показать сырое, репутационные потери будут больше, решай. CEO перенёс. Мы за 48 часов починили. Демо прошло не идеально, косяки были, но сделка закрылась.

Про безопасников. Интеграция со сторонним сервисом, работала год. Потом аудит: всё переделывать, сертификаты не те, протокол старый. Переделка — три недели работы плюс заморозка фич. Серёга собрал встречу: мы, безопасники, сторонний сервис, юристы. Спросил одно: какой конкретно риск и какая вероятность? Оказалось — риск есть, вероятность низкая, есть временный workaround. Workaround сделали за два дня. Переделку кинули в бэклог. Три недели работы не случились.

Про Олега. Был у нас разработчик, технически сильный, но на ревью не комментировал, а унижал. Типа «ты серьёзно не видишь O(n²)?». Все терпели — Олег закрывал сложные задачи. «Ну он такой». Серёга полгода терпел, потом — нет. Деталей не знаю. Олег ушёл «по собственному», с рекомендациями. После этого люди стали спокойнее предлагать идеи, ревью перестало быть минным полем. Не знаю, как это выразить в метриках, но я это видел каждый день.

Как Серёга попробовал написать код

Март. Баг — кнопка не работает в Safari. Серёга видит тикет: «О, это просто CSS, сам пофикшу».

Два часа: как у вас локально фронт запустить? Ещё час: почему npm install ругается на peer dependency? Полчаса: поменял CSS, изменения не появляются.

Костя пофиксил за десять минут.

Не потому что Серёга тупой. Контекст — штука, которую нельзя получить за полдня. Три года прошло, всё поменялось. Мы потом шутили: «Серёг, хочешь помочь — не помогай». Он нормально отнёсся, без обид.

А кто принимает технические решения?

Команда. У нас есть штука, которую мы называем RFC — по факту гуглдок на пару страниц. Проблема, варианты, плюсы-минусы. Все читают, комментируют. Серёга на обсуждениях работает фасилитатором — следит, чтобы Костя не задавил Лену (он громче), чтобы не ушли в дебри.

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

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

Чего не хватает

Врать не буду — не хватает технического менторства. Серёга не может провести ревью, от которого чему-то научишься. Не может подсказать паттерн или сказать «тут лучше стратегия, а не цепочка if-ов». Компенсируем: ходим к архитекторам (к Андрею, кстати — ирония), внутренние митапы, читаем. Для сеньоров нормально. Для джунов было бы тяжело.

Ещё иногда хочется, чтобы кто-то просто сказал «делаем так», без обсуждений на полчаса. Серёга принципиально так не делает.

Одна вещь, которая меня удивила

Помните «защита от входящих запросов», 14% времени? Я попросил скинуть примеры за неделю. Вот что он отбил:

— Соседняя команда хотела, чтобы мы «быстро глянули их API». Нет, у нас свой роадмап. — HR звал человека на хакатон в субботу. Нет. — Платформенная команда предлагала перейти на их новый фреймворк. Не сейчас. — CTO хотел синк по единой архитектуре. Серёга: через два месяца, сейчас не время. — Продакт прибежал со «срочным багом от партнёра». Серёга проверил — не срочный, в бэклог.

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

Как-то спросил Серёгу: тебе не обидно, что ты не делаешь ничего технического? Он задумался и сказал: «Раньше думал, что код — это работа, а остальное шум. Потом попробовал и то, и другое. Сгорел. Понял, что шум — тоже работа. Кто-то должен его гасить, иначе вы...» — и махнул рукой, не договорил.

Я понял.

Вместо итога

Хороший тимлид — не обязательно лучший инженер. Иногда это тот, кто даёт инженерам спокойно работать. Банально звучит, на практике — редкость.

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

Ваш тимлид пишет код? Помогает это команде или мешает?

Комментарии (55)


  1. atues
    21.02.2026 08:50

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


    1. ScriptShaper Автор
      21.02.2026 08:50

      Согласен. Команда сильных разработчиков в режиме «я начальник — ты дурак» просто выгорает.


  1. afarber
    21.02.2026 08:50

    Плот твист: заметку написал Серёга


    1. vodevel
      21.02.2026 08:50

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


    1. ScriptShaper Автор
      21.02.2026 08:50

      Если бы статью писал Серёга, он бы делегировал написание мне )


  1. outlingo
    21.02.2026 08:50

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


    1. Femistoklov
      21.02.2026 08:50

      Еще один неучтенный фактор - новому лиду вы достались в состоянии "мы такие жертвы лида" - но подтянутые в профессиональном плане.

      Зелёные новобранцы в учебке и строгий инструктор. Классика.


  1. ermadmi78
    21.02.2026 08:50

    Есть такое замечательное высказывание - "Ребёнок – гость в твоём доме. Накорми, выучи и отпусти". Менее опытный коллега, которого ты взялся обучать, такой же гость в твоём доме. Нужно вовремя его "отпустить". Иначе вреда от твоего менторства будет больше, чем пользы. Гиперопека так же вредна, как и полное невнимание.

    И есть ещё одно замечательное высказывание - "На ошибках учатся". Дай возможность своему ученику ошибаться. Иначе он ничему не научится.


    1. LaserPro
      21.02.2026 08:50

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


      1. ermadmi78
        21.02.2026 08:50

        Да, тут "Бритва Оккама". Нужно предотвращать ошибки, способные нанести существеный вред. А по мелочи - не обращать внимания.


  1. evomed
    21.02.2026 08:50

    По моим данным — команда без кодящего тимлида выдаёт на 41% больше

    Больше не значит лучше


  1. outlingo
    21.02.2026 08:50

    Он сел и за полтора часа переписал 70% моего кода. Объективно стало лучше. И абсолютно чужим

    Зато вы научились новому, верно? Ведь научились, да? Теперь вы тоже сможете делать такого класса задачи не за три дня, а за один (ну, для начала) - то есть ваша эффективность выросла в три раза.


    1. sunnybear
      21.02.2026 08:50

      Эффективность, то, может, и выросла. Только мотивация упала. А она важнее.
      Нужно каждый день тянуть лямку, можно и плохо, и медленно, и неэффективно. А не пару раз в год - зато супер эффективно!


      1. outlingo
        21.02.2026 08:50

        Только мотивация упала.

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


        1. sunnybear
          21.02.2026 08:50

          Возможно, вы не знакомы с понятием "ненасильственное общение" (ННО). Если нет, то стоит ознакомиться. Треугольник Картмана никто не отменял, но всегда можно сделать чуточку лучше.


          1. bogolt
            21.02.2026 08:50

            Треугольник Картмана

            О боги я себе представил Эрика Картмана, который объясняет Стену что тот спаситель, Кайл жертва он Эрик преследователь.

            (Для тех кто не понял шутки треугольник Карпмана ).


      1. ScriptShaper Автор
        21.02.2026 08:50

        Именно. Работать без мотивации это как ехать идеально правильно, но с полупустым баком.


    1. LaserPro
      21.02.2026 08:50

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


  1. Arm79
    21.02.2026 08:50

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

    Мало что погружаться, так ещё и нет предсказуемости в сроках


  1. powerman
    21.02.2026 08:50

    "Тимлид должен кодить" - это не про то, что он должен всё ревьювить круче всех, обучать и быть параллельно техлидом, а про то, что он должен иметь адекватное представление о рабочих процессах, проблемах и подходах к их решению. Если не кодить, то года за 3 можно сильно оторваться от реальности. Просто вспомните, как все писали код 3 года назад (без LLM), как пишут сейчас, и как это повлияло на рабочие процессы - и представьте, что тимлид всё это пропустил, потому что вместо того, чтобы лично пощупать LLM он ходил на созвоны и отбивал фичереквесты…

    Жёсткие ревью PR с десятками замечаний и переделкой по 4 раза могут быть крайне полезны для развития и обучения команды, и давать кратный рост производительности команды. А могут душить инициативу команды и вести к её выгоранию и увольнению. Это вопрос софт-скиллов того, кто такие ревью делает - он должен учитывать много факторов: есть ли бизнес-возможность отложить мерж этого PR ради обучения, есть ли время у самого ревьювера заниматься обучением во время этого ревью, готов ли автор PR обучаться прямо в рамках работы над этим PR… ну и сдерживать собственную вкусовщину, потому что требовать чтобы другие писали ровно как ты - бессмысленно и вредно.

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

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


  1. Kerman
    21.02.2026 08:50

    А я понимаю Андрея и его цели. Думаю, что он хотел понятную и управляемую систему без накопленного технического долга. По крайней мере, вот эта фраза об этом говорит:

    Объективно стало лучше

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

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


    1. powerman
      21.02.2026 08:50

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


      1. Singaporian
        21.02.2026 08:50

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

        Команда сегодня почти уже не нужна. Всегда код пишут 1-2 самых сильных, а остальные - обуза.
        Это порождает другую проблему, bus factor, но пусканием под автобус Андрея она не решается.
        А как решается - сам не знаю...


        1. powerman
          21.02.2026 08:50

          Но я экспериментировал и на несколько месяцев отпускал поводья. Команда встаёт колом просто.

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

          Команда сегодня почти уже не нужна. Всегда код пишут 1-2 самых сильных, а остальные - обуза.

          Пока продукт небольшой - так было всегда. А вот когда продукт начинает активно развиваться, то 1-2 сильных разработчиков резко перестаёт хватать. Да, сегодня, если эти разработчики успешно освоят LLM, то они смогут выдавать больше результата (того же качества) в месяц. Но больше - всё-таки не в разы, по разным оценкам это 20%+. Потому что всё-равно нужно тщательно продумывать архитектуру, постановку задач и внимательно ревьювить код выдаваемый LLM. Объективно можно рассчитывать максимум на то, что команда из 2-х сильных разработчиков будет выдавать результат как будто их там таких 3, а не 2.

          Помимо роста продукта нужда в команде обычно возникала ещё и потому, что во-первых не всем удавалось нанять тех самых 1-2 реально сильных, и во-вторых для защиты от bus factor. И вот это пока никуда не делось. Без контроля сильного разработчика LLM будет выдавать мусор очень среднего уровня, и bus factor тоже никуда не делся.

          Если, как в Вашем случае, сильный разработчик одновременно владелец компании, и продукт достаточно небольшой чтобы он лично успевал его развивать, то да, команда особо не нужна (особенно если перекинуть всю рутину на LLM). Только вот есть проблема: шансы что бизнес будет развиваться при таком подходе стремятся к нулю. Потому что владелец либо будет тратит свои силы на бизнес, либо на код. Если он будет заниматься бизнесом, то код придётся писать кому-то другому, плюс резко увеличивается шанс, что с развитием бизнеса понадобится больше (сильных) разработчиков чтобы успевать развивать продукт. А если он будет заниматься кодом, то вполне реально поддерживать текущий уровень бизнеса, но не более того.


          1. Kerman
            21.02.2026 08:50

            Тут одно из двух: либо команда в принципе не способна самостоятельно работать, либо им это отбил текущий стиль управления.

            Что-то как-то вывод похож на ложную дихотомию. Неужели не допускаете промежуточных вариантов?

            Я допускаю. Допускаю, что у наёмных сотрудников есть семья, ипотека, свои проблемы и радости. И работа у них далеко не в первых строках приоритетов. Они могут быть замечательными и честными людьми. Но ответьте на вопрос: а у них будет выше зарплата, если они начнут работать больше?

            А если будут работать меньше, будет ли у них снижаться уровень стресса? А что им даёт устойчивость и поддержание низкой сложности проекта? Они будут меньше получать, если проект станет сложнее?

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


  1. pecheny
    21.02.2026 08:50

    Разные команды могут быть эффективны в разных конфигурациях. Одни раскрываются, когда все синьеры и плоская структура. Другие – сильный лид + много рабочих рук. Довелось как-то поработать в диджитале, там команда человек на 30–40 разрабы с менеджерами примерно 1:1 количественно, зато QA не существовало даже как понятия. Эта роль была размазана по всем участникам.
    К чему это я? В статье, мне кажется, описан кейс, когда команде поменяли лида на ПМ и команда поехала быстрее. А вся интрига в том, что шильдик на позиции поменять забыли. И изменения, следовательно, потребовали больше времени на осознание сути произошедшего.


  1. Lewigh
    21.02.2026 08:50

    Хороший тимлид — не обязательно лучший инженер. Иногда это тот, кто даёт инженерам спокойно работать. Банально звучит, на практике — редкость.

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

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

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


    1. oeditus
      21.02.2026 08:50

      И еще «один синьёр с потенциально опасной точкой зрения».


  1. vpgromov
    21.02.2026 08:50

    Поздравляем! Партия вами довольна! Вы получаете повышение: держите своя кошка-жена и миска риса!