Teamlead Good Reads – ежедневные советы про менеджмент людей и команд
28.2K subscribers
367 photos
5 videos
1.86K links
Самые интересные статьи, видео и новости, связанные с управлением людьми, командами, разработкой и продуктами.

РКН: https://gosuslugi.ru/snet/67b4386d2a44e21839a0f87f

Продуктовая папка: https://t.me/addlist/YvmnHCHUp700Nzky

Реклама: @tanyasanovna
Download Telegram
Про принятие решений в условиях неопределенности

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

Когда я надел на себя шапочку директора, то я понял, насколько ужасно ошибался:

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

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

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

Так вот, а что по факту-то помогает с принятием решений в неопределенности:

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

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

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

У меня осталось несколько заметок с мыслями, про которые я не успел разогнать на прошедшем недавно круглом столе Стратоплана про то, какие навыки важны для директора – поэтому попробую их постепенно в канал выгрузить, вдруг полезно будет!
1🔥44👍2616👎3
Не складывайте слабости

Есть два интересных эффекта, которые в совокупности дают довольно-таки разрушительный эффект:

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

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

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

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

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

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

Очень интересно, куда это все приведет! А пока я продолжу записывать транскрипты всех встреч, вообще не представляю, как бы я жил без этого.
18👎3👍1
Как просить незнакомых людей о помощи

👉Как и в любой другой ситуации, все начинается с эмпатии. Поставьте себя на место этого человека, и, думая о том, как будете просить о помощи, оценивайте, как это скажется на нем.
👉Вы просите оказать помощь в первую очередь вам как человеку, а не вашему проекту. Поэтому нужно показать, что вам есть смысл помогать. Во-первых, покажите, что настроены серьезно. Например, приложите какое-то свидетельство того, что вы уже сами что-то сделали по теме просьбы. Во-вторых, можно сослаться на общих знакомых, или сослаться на репутацию вашей компании или учебного заведения.
👉Объясните контекст просьбы, но очень кратко, историю всей своей жизни рассказывать не надо.
👉Сформулируйте запрос так, чтобы его было просто принять. Например, если просите представить вас кому-то, сразу приложите краткий текст для этого. Ну и не просите слишком много времени и внимания.
👉Сделайте так, чтобы вам было просто отказать, не надо пытаться манипулировать и загонять в тупик. Даже если вам в результате этого помогут один раз, дальнейшим отношениям это не поможет.
👍111
Про развитие руководителей

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

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

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

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

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

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

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

Работает очень круто, рекомендую всем попробовать!

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

Это вторая из серии заметок (первая вот тут), которые я готовил к недавнему круглому столу Стратоплана про то, какие навыки важны для директора – там еще несколько осталось, так что ставьте лайки!
28👍25🔥5
О чем менеджеров забывают предупредить

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

👉Тебе сложнее абстрагироваться от работы, когда приходишь домой
👉Ты уже не чувствуешь себя частью команды в том же смысле, что и раньше.
👉Тебе надо внимательно следить за каждым своим словом – шутки могут восприниматься по-другому, ныть на руководство тоже больше нельзя.
👉Весьма вероятно, что ты будешь чувствовать себя сильно более одиноким.
👉Тебе придется держать в себе новости, которыми нельзя поделиться – например, про приближающийся реорг или сокращения.
👉Часто ты вообще не будешь чувствовать никакого прогресса в том, что ты делаешь.
👉Тебе придется учиться продавать – и идеи, и достижения своей команды.
👉Ты часто будешь чувствовать себя беспомощным, так как важные решения, влияющие на команду, будут приниматься без твоего инпута.
👍4119👎3
Как не потерять понимание агентского кода

Количество PR в день выросло, а вот наша способность быстро процессить такой объем информации, и достраивать понимание того, как работает система, осталась прежней. Держите несколько интересных техник того, как это понимание не потерять:

1️⃣Просите агента для каждого PR готовить дополнительную объясняшку по следующим принципам:

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

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

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

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

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

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

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

Но проблема в том, что такое поведение – вредно для бизнеса, а ваша задача – помогать ему быть успешным. Каким бы добрым и прекрасным в общении с людьми вы бы ни были, если вы не умеете принимать и исполнять сложные, но полезные для бизнеса решения, вы будете некомпетентным.
👎164👍1
Меня каждый раз немного передергивает, когда я вижу очередной психотический текст про то, как надо онбордить своих AI сотрудников. Это очень тупая и сложная метафора с кучей лишних коннотаций для одной очень простой мысли – "дайте агентам нормальный контекст в той доменной области, в которой вы их используете".
👍356
Упорная работа ни к чему не ведет

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

👉Вкладываемые усилия линейны. Итоговый успех зависит от того, на какой конкретно позиции вы их вкладываете, особенно при наличии дополнительных рычагов вроде репутации, капитала или связей.
👉Если вы компетентны и много работаете, но при этом невидимы, выша работа тоже останется незамеченной. Результаты, к сожалению, сами про вас не говорят.
👉В целом рынок безразличен к тому, сколько усилий вы вкладываете. Вас оценивают за доставленную ценность.
👉Доставленная ценность зависит от правильно выбранной проблемы для решения. Если вы выбрали неправильную проблему, и тратите годы, чтобы достичь совершенства в ее решении, структурно это абсолютно бессмысленно.
👍64🔥98
Симулятор сотрудника FAANG

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

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

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

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

Поэтому более корректный подход – не пытаться ритуально танцевать вокруг оценки confidence, а принять, что будущее непредсказуемо, и предпринимать шаги, которые разумны независимо от распределения вероятностей:

👉Опираться на истины, которые будут верны всегда, вне зависимости от изменчивости рынка.
👉Побыстрее отправлять все идеи на проверку реальностью.
👉Фокусироваться только на потенциальном импакте фичи, и делать только самые потенциально важные штуки.
👉Определять области, в которых даже малые усилия дадут непропорционально большой результат, и инвестировать в них.
👉Сохранять опциональность – строить гибкие системы, которые в будущем позволят быстро среагировать на изменения.
👉Играть в асимметричные ставки. Это такие ставки, стоимость которых ограничена, а выигрыш – нет. Например, это любая импактная идея, которую вы можете протестировать, затратив на это заранее просчитанное ограниченное количество сил.
👍113
This media is not supported in your browser
VIEW IN TELEGRAM
Как переписать 1М строк кода с Zig на Rust

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

Ну и вообще, самое главное в статье – это детальное описание самого процесса миграции. Именно так будет выглядеть какая-то часть наших инженерных задач дальше. Вопрос только в том, насколько большая.
👎198🔥5👍3
Как в компаниях реагируют на проблемы

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

В статье чуть больше паттернов описано, но мне вот эти два прямо в душу легли, потому что ну как же много похожего я видел.
🔥14👍43
Что сейчас чувствуют люди в IT

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

👉Половина чувствует себя заряженными – им кажется, что они могут сделать гораздо больше классного, чем раньше. Вторая половина находится в разной степени стресса, разочарования и выгорания.
👉Говоря про выгорание – оно свойственно и первой группе. 56% опрошенных говорят о сильном градусе выгорания, тогда как в прошлом году их было 44%.
👉Одновременно с этим падает оптимизм относительно карьеры в нашей индустрии. Что интересно – больше половины опрошенных теперь активно отговаривают других идти работать в IT.
👉Все оценивают свою продуктивность как повысившуюся, а вот качество результатов стало хуже.
👉Самый сильно коррелирующий с выгоранием фактор – эффективность менеджера. Так что засучиваем рукава!
👍2111
Про организационный дизайн для директора

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

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

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

👉Начну сразу с козырей, и порекомендую книгу Team Topologies. В ней довольно много лишнего, но первая часть – золото, потому что дает хороший набор строительных блоков, из которых можно дизайнить свою организацию, их интерфейсов для работы друг с другом, и ограничений, от которых стоит отстраиваться. Сильно помогает рассуждать про оргдизайн гораздо глубже, чем просто рисуя рандомные квадратики на доске в Miro.
👉Оргдизайн – это всегда политический вопрос. Размер команды, скоуп, зона ответственности, да даже название – все это напрямую влияет на статус людей, их власть и даже на зарплату. Поэтому про оргдизайн нельзя думать чисто рационально – люди будут сопротивляться, когда у них что-то забирают, или когда кому-то другому дают новую область ответственности. При любой реструктуризации обязательно заранее продумывайте, как она повлияет на всех, кого затронет, проговорите с ними лично, придумайте противовесы.
👉Команду важно вовликать в дизайн ее собственной структуры, но при этом продолжать держать в голове предыдущий пункт. Задача директора – отделять рациональные возражения от политических, и работать с ними по-разному.
👉Для нормальной работы с оргдизайном важны базовые представления о психологии групп и групповой динамике. Самый банальный пример – как только вы разводите людей по двум разным группам, вы строите забор между ними, и провоцируете разделение на "свой-чужой". Если для успеха важного проекта этим людям нужно работать сообща, то такое решение может быть не самым лучшим.
👉Нужно понимать, как организованы потоки работы и доставки ценности – где проходит критический путь, где на нем возникают передачи задач от одной команде к другой, где бутылочные горлышки, где вся система спотыкается.
👉У вас никогда не будет идеального оргдизайна. Меняется внешний мир, меняются цели, меняются внутренние компоненты системы, и ее нужно постоянно донастраивать. А для этого вам нужна собственная система сигналов о том, что происходит на ее входах, выходах, внутренних взаимодействиях.
12👍8🔥4
Интервью в Weekend Talk

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

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

Так вот, я недавно сходил в гости в подкаст Weekend Talk, где рассказал Андрею Смирнову про оба эти изменения, а заодно много разных баек про жизнь в Шотландии, автоматизацию работы AI клуба, в котором, в отличие от конференций Podlodka Crew, я изначально решил не пытаться нанимать большой команды, и про свои мысли про будущее роли тимлида.
🔥285👍1👎1
Как строятся современные базы знаний

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

👉База знаний строится поверх всех источников, в которых уже накапливается ценная информация – Slack, кодовая база, документы, Jira, Confluence и куча чего еще.
👉Самые полезные сведения лежат в Slack, так как в глубине тредов принимается куча важных решений. Вытаскивать ее оттуда тоже очень сложно, потому что мусорных обсуждений тоже много. В итоге сработала комбинация из полнотекстового поиска, эмбеддингов, механизма устаревания фактов, реранкинга более редких токенов.
👉Для поиска по коду используется опенсорсный фреймворк CocoIndex, который умеет пересчитывать индекс для каждого коммита инкрементально.
👉В базе знаний есть механизм плагинов, чтобы каждая команда могла добавить свой кастомный источник.
👉Помимо непосредсвенно поиска информации, сделали отдельный тул who_knows, который сразу выдает имена людей, релевантных поисковому запросу.
👉Информация агрегируется по проектам, чтобы сделать результаты поиска более релевантными.
👍27🔥95
AI внушает ложную уверенность

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

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

Наблюдения вот такие:

👉Доступ к AI снижает вероятность ответа на вопрос "я не знаю" с 44% до 3%.
👉Точность ответов при этом упала с 27% до 9%, а вот уверенность в ответе, наоборот, выросла в 2.5 раза, с 30% до 76%. При этом часть участников были готовы ответить правильно до консультации с AI, а потом поменяли свой ответ.
👉Добавление денежной мотивации почти не помогло, готовность признать незнание поднялась только до 8%, а точность до 16%.
👍213
Про comprehension debt

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

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

Когнитивная нагрузка появляется от двух видов сложности:

👉Intrinsic, неотъемлимая сложность предметной области. Как код ни упрощай, биллинг всегда будет сложным.
👉Extraneous, случайная сложность. Плохо организованный ручной пайплайн деплоя, много разных форматов конфигурации, лишние слои абстракции.

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

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

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

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

Еще про comprehension debt хорошо пишет у себя в канале Владимир Балун. Он руководил разработкой системы трейсинга с трафиком 11GB/s в Яндексе, поэтому набил руку на сложных системах, и знает, о чем говорит. Поэтому можете почитать его пост, а заодно подписаться на его канал, где он рассказывает о своем опыте программирования, разработке сложных высоконагруженных систем и просто делится своими мыслями о разработке.
👍2214👎1