[Перевод] Проклятие новичка-эксперта: как развалить команду разработчиков
Почему некоторые разработчики останавливаются в развитии, выбирая путь посредственности, и при этом получают отличные зарплаты, повышения и признание?
Программист и основатель нескольких компаний Эрик Дитрих* объясняет это феноменом «экспертов-новичков» — самоуверенных дилетантов, которые имеют влияние именно благодаря своей ограниченности. Под катом читайте, как такие псевдоэксперты появляются и приводят продуктивные команды к деградации. А также советы, как избавиться от влияния их «экспертного» мнения, сохранить эффективность коллектива и самому не попасть в ловушку ложного всезнайства.
*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.
За пределами «Мёртвого моря»: как хорошие группы разработчиков превращаются в плохие
Недавно я опубликовал пост «Как удержать лучших программистов», в котором рассказал, чего хотят от работы наиболее квалифицированные разработчики и почему они уходят, если не получают этого. Сегодня же я хочу сосредоточиться на командах программистов в организации.
В вышеупомянутом посте я ссылался на статью Брюса Вебстера об «эффекте Мёртвого моря». В ней Вебстер описывает тенденцию, когда самые талантливые разработчики, будучи наиболее востребованными на рынке, скорее всего, уйдут в более перспективные места, если дела в их нынешней компании идут неважно. С другой стороны, наименее талантливые, вероятнее всего, останутся, так как им будет сложно убедить другие организации нанять их.
Это важно для понимания того, почему в компаниях часто можно встретить людей с должностями, похожими на титулы, вроде «супер-старший-главный-ведущий-архитектор-крутой-эксперт». Такие сотрудники много зарабатывают и, возможно, у них есть значительный авторитет, но при этом они не слишком хороши как специалисты. Однако эта точка зрения по-прежнему касается отдельных сотрудников. Она объясняет состояние команды лишь в том случае, если предположить, что плохая группа — результат скопления таких разработчиков. Или, возможно, что условия работы настолько ужасны, что компания выгоняет всех, кроме подобных сотрудников.
Я считаю, что существует уникальная групповая динамика. Именно она и приводит команды к деградации, из-за которой талантливые разработчики уходят. При этом «эффект Мёртвого моря» Брюса является и катализатором, и логическим следствием такой динамики. Но я также думаю, что внутри команды должна произойти своя особая пагубная «магия», чтобы преобразовать внешнюю глупость во внутреннюю и повсеместную некомпетентность команды.
Пример из жизни: учимся играть в боулинг
Прежде чем перейти непосредственно к сути, я хотел бы рассказать, как я играл в боулинг. Да, я серьезно.
Я довольно спортивный человек. Когда я рос, меня всегда выбирали одним из первых в команду практически любого вида спорта или игры. Я был хорош, но ни в чем не достигал высот. Это привило мне неуместное ощущение мастерства без особых усилий. Также было, когда я стал заниматься боулингом.
Большинство игроков вставляют большой палец и два пальца в шар и тщательно отрабатывают технику броска — шар должен двигаться по широкой дуге, а затем переходить в центр дорожки. У меня не было терпения, чтобы этому научиться, и я обнаружил, что могу довольно неплохо имитировать такой бросок, не вставляя пальцы в шар и особым образом отводя локоть.
Это было некрасиво, зато действенно.
Чем больше я играл, тем лучше работал мой приём. Когда я для удовольствия вступил в любительскую лигу, мой средний результат начал стремительно расти. Конечно, я не был лучшим — там было несколько игроков со средним результатом от 170 до 200. Но я быстро поднялся с 130 до 140 и даже дошёл до диапазона 160 всего за несколько месяцев игры.
Не так уж плохо, согласитесь.
Но потом произошла странная вещь. Я перестал расти, остановившись примерно на отметке в 160.
Я спросил своего прежнего наставника, как вернуться на путь совершенствования, и он сказал очень интересную вещь, которую я запомнил. Вот суть его слов:
Ты не сможешь улучшить свои результаты, если продолжишь играть таким способом. Ты достиг потолка. Если хочешь стать лучше, тебе придётся научиться играть правильно. Тебе нужен другой шар, другой стиль броска, и тебе придётся начать пользоваться пальцами, правильно вставляя их в шар. И самое неприятное — сначала твои результаты намного ухудшаться. Пройдёт немало времени, прежде чем, ты станешь играть всё лучше и лучше, вернёшься к своему нынешнему среднему показателю и превзойдёшь его.
Какое-то время я сопротивлялся, но меня начало утомлять отсутствие прогресса и застой, и я решил выбрать более сложный путь. Купил шар, заказал в нем дырки под мою руку и начал играть правильно.
Ирония в том, что после этого я сменил работу и локацию и с тех пор играл, наверное, всего раз восемь, но что поделаешь, такова жизнь. Зато теперь, когда я прихожу в боулинг, у меня есть свой личный шар и перед броском мне не нужно выискивать подходящий именно мне.
Братья Дрейфус, быстрые результаты и остановка в развитии
В 1980 году два брата Дрейфус предложили модель приобретения навыков, которая сильно повлияла на теории, связанные с обучением, процессами и практикой. Позже они выпустили книгу, в которой доработали модель, доведя её до уровня, описанного в Википедии.
Модель включает пять фаз получения навыков:
Очевидно, что модель развития навыков сложная, раз для её описания нужна целая книга. Но если говорить коротко, то она описывает путь от «догматического следования правилам без понимания общей картины» к «интуитивному выходу за рамки с полным осознанием общей картины». Казалось бы, всё логично: человек должен естественным образом проходить эти этапы, словно зарабатывая пояса в карате. Однако на деле всё оказывается не так просто, ведь на этот путь влияют как восприятие, так и отношение.
Когда человек только начинает осваивать какой-то навык, он полностью в нём некомпетентен. Поэтому, вполне естественно, что в начале идёт неприятный период разочарования и замешательства. Это может продолжаться до тех пор, пока кто-то, например, инструктор, не начнёт «кормить его с ложечки» пошаговым процессом (или, как говорят Дрейфус и Дрейфус, «как ребёнок, человек начинает подражать и неуклюже действовать, методом проб и ошибок»). Но после относительно короткого первого этапа наступает момент, когда навык можно развивать самостоятельно через практику. Здесь вдохновлённый ученик начинает быстро прогрессировать, достигая «лёгких результатов».
Когда все подобные результаты получены, стремительный темп улучшений замедляется, и дальнейшее повышение уровня мастерства идёт гораздо сложнее. Я даже нарисовал график для иллюстрации этого процесса (который отнял у меня неприлично много времени, потому что вместо того, чтобы, как нормальный человек, начертить линию в Paint, я возился с построением варианта логистической функции 1/(1 + e^-x)). Этот график как раз отражает путь, который прошла моя игра в боулинг: от полной некомпетентности до определённого мастерства. Сначала я быстро прогрессировал, достигнув приемлемого уровня, а затем полностью остановился. В моём случае улучшение достигло локального максимума, после чего развитие прекратилось. Мне просто не хватало времени, чтобы продолжать работать в прежнем ритме или осваивать новые техники.
Этот процесс — пример того, что я назову здесь «остановкой в развитии» (да, я понимаю, что это психологический термин, но прошу вас забыть его привычное значение). В контексте освоения навыков остановка в развитии обычно происходит либо потому, что человек достигает предела своих способностей, либо потому, что сознательно решает прекратить прилагать усилия для дальнейшего совершенствования.
Мы не будем разбирать первую причину, так как большинство разработчиков вряд ли достигнут потолка при минимальной компетенции и сосредоточимся на второй: добровольном прекращении развития из-за убеждения, что статус эксперта уже достигнут, а значит, дальше совершенствоваться некуда и незачем.
Такой выбор в пользу неопределённой посредственности является входом в своеобразную фазу освоения навыков, которую я назову «эксперт-новичок».
Эксперт-новичок начинает действовать
Если рассматривать модель Дрейфуса, можно заметить, что со временем происходит переход от строгого следования правилам и отсутствия понимания общей картины к высокой интуитивности и полному осознанию этой картины. Этап «продвинутого новичка» — последний, где у осваивающего навык нет полноты видения. Таким образом, это последний момент, где можно ошибочно принять себя за эксперта.
«Компетентный» человек уже неплохо ориентируется в общей картине и не путает себя с экспертом: он знает, чего не знает. Это не относится к стадии «продвинутого новичка», так как на этом этапе человек находится в «неквалифицированной» части кривой Даннинга-Крюгера и зачастую является воплощением тезиса: «если я этого не понимаю, значит, это легко».
Таким образом, «продвинутые новички» могут пойти одним из двух путей: либо перейти к компетентной стадии, начав видеть общую структуру и своё место в ней, либо стать «новичком-экспертом», ошибочно решив, что уже знают всё. На первый взгляд это может показаться абсурдным, но не всё так просто.
Давайте вернёмся к моей карьере в боулинге и подумаем, что могло бы произойти, если бы я был единственным или лучшим игроком на дорожке. Я бы начал с посредственных показателей, но потом быстро достиг бы лёгких результатов освоения навыков, что позволило бы мне заметно продвинуться.
Несмотря на эффект Даннинга-Крюгера, я мог бы вполне логично решить, что у меня способности к игре, так как мой уровень быстро рос. Кроме того, я мог бы сделать ещё один, на первый взгляд, разумный (хотя и довольно самонадеянный) вывод: остановка моего прогресса означала бы, что я достиг вершины мастерства в боулинге. Ведь я не вижу вокруг никого, кто был бы лучше меня, а у любого навыка должна быть точка максимального мастерства. Значит, я уже достиг её.
Самое обидное в этой ситуации то, что пара выводов, которые на первый взгляд кажутся вполне логичными, приводят меня к ложным достижениям и побуждают отказаться от дальнейшего совершенствования. Я перехожу от оптимистической самооценки к логической ошибке: «Я знаю, что делаю всё правильно, потому что, как эксперт, я по определению делаю всё правильно». (Для любителей логических ошибок: это пример подмены аргумента).
Если взглянуть на график, можно увидеть, что он описывает модель Дрейфуса как машину состояний. На каждом этапе человек либо переходит к следующему, либо остаётся на текущем (за исключением стадии «новичок» или «продвинутый новичок», так как остаться на них можно только полностью отказавшись от деятельности). Разница в том, что я добавил на график ещё одну стадию — «эксперт-новичок».
«Эксперт-новичок» не может двигаться дальше, потому что прогресс требует осознания необходимости продолжать работу над собой, а к такому выводу прийти непросто. На графике «эксперт-новичок» находится чуть выше «продвинутого новичка», но не достигает уровня «компетентного». Это связано с тем, что он недостаточно компетентен, чтобы видеть общую картину и понимать иронию своего положения, но всё же обладает немного большей компетентностью, чем «продвинутый новичок», главным образом благодаря значительному опыту, накопленному, по сути, на стадии «новичка».
Если вы когда-либо слышали фразу »10 лет опыта или 1 год опыта, повторенный 10 раз», то «эксперт-новичок» — идеальное воплощение второго случая. Он довёл до совершенства умение выбивать 160 очков из 300 возможных, повторяя одно и то же изо дня в день, без отклонений от рутины или желания экспериментировать. Всё потому, что он убеждён: 160 — это лучший возможный результат, просто потому, что он сам его достиг.
Эксперт-новичок в разработке ПО
Программное обеспечение, как вы, вероятно, догадываетесь, сильно отличается от боулинга. В боулинге обратная связь занимает минуты. В разработке — месяцы, если не годы. Речь не о быстрой реакции, связанной с компиляцией, запуском или тестами, которые занимают секунды или минуты, а о полном жизненном цикле проекта.
Это означает, что фаза быстрого освоения навыков для разработчика — «продвинутого новичка» — может длиться годы, а не недели. В течение этих лет он может менять работу и получать повышения. Осваивая новые навыки в ускоренном темпе, он быстро продвигается по карьерной лестнице, начиная с позиций «инженер-программист I» и «II» ступени, затем становясь «младшим» или «старшим», а затем, возможно, и «ведущим», «архитектором» или даже «руководителем».
Итак, находясь под воздействием эффекта Даннинга-Крюгера и в стадии «продвинутого новичка», такие люди награждаются звучными экспертными титулами и слышат от рекрутеров, что они настоящие звёзды, «ниндзя» и прочее. Единственное, что мешает им сделать естественный шаг и перейти в стадию «эксперта-новичка» — оценки коллег и фидбэк от ИТ-сообщества. Но что происходит, если «продвинутый новичок» не заинтересован в общении с сообществом и по какой-то причине мало взаимодействует с коллегами? Примеры таких случаев в изобилии есть на The Daily WTF.
Они терпят неудачи, убеждённые, что во всём виноваты другие. И поскольку это помогает справится с когнитивным диссонансом, обвинение окружающих становится для них лёгким выходом. В итоге они приходят к выводу, что быстро достигли экспертного статуса, и им больше некуда развиваться. Так они официально становятся «экспертами-новичками» и готовы занять какую-нибудь нишу в компании, получая высокую зарплату, потому что ни они сами, ни окружающие не осознают, что они способны на большее.
У них такая узкая перспектива, что они думают, что их способы что-то делать — лучшие и единственные. Например, разработчик C#, который пренебрежительно относится к Java, никогда на ней не работая, или администратор MySQL, считающий NoSQL мимолётной модой. Нелюбовь к какой-то технологии или отсутствие опыта работы с ней автоматически не делает человека «экспертом-новичком». Проблема в солипсистском подходе: «если этого нет в моём арсенале инструментов или не часть моего опыта, значит, этого делать не нужно».
Ещё одна характеристика «эксперта-новичка» — он занимает какую-то авторитетную или влиятельную позицию. «Продвинутый новичок» — вполне конкретный этап. Здесь находится человек, который, будучи новичком, уже накопил какие-то знания и опыт и движется дальше. «Эксперт-новичок» — понятие одновременно буквальное и намеренно ироничное. Буквальное — в том смысле, что кого-то с такой большой практикой в качестве новичка можно назвать экспертом, и ироничное — потому что «эксперт» — это обычно либо самоназвание, либо ярлык от менеджеров или коллег, которые сами мало что понимают.
Олицетворением этого явления может быть «технический специалист» в небольшой, не связанной с технологиями компании. Он «разбирается в компьютерах», и, когда компания росла и ей потребовались минимальные IT-услуги, вынужден был стать программистом-любителем.
При переходе от простого опытного пользователя к разработчику его навыки начали превосходить ожидания, и он уверовал в свои способности. И поскольку у него нет коллег по профессии, единственные, кто может оценить его навыки, — это он сам и пользователи без технической подготовки, которые восхищаются и хвалят его. Такой сотрудник становится «одноглазым королём в стране слепых», местным экспертом. Это классический пример, так как в такой ситуации почти нет препятствий для того, чтобы стать «экспертом-новичком»: успех прост, стандарты низки, настоящих экспертов нет, конкуренции тоже, как и внешнего взаимодействия.
Единый источник гниения…
До этого я много говорил об «эксперте-новичке» — о его становлении, характеристиках, мышлении и, в какой-то степени, объяснял его мировоззрение как псевдорациональное. Давайте теперь попробуем разобраться, как описанные псевдоэксперты могут стать причиной профессиональной деградации целых групп разработчиков. Чтобы объяснить это, я вернусь к моей аналогии с боулингом. Простите, если она будет натянутой.
Допустим, заработок боулинг-клубов зависит от того, насколько хорошо играют их клиенты. Я живу в маленьком городе, где недавно открылся такой небольшой клуб. Не найдя работы разработчиком, я решил попробовать себя там в качестве игрока. Я не особо понимаю, что делаю, владелец клуба тоже, но мы оба заметили, что я быстро прогрессирую, несмотря на то, что странно играю. Мой средний результат растёт, клуб получает прибыль, и жизнь прекрасна!
Примерно в то время, когда мой результат начал превышать 150, клуб решил расшириться и нанять новичков для работы под моим руководством. Я показал им, как держать шар и как бросать — естественно, всё в моём особом стиле. Когда они спросили, для чего в шаре отверстия для большого, среднего и безымянного пальцев, я ответил: «Забудьте — мы ими не пользуемся». Желая угодить, они следовали моим советам и заметили, как их средний результат начал расти, также, как это было у меня, хотя мой собственный результат застопорился на уровне около 160.
Большинство из них были довольны тем, как всё идёт. Но пара человек оказались амбициозными: они начали больше практиковаться, читать книги и смотреть ролики по технике. Однажды они заявили мне: «В одном ролике мы увидели, что игроки вставляют пальцы в шар и достигают действительно высоких результатов — больше 200!» Они думали, что меня заинтересует возможность улучшения, и были расстроены, когда я ответил: «Нет, мы так не делаем. Я играю в боулинг дольше, чем вы живёте, и знаю, что делаю… Кроме того, нельзя верить всем видео, которые есть в сети».
Так я быстро и решительно подавил любые инновации в группе, напомнив, что я главный, потому что работаю в этом клубе дольше всех. Этот распространённый, но совершенно неадекватный довод останавливает любые обсуждения без удовлетворительного объяснения.
Половина амбициозных игроков отказывается от своего подхода «пальцы в шаре», а другая половина начинает тренироваться в другом клубе в полусекретном режиме. Через некоторое время их средние результаты достигают и превосходят мои, и они полагают, что их прогресс — объективная демонстрация преимущества их подхода — приведёт к изменениям. Однако вместо этого их ожидают мои гнев, нотации и заявления, что их результаты — случайность, а я тоже когда-то выбивал 205 очков.
Разочарованные, они уходят, оставляя клуб в упадке. Они покидают мою тупиковую и отсталую точку ради места, где люди не отстаивают заведомо плохие подходы из упрямства. Клуб теряет своих лучших игроков не из-за конкурентов, а из-за меня — типичного «эксперта-новичка».
…который отравляет всё
Игроки, которые остаются, усваивают два интересных урока. Первый — если они дождутся своей очереди, то смогут получить безоговорочную власть, независимо от своих реальных заслуг. Второй — быть посредственным в этом клубе не только допустимо, но даже предпочтительно. Поэтому, когда в клуб берут новых игроков, сотрудники с бОльшим стажем прививают им негативные практики, точно так же как это сделали с ними. «Эксперт-новичок» своими действиями и примером создал новых «экспертов-новичков» и фактически сформировал их культуру.
Ещё одно интересное развитие событий касается найма. Как главный «эксперт-новичок», я усвоил важный урок: поскольку мне не нравится, когда амбициозные новенькие превосходят меня, я начинаю изменять процесс набора персонала, чтобы искать посредственных «командных игроков», которые не угрожают моей позиции своими странными проектами, вроде идеи «давайте сунем пальцы в шар». Вы можете возразить: разве это не противоречит идее, что «эксперт-новичок» не видит общей картины? Ответ — нет. Моё решение о найме скорее подсознательное, чем осознанное. Это не «я не буду нанимать тех, кто лучше меня», а «эти люди просто не подходят для работы с моим «нестандартным» и «экспертным» подходом».
Возможно, я настолько погружён в свою культуру «экспертов-новичков», что путаю работу на уровне компетентного/эксперта с некомпетентной работой, потому что я просто не могу увидеть разницу. Здесь аналогия с боулингом немного теряет связь, но это можно сравнить с условным «собеседованием по боулингу», где я смотрю только на технику броска кандидата, а не на результат, и прихожу к выводу, что техника с результатом 220 очков плохая, потому что она отличается от моей. В итоге, боулинг-клуб теряет всех потенциально перспективных игроков с высоким средним результатом из-за отравляющего влияния группы «экспертов-новичков».
Вернёмся в реальный мир
С боулингом и клубами разобрались, но как всё это связано с реальной разработкой ПО? На самом деле, всё довольно очевидно. Может, дело в отсутствии автоматизированного тестирования. Или в огромных методах и классах. Или в большом количестве кода, который просто скопировали и вставили без изменений. Или в использовании устаревших или некачественных инструментов. Или в процессе.
Причин может быть множество, но их объединяет одно: у вашего руководства разрушительное сочетание — они мало что знают, не осознают, чего не знают, и считают, что всё, о чём они не знают, не заслуживает внимания. Такая культура вредна, потому что она вынуждает талантливых и амбициозных людей либо уходить, либо соглашаться на посредственность.
Вы можете подумать, что всё дело в личных качествах, что команды становятся такими из-за заносчивых или некомпетентных лидеров. Но я думаю, что всё сложнее. У этих «экспертов-новичков» может вовсе не быть таких очевидных недостатков. На мой взгляд, это естественное следствие изоляции, низких ожиданий и постоянного поощрения посредственных или трудно измеримых результатов.
Подумайте о природе ИТ-индустрии. В скольких компаниях, где вы работали, праздновали релиз, даже (а иногда особенно), когда выпускаемый продукт выходил за рамки бюджета и был полон багов? В скольких компаниях вы видели, как отказываются от сопровождения сложного приложения в пользу полного переписывания с нуля, только чтобы повторить этот цикл позже? И при этом люди, причастные к этому, получали похвалу и повышения. Это похоже на проектирование ракет, которые выглядят мощно, а на самом деле, просто падают, пролетев несколько сот метров после запуска, при этом их проектировщиков награждают за «успехи». «Ну, это не сработало, Джонс, но ты многому научился, так что мы повышаем тебя до главного разработчика ракет и поручаем вести разработку версии два. Ты — звезда!» И что удивляться, что после такого, этот условный Джонс начнёт считать себя гением.
Всё это возможно в нашей сфере, потому что у людей намного более низкие ожидания от ПО, чем от ракет. Я говорю это не для того, чтобы пожаловаться или призвать к кардинальным изменениям. Я делаю это, чтобы объяснить, почему нам так легко считать, что мы продвинулись в освоении своих навыков дальше, чем есть на самом деле, основываясь на нашем собственном восприятии и внешней обратной связи.
Создайте культуру развития вместо культуры стагнации
Определив отношение, разрушающее группы, которое можно назвать разновидностью самоуверенности, я бы хотел предложить несколько сравнительно простых шагов для того, чтобы этого избежать.
Самое важное, чтобы не попасть в ловушку «эксперта-новичка» — не верьте в собственный ажиотаж. Гордитесь своими достижениями, когда это уместно, но никогда не считайте своё обучение завершённым или своё мнение непререкаемым, независимо от вашей должности, стажа, наград или достижений. Значения имеют только рациональные аргументы и доказательства. Придерживайтесь здоровой скромности, постоянно стремитесь к улучшению и цените объективные метрики выше субъективных суждений — это поможет вам не стать «экспертом-новичком».
Вот несколько рекомендаций, чтобы предотвратить распространение этого явления в группе разработчиков:
Давайте коллегам в команде как можно больше творческой свободы, чтобы они могли показать свои подходы. И помните, что из неудач можно подчас извлечь больше уроков, чем из успехов.
Поощряйте обучение новым языкам, подходам, фреймворкам, паттернам или стилям — стимулируйте сотрудников бонусами или наградами.
Никогда не прибегайте к стажу, как к аргументу в споре.
Вводите правила, дающие внешний взгляд на компанию — например, ежемесячные тренинги и независимый аудит.
Решайте разногласия с помощью объективных мер, а не субъективных факторов, таких как старшинство или голосование.
Создайте «культуру доказательств» — мнения имеют значение только тогда, когда они подтверждены независимыми данными, статистикой, фактами и т. д.
Проводите периодические опросы сотрудников — как младших, так и старших — с просьбой указать несколько своих сильных сторон и столько же вещей, о которых они ничего не знают или хотели бы узнать больше. Это поможет заранее уменьшить чувство «всезнайства», особенно у опытных сотрудников.
Этот список больше подходит для менеджеров и лидов, но повлиять на изменения можно и будучи обычным сотрудником. Разница лишь в том, что вам, возможно, придётся искать поддержки руководства и убеждать, а не приказывать. Хорошо работает и личный пример. Если ничего из этого не помогает и кажется, что ситуация безнадёжна, лучше поискать компанию с более благоприятными условиями.
В целом важно создать культуру, где ответ «я не знаю» будет приемлемым даже для самых опытных и заслуженных лидеров команды. Это ключ к предотвращению упадка вашей группы из-за «экспертов-новичков». Искреннее «я не знаю» — это то, чего «эксперты-новички» никогда не скажут. И именно в этом заключается фундаментальное отличие между человеком, который осваивает новые навыки, и человеком, который решил, что знает достаточно. Помните — если ваша команда не развивается, она разлагается.