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

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

Содержание

Тимлид: программист или менеджер?

Начали сразу в лоб. 

— Многих лидов шатает в момент перехода из инженера в менеджера. Это нормально: ты уже оставил одни навыки, а новые ещё не освоил полностью. Появляется ощущение «я теперь ни то, ни другое», — размышляла Маша.  

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

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

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

Что происходит с командой, когда лид уходит 

Маша вспомнила такой эксперимент — ненамеренный, но очень показательный. 

— Я работала в рекламной команде. Там был очень классный тимлид: много делегировал, команда была самостоятельная, все сами ресёрчили, лид занимался people management. Настоящая мечта.

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

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

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

Тут еще больше контента

Корректирующий фидбэк: почему «бутерброд» не работает и что делать вместо него 

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

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

У человека был талант. Он был создан для дачи корректирующего фидбэка.

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

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

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

Вот здесь важное различие. В IT не принято орать, даже если человек сделал всё не так. И неважно почему именно случился фейл: случайно или из-за систематического «забивания». Жёсткость по содержанию и неуважение к человеку — это разные вещи.

Почему «бутерброд» уже не считается хорошей практикой

Многие знают методику «бутерброда»: говоришь что-то хорошее, потом — проблему, потом — опять что-то хорошее. Логика простая: сладкое смягчит горькое.

По словам Маши, её уже давно считают неэффективной. 

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

Нормальный корректирующий фидбэк устроен иначе:

  • описываешь ситуацию — что именно произошло, без оценок;

  • описываешь поведение — конкретное поведение, которое хотели бы поддержать или изменить;

  • описываешь влияние — как то, что произошло, на всё повлияло;

  • говоришь, что хочешь изменить.

Никакой сладкой обёртки. Никакого «но молодец в целом». Прямо, конкретно, с уважением к человеку.

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

Фил предложил свой вариант:

— Чувак принёс pull-request, и мы поняли, что наняли некомпетентного кретина. Ожидание, что мы наймём адекватного человека, у которого есть минимальные мозги и который делает то, что надо. Ожидания не совпали. Чего мы теперь ждём?..

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

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

Что делать, когда человек завалил большую задачу 

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

На это Маша предложила сначала разобраться в другом: 

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

Если в рамках грейда — значит, он не соответствует своему грейду. Тогда разговор прямой: «Смотри, ожидания вот такие. У тебя здесь не получилось. Возможно, я не досмотрела — надо было не две недели ждать, а поставить точки контроля раньше. Давай переделаем и постараемся так не делать».

Если задача была выше его уровня — то это скорее ошибка планирования. Тогда другой разговор: «Кажется, с первого раза прыгнуть выше головы не получилось. Давай подходить к таким задачам более итеративно».

Тёма в ответ пошутил, что это звучит как «тимлид допустил ошибку и дал задачу идиоту» — то есть тимлид берёт ответственность на себя. 

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

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

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

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

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

Человек не может знать всё. Задача менеджера — создать среду, в которой люди могут вовремя сказать об этом

Отдельная история — концепция таланта. Как его определить? Что это такое? Ребята обсуждали на примере: «Допустим, есть человек, у него неплохие компетенции, но недостаточно “ума”. Ему приходит задача сделать внутреннюю библиотеку. Что делать в такой ситуации, когда очевидно, что человек недостаточно интеллектуален и шансов получить удобный инструмент очень мало?»

Если у тебя нет таланта — всё решается усердием. 

Например, Фил честно признался, что не считает себя талантливым программистом. У него неплохо получалось кодить, проходить собеседования, рассуждать о программировании и придумывать что-то. Его карьера была вечным побегом от того, чтобы сделать что-либо. Нормально и вовремя закрывать задачу (или заранее предупреждать, что в срок не получается) — уже талант. И это обычное ожидание сейчас в IT, потому что указывает на управляемость.

Когда человек не приходит в день дедлайна и говорит: «У меня не вышло». А приходит заранее и говорит: «Я застрял, вот в чём проблема, вот что мне нужно». Тогда в игру вступает тимлид: редактирует сроки, перераспределяет задачи и так далее. 

Тёма признался, что у него нередко такое бывает: «5 минут до дедлайна — сдавать нечего». Фил, конечно, пошутил, что Тёма не пришёл раньше, потому что сел за задачу 5 минут назад. Правда, у Тёмы творческая работа, но и любой программист, как Фил, может решить, что именно его работа — творческая. 

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

А что делать с совсем неуправляемым

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

Конечно, не везде так. Весь диалог шеф подкаста всё ждал ответа на вопрос: «Что же делать с Тёмой?». Ответ ему никак не помог: благо, Тёма не в найме, его никак не уволить.

В жирные времена рынка такой ответ не был выходом. Невозможно было просто взять и уволить синьора. До последнего. К нему приходили и постоянно спрашивали: «Что нам сделать? Как тебе помочь? Дай нам путь, чтобы ты делал работу хоть чуточку».

— И сейчас вопрос именно в системности, — отметила Маша. И добавила:

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

Кризисы и саббатикал 

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

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

Фил в этот момент вспомнил историю про Тёму. Он устроился писать статьи, и его заставляли их писать. Он был очень грустный и жаловался. Ему сказали: «Слушай, может, уйдёшь на месяц, отдохнёшь?» Он ушёл. Вернулся. И вдруг его снова работать заставляют. 

Жми сюда!

Вайбкодинг, курсы «за три месяца» и иллюзия простоты 

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

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

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

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

Был показательный случай, который рассказал Фил. Один его друг-менеджер долго просил сделать ему приложение. Фил отказывал: сложно, долго. В какой-то момент друг взял GPT и объявил: «Теперь мне программист не нужен, я сам сделаю». Первое время получалось. Потом контекстного окна не хватило, всё посыпалось, и в итоге — тысяча Java-ошибок при сборке. Весь запал мгновенно сдулся. Это было год назад — с тех пор инструменты стали сильно лучше. Но суть не изменилась: разница между «накодить прототип за вечер» и «сделать поддерживаемую систему» — огромная.

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

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

Это не вайбкодинг виноват

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

Внутри больших IT-компаний это не такая острая история — там все понимают разницу между «прокликать промпт» и «выстроить архитектуру». Опаснее в маленьких командах и при работе с внешними заказчиками: именно там ожидания и реальность расходятся сильнее всего.

Реклама, геймификация и «на меня это не работает» 

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

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

Пятнадцать минут — и только потом система «пообиделась» и позволила поискать самому.

Это не случайность. Геймификация — сознательная стратегия, которая пока законодательно не ограничена. Она работает, потому что лёгкий эндорфин от «выигрыша» является мощным механизмом.

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

— Это хорошо зарабатывающий продукт. Особенно после того, как ушли зарубежные игроки типа Google. И я немного устала слышать одно и то же: «На меня реклама не работает». Нет, работает. Просто люди воспринимают рекламу только как прямое целевое действие — кликнул, купил. Но реклама работает и на брендинг: просто мелькает перед глазами, и ты запоминаешь, что бренд существует. Не кликаешь сейчас, но когда придёт момент выбора, он окажется среди тех, кого ты «знаешь».

Тут Фил добавил: 

— Баннерная слепота — это не значит, что реклама на тебя не работает. Это значит, что ты не осознаёшь, как именно она работает.

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

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

Это всё, конечно, никак не мешает Temu крутить колёса фортуны.

Мысленный эксперимент: вредитель в команде 

В конце разговора Тёма достал традиционную рубрику «шизанутый мысленный эксперимент». Он предупредил, что они давно этого не делали, а Маша стала первым гостем после возвращения этой традиции.

Условие: началось нашествие опасных крэйзи-инопланетян. Они захватывают тела людей. Тебя поймали. Говорят: твоя команда должна разработать фичу в очень сжатые сроки. Если провалите — убьём всех. Цена ошибки максимальная.

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

— Подожди, — остановила его Маша. — Значит, у нас команда, есть задача, есть лазутчик, и я не знаю, кто он?

— Именно. И всё, что он пишет, делает только хуже.

— Выстраивать нормальный процесс разработки, — ответила Маша.

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

— Скажу ли я команде, что среди них вредитель? Нет.

Фил удивился:

— А почему?

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

Фил добавил, смеясь:

— Если пойти к команде разработчиков и сказать: «Среди вас есть злонамеренный вредитель», — они такие: «А, я всегда это знал».

И ещё один аргумент привела Маша:

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

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

Тогда Тёма добавил условие: а если ещё нельзя написать ни строчки кода самой? Иначе убьют.

Ответ почти не изменился.

— Настраивать инфраструктуру — это не обязательно писать код. Код-ревью, пайплайны, системы тестирования, делегирование предохранителей инженеру — всё это работа тимлида без единой строки кода. Смотреть код же можно? Можно. Настраивать системы? Можно.

— Слабое место этого эксперимента, — говорит Фил, — в том, что когда приходишь к тимлиду и говоришь: «Представь, что у тебя в команде вредитель», он такой: «Так. И что изменилось?»

— Это примерно мой обычный вторник, — пошутила Маша.

Короче

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

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

  • Сеньор сегодня — это не только «шарит», но и несёт ответственность. Время «двух месяцев ничегонеделания» ушло вместе с голодом на рынке.

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

  • Команда может работать без лида, но не бесконечно. Деградация приходит постепенно.

  • Корректирующий фидбэк — это не бутерброд. Описывай ситуацию, поведение, эффект и что нужно изменить. Прямо, конкретно, с уважением.

  • Важно не сюрпризить в дедлайн. Создавай среду, в которой люди могут вовремя сказать, что что-то идёт не так.

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

  • Лучшая защита от хаоса — не поиск виноватых, а системы предохранения.

Спасибо, что дочитали до конца! Делитесь мыслями и задавайте вопросы в комментариях!

Кликни здесь и узнаешь

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