Полная версия
Элегантная головоломка. Системы инженерного менеджмента
Уилл Ларсон
Элегантная головоломка. Системы инженерного менеджмента
В тексте упоминаются социальные сети Facebook и/или Instagram (организации, запрещённые на территории РФ).
Meta Platforms Inc. признана экстремистской организацией на территории РФ.
First published in English as An Elegant Puzzle: Systems of Engineering Management by Will Larson
Copyright © 2019 Will Larson
Published by permission of Will Larson (USA) and Nordlyset Literary Agency, LLC (USA)
via Igor Korzhenevskiy of Alexander Korzhenevski Agency (Russia)
© Шустова А. П., перевод на русский язык, 2023
© Оформление. ООО «Издательство «Эксмо», 2023
* * *Благодарности
Хочу выразить особую благодарность некоторым людям.
Эту книгу я закончил писать за несколько месяцев до свадьбы и благодарен моей Лорел за ее мысли и поддержку. Спасибо Брианне Вулфсон и Тайлеру Томпсону, без которых эта книга не увидела бы свет. Наконец, спасибо Хоуп, любимой талантливой сестре, показавшей, что и я могу стать автором.
Предисловие
Свою первую запись в блоге я опубликовал 7 апреля 2007 года под заголовком «Поиск нашего стиля программирования». Текст был не очень хорош. В том же году я написал еще 69 статей. Последняя – «Миядзима и Хиросима» – представляла собой коллекцию фотографий из поездки по Японии, во время которой я преподавал английский язык. В следующем году я написал уже 192 поста. Но манера моего письма по-прежнему оставляла желать лучшего.
Потребовалось написать 200 статей и целое десятилетие, чтобы сделать достаточно ошибок и наконец-таки усовершенствовать стиль письма. Тогда уже о моем опыте стало интересно читать другим. Мне повезло, что на тот момент я работал в Stripe, где люди, как правило, достигали целей, которые вне компании могли бы показаться недосягаемыми (таких, как создание технологического журнала или публикация книги).
«Элегантная головоломка» – удачное сочетание опыта, почерпнутого в Stripe, десяти лет, проведенных за написанием постов и изучением лидерства и менеджмента. Плюс мне повезло с коллегами, которые предложили объединить мои посты в единое пособие.
Я надеюсь, что каждый, кто возьмет эту книгу в руки, извлечет для себя что-то полезное. Своими комментариями и мыслями вы можете поделиться со мной по электронной почте – я буду несказанно рад: lethain@gmail.com.
Глава первая
Введение
Одни приходят в менеджмент из желания приносить пользу. Другие становятся руководителями, заключив циничное соглашение с самими собой: меняют стабильную должность на бо́льшие деньги и карьерный рост. Есть и те, кто идут в управленцы потому, что по горло сыты своим нынешним начальником и убеждены, что справились бы с его работой куда лучше.
Не скажу, какой из этих сценариев описывает мою ситуацию. Если мне вообще подходит хоть один.
Независимо от того, что привело вас в менеджмент, может возникнуть ощущение, что вы выбрали трудную профессию, ступили на тернистый путь. Квалифицированных специалистов не хватает, и редкая компания готова инвестировать в повышение профессионализма своих сотрудников.
Достойных учебных программ не так много, и опасения по поводу плохой подготовки менеджеров широко распространены. В начале управленческой карьеры мне повезло: один коллега назвал меня лучшим руководителем, с которым он работал. Другому потребовалось несколько лет совместного труда, чтобы назвать меня худшим.
Хоть плащ Давида уже и не скрывает сущность великанов-голиафов из Кремниевой долины, подавляющее большинство технологических компаний – всего лишь «куколки», мечтающие однажды стать «бабочками», то есть вырасти в крупный и успешный бизнес. На руководящих позициях сидят менеджеры, которые лишь учатся ремеслу и раз за разом получают от жизни неожиданные уроки. Для многих из них инженерный менеджмент начинается с кризиса, и их обучение – не что иное, как серия тяжких ударов.
Так было и в начале моего пути к идеальному руководству. Началось все с компании Digg в 2010 году. Тогда мне пришлось уволить несколько человек подряд. Это не привело к созданию строгих правил управления в моей голове. Я по-прежнему не представлял что делаю.
С самого начала я занимался самообразованием. Читал книги по менеджменту, казавшиеся мне хоть немного актуальными и практичными. Несколько из них вы найдете в разделе «Книги, которые я считаю очень полезными». Но редкие ответы, прочитанные на их страницах, тонули в постоянно растущем море вопросов. Потом мне довелось поработать в Uber (за два года их команда инженеров выросла с 200 до 2000 человек). Затем в Stripe, пережившей такой же стремительный рост. Лишь тогда я смог по-настоящему усовершенствовать свой подход к менеджменту, потому что столкнулся с бесконечным разнообразием проблем. Управление быстрорастущими компаниями спокойным не назовешь, но лучшей среды для обучения и развития было не найти.
Обретая опыт, я все больше ценил менеджмент, особенно инженерный. Стал рассматривать эту сферу как набор элегантных, полезных и важных головоломок.
Эта книга – сборник задач и их решений, над которыми мне посчастливилось поработать, и которые многому меня научили.
Все начинается с самого важного инструмента в моем наборе – организационного проектирования. Оно помогает расставлять людей по нужным местам, учит их самостоятельно принимать решения, брать ответственность за результат. Если систематически использовать этот инструмент и вносить умеренные изменения, откроются все дороги к масштабированию процессов.
Далее рассмотрим несколько фундаментальных «Инструментов» управления, которые я считаю полезными для самых разных сценариев. Эти методы варьируются от системного мышления до стратегического планирования, от метрик до миграции базы данных, от планирования карьеры до реорганизации компаний. Возможно, самое простое применение этой главы – быстро просмотреть изложенные в ней идеи и обратиться к ним, когда возникнет необходимость.
ЕСЛИ СИСТЕМАТИЧЕСКИ ИСПОЛЬЗОВАТЬ ЭТОТ ИНСТРУМЕНТ И ВНОСИТЬ УМЕРЕННЫЕ ИЗМЕНЕНИЯ, ОТКРОЮТСЯ ВСЕ ДОРОГИ К МАСШТАБИРОВАНИЮ ПРОЦЕССОВ.
В третьей главе «Подходы» рассматриваются обстоятельства, в которых вам, возможно, потребуется скорректировать методы управления. Вы узнаете, как адаптировать принципы менеджмента для быстрорастущих компаний и как управлять сотрудниками, когда желаемый уровень влияния выходит за рамки ваших полномочий. Надеюсь, информация из этой главы поможет вам найти альтернативный подход к работе в областях, в которых вам недостает уверенности и результативности.
За главой «Подходы» идет исследование понятия «Культура». Это раздел о практических методах создания инклюзивной команды или организации. В нем также рассматриваются несколько конкретных аспектов культуры, связанных с конфликтом «свободы для» и «свободы от», и так называемая «героическая культура».
Книга заканчивается главой «Карьера», посвященной собеседованиям, приему на работу и управлению эффективностью сотрудников. Многие менеджеры воспринимают подбор персонала как зону ответственности рекрутеров, а управление эффективностью – как вотчину специалистов по персоналу. Однако это мощные инструменты, которые вам стоит взять на вооружение.
Прочитав эту книгу, на следующий день вы не переступите порог офиса идеальным менеджером (меня по-прежнему радуют дни, когда я чувствую себя хоть немного некомпетентным). Но надеюсь, что по итогу вы задумаетесь о том, как грамотнее подходить к управлению. Что вам удастся поэкспериментировать с новыми методами, сделать еще несколько шагов на пути улучшения инженерного менеджмента.
Глава вторая
Организации
Организация представляет собой совокупность людей, работающих над достижением общей цели. Другими словами, это исследование возможностей, предпринятых командой из десяти, сотни или даже тысячи людей. Поначалу я хотел искушенно написать: «иногда у них это получается». Однако поистине удивительно то, что получается у всех.
Рисунок 2.1. Определение размеров команд и групп команд с использованием правил оптимальных размеров.
Просто некоторые справляются лучше других. Организационное проектирование – это попытка понять, почему одни генерируют энергию, а другие создают в основном проблемы: трения, разочарование и междоусобицы. Я считаю, что лучшие компании вырастают благодаря последовательной, логичной и эффективной работе.
Когда у меня возникает проблема, которую хочется решить быстро и дешево, я начинаю проектировать процесс. Проблема требует срочного решения или есть время подумать? Это хороший момент для развития корпоративной культуры. Однако, если поиск ответа затягивается, и определенного подхода к решению задачи нет, а процесс слишком слаб – на помощь приходит организационный дизайн.
В этой главе рассматриваются наиболее эффективные, на мой взгляд, подходы к организационному проектированию и развитию менеджмента в целом. Если, дочитав до конца, вы поймаете себя на мысли, что все звучит слишком просто – я соглашусь! Считаю, что трудность здесь только в одном – сохранять мужество в сложных ситуациях.
2.1. Выбор размеров команды
Сначала я был менеджером одного отдела. Но когда стал директором целой компании, то столкнулся с нового рода проблемами, о которых никогда не задумывался. Сколько у нас должно быть команд? Стоит ли создавать новую под конкретную задачу? Или же поручить все старым? Как правильно определить их зоны ответственности?
С этими вопросами я подался в тогда еще малоизвестное искусство организационного дизайна. По мере изучения вопроса, я пришел к выводу, что одна из основных проблем заключается в определении размера команд. Вы поймете их величину по мере реорганизации (1), с учетом роста за счет найма и возникновения необходимости поддерживать новые проекты. Так или иначе, вам придется брать в расчет некоторые аспекты командного проектирования.
ПОД УПРАВЛЕНИЕМ ОДНОГО МЕНЕДЖЕРА ДОЛЖНО БЫТЬ ОТ ШЕСТИ ДО ВОСЬМИ ИНЖЕНЕРОВ.
Принимая во внимание, что я скептически отношусь к убеждению о существовании единого принципа определения размера команды, со временем мои требования сформировали подход, который помогает решить большинство возникающих вопросов. Он, в свою очередь, лег в основу инструкции о порядке действий. И то и другое отличается краткостью и, надеюсь, будет вам полезно!
Вот принципы, которыми я руководствуюсь для определения размера команд:
Под управлением одного менеджера должно быть от шести до восьми инженеров.
Тогда у них будет достаточно времени для того, чтобы активно обучаться, учиться действовать согласованно и выполнять задачи своей команды, следуя заданным стратегиям и структурным изменениям, основанным на корпоративном кодексе (2)(3).
У УПРАВЛЯЮЩЕГО МЕНЕДЖЕРАМИ В ПОДЧИНЕНИИ ДОЛЖНО БЫТЬ ОТ ЧЕТЫРЕХ ДО ШЕСТИ ЧЕЛОВЕК.
Ведущие инженеры (Технические лидеры). Менеджеры, у которых в управлении менее четырех подчиненных. Как правило, функции технических лидеров – проектирование и внедрение инноваций. Некоторым такая позиция позволяет уникальным образом задействовать их сильные качества, однако стоит учитывать ограниченные возможности карьерного роста. При продвижении по службе в менеджменте им потребуется больше времени на развитие управленческих навыков. С другой стороны, переквалифицироваться в инженеры тоже достаточно сложно, поскольку придется глубже вникнуть в технические детали.
Тимлиды. Менеджеры, ведущие более восьми или девяти человек. Обычно выступают в качестве коучей и страхуют при возникновении проблем. Они слишком заняты, чтобы активно инвестировать время в собственную команду и ее прокачку. Разумно доверить менеджерам столь крупные команды на этапе перехода к более стабильной конфигурации, но не надо превращать это в норму.
У управляющего менеджерами в подчинении должно быть от четырех до шести человек.
Это дает достаточно времени для обучения, согласования проектов с заинтересованными сторонами и разумных инвестиций в свою организацию. С другой стороны, это занимает его в достаточной мере, чтоб не возникало соблазна нагружать сотрудников излишней работой.
Управляющие с нереализованным потенциалом. Менеджеры, оказывающие поддержку менее чем четырем другим менеджерам, должны либо находиться в стадии активного обучения, либо в борьбе с какой-то проблемной областью, либо в стадии перехода от поддержки инженеров к поддержке менеджеров. Иначе при слабой загруженности управленческими обязанностями они будут испытывать соблазн вмешиваться в повседневные рядовые задачи подчиненных.
Коучи. Как и в случае работы с большой командой инженеров, работа с большим числом менеджеров позволяет лишь сосредоточиться на решении спорных вопросов.
Рисунок 2.2. Команда, состоящая из двух групп, работающих по запросу, и разных штатных инженеров.
Оптимальный состав ротируемой группы – восемь инженеров.
Контроль над дежурными задачами осуществляется легче, если оптимальное число сотрудников двухуровневой поддержки 24/7 – восемь инженеров. Многие теперь используют групповые переписки в WhatsApp и Telegram, что накладывает ограничение на размер команды. Большое число участников чата перегружает переписку.
ОПТИМАЛЬНЫЙ СОСТАВ РОТИРУЕМОЙ ГРУППЫ – ВОСЕМЬ ИНЖЕНЕРОВ.
Общие ротации. Иногда необходимо объединить несколько команд в одну, чтобы собрать восемь инженеров. Так появляются проектные сотрудники. Это эффективное решение, но промежуточное, поскольку на долгую перспективу плохо работает. Большинству людей тяжело подхватывать проекты, с которыми они лишь детально знакомы.
Менее четырех человек для команды слишком мало.
Мне часто доводилось администрировать группы из одного или двух сотрудников, но каждый раз я жалел об этом. Подчеркиваю: каждый раз. Важная составляющая командной работы – возможность смягчать проблемные зоны ее отдельных участников. Коллектив менее чем из четырех человек представляет собой достаточно непрочную систему и функционирует так, будто каждый из них работает по отдельности. Руководя небольшим количеством людей, вы вынуждены подстраивать работу под график дежурных смен, перерывы и отпуска ее участников.
Маленькие команды очень хрупки, и при малейшем сбое они возвращаются от инновационных разработок к рутинному исполнению своих технических обязанностей.
Сочетайте инновации и техническое обслуживание. Для внедрения инноваций принято формировать новую команду, пока те, что есть, утопают в однообразных операционных задачах. И я делал так в прошлом, но решил работать силами существующих команд (5). При таком подходе принимать решения нужно очень обдуманно. Потребуется некоторая смелость, зато вы сохраните в команде высокий моральный дух и культуру обучения. Кроме того – избежите появления двухуровневой классовой системы из новаторов и обслуживающего персонала.
МАЛЕНЬКИЕ КОМАНДЫ ОЧЕНЬ ХРУПКИ, И ПРИ МАЛЕЙШЕМ СБОЕ ОНИ ВОЗВРАЩАЮТСЯ ОТ ИННОВАЦИОННЫХ РАЗРАБОТОК К РУТИННОМУ ИСПОЛНЕНИЮ СВОИХ ТЕХНИЧЕСКИХ ОБЯЗАННОСТЕЙ.
Собрав воедино эти руководящие принципы, я разработал удивительно простой и эффективный порядок действий:
• Формируйте команды из шести–восьми человек.
• Чтобы создать дополнительную команду, увеличьте существующую до восьми–десяти человек, а затем разделите ее на две по четыре или пять человек.
• Никогда не создавайте «пустые» команды (два-три человека).
• Никогда не просите одного менеджера вести более восьми человек.
Это лишь рекомендация, помогающая определиться с размерами команд, а не жесткое правило, не подразумевающее исключений. В любой ситуации контекст заслуживает тщательного изучения, но по моему опыту, долгосрочные издержки работы с исключениями перевешивают то, что я когда-то считал их достоинствами.
2.2. Старайтесь формировать высокоэффективные команды
Мой друг уже шесть месяцев ведет группу из 60 инженеров. Вполне логично, что большинство команд в организации такого размера чувствуют потребность в срочном найме персонала. Стоит ли одновременно дополнительно привлекать людей во все нуждающиеся отделы, или максимум в один-два, пока их запросы не будут полностью удовлетворены?
Это отличный вопрос, и он касается очень сложного аспекта руководства организацией. Увлекательно ощущать себя первооткрывателем, учиться у всех и каждого. Иногда возникает необходимость реорганизовать команду (6), что болезненно, хоть и быстро решается. Гораздо труднее сохранить вовлеченность, когда вы уже приобрели базовые знания и пытаетесь найти место для реализации конкретных планов. Придерживаться выбранного заранее курса чревато последствиями, когда речь идет о развитии организации. Некоторым отделам всегда нужно больше, чем вы можете предоставить.
Когда говорят о масштабировании, разговор обычно сводится к найму персонала. Хотя я считаю, что найм – очень серьезный инструмент в среде растущих организаций. Мне кажется, мы слишком часто к нему прибегаем. В течение последнего года я разбирался, в каких случаях найм принесет наибольшую пользу. Так был разработан алгоритм из вопросов, помогающий определить, что нужно команде для повышения производительности.
Рисунок 2.3. Четыре состояния команды.
2.2.1. Четыре состояния команды
Руководящие принципы начинаются с терминов для описания команд и их работы в данном контексте.
Команды могут находиться в одном из четырех состояний:
Спад производительности: каждую неделю количество задач в бэклоге растет. Как правило, сотрудники работают на пределе, но не добиваются существенного прогресса, моральный дух снижен, а заказчики громко выражают недовольство.
Стагнация: команда закрывает ключевые задачи, но не гасит технические долги и не приступает к новым крупным проектам. Моральный дух немного выше, но сотрудники по-прежнему работают на пределе, а заказчики могут казаться счастливее только от того, что поняли: никакие запросы ни к чему не приведут (поэтому они перестают выражать недовольство).
Погашение технического долга: все ресурсы уходят на техническое сопровождение, что провоцирует эффект «снежного кома». Каждая закрытая задача ведет к увеличению времени для погашения прочих долгов.
Внедрение инноваций: команда трудится над новыми проектами, когда объем технических доработок стабильно низок, моральный дух на высоте, а большая часть сил направлена на удовлетворение новых потребностей заказчиков.
Команды хотят двигаться от спада производительности к инновациям, в то время как энтропия тянет их вниз. Каждая стадия требует особого подхода.
Рисунок 2.4. Четыре этапа прогресса команды – от спада производительности до внедрения инноваций.
2.2.2. Корректировка системы и тактическая поддержка
В рамках предложенной структуры команды переходят на новый уровень исключительно через принятие соответствующего системного решения. И это ваша задача как менеджера – определить, как лучше действовать на данном этапе, инициировать процесс, а затем оказать коллективу посильную поддержку, чтобы максимизировать возможность положительной трансформации. Если вы сосредоточитесь на тактической поддержке до того, как определитесь с планом действий, то истощите свои силы. При этом далеко не факт, что избежите проблем.
Вот список стратегических решений, которые я нашел эффективными на каждой из стадий, а также некоторые идеи о том, как поддержать команду в процессе реализации:
1. Когда команда переживает спад производительности, системное решение состоит в том, чтобы нанять больше людей и дожидаться перехода в стагнацию. Оказывайте тактическую поддержку, говоря заказчикам о прогнозируемых результатах. Вселяйте в них оптимизм, рассказывая о быстрых победах, которых может достичь ваш коллектив.
Предостережение: корректировка системы заключается в том, чтобы нанимать новых сотрудников, увеличивая общий потенциал компании. Вместо этого люди, принимающие решения, порой пытаются выжать как можно больше из действующего персонала. Не лучшая практика, на мой взгляд. Сотрудники не взаимозаменяемы и, как правило, находятся на своих местах. Потому я скептически отношусь к переназначению. Кроме того, дискуссии такого рода не могут не вызывать напряжение, даже когда все участники уважают и доверяют друг другу.
2. Когда команда в стагнации, системное решение состоит в том, чтобы объединить усилия и закрыть как можно больше задач из бэклога. Сокращать объем параллельной работы до тех пор, пока сотрудники не перейдут к погашению долгов (например, пока они не ограничат объем выполняемой работы). Основное внимание здесь уделяется тому, чтобы изменить взгляд людей на производительность. Трансформировать индивидуальный взгляд на эффективность в командный.
3. Когда команда занята погашением технического долга, систему нужно скорректировать путем увеличения времени на доработки. Все уже получается, вам просто нужно дать возможность расти совокупному объему завершенных проектов. Тактически попытайтесь найти способы поддержать заказчиков и закрывать долги одновременно, чтобы избежать ситуации, в которой команда нырнула с головой в доработки, отодвинув в сторону интересы пользователей. Это особенно актуально. Если команда сначала отставала, теперь подчищает хвосты, и заинтересованные стороны, вероятно, ждут не дождутся, когда им начнут поставлять новые проекты. Ваша обязанность – не допустить, чтобы это нетерпение привело к регрессу!
4. Внедрение инноваций – это решение отличается от предыдущих. Вы номинально достигли верха цепочки, но по факту все еще нуждаетесь в системной корректировке. Речь идет о том, чтобы поддерживать комфортный ритм внутри команды. Так сотрудники смогут повышать качество работы, постоянно внедрять инновации и избегать откатов. С тактической точки зрения убедитесь, что работа, которую выполняет ваша команда, востребована, ведь самый простой путь покончить с инновациями – рассматривать сотрудников как команду, работающую на исключительно научные интересы. Это неизбежно ведет к оттоку финансирования, что, конечно, не является вашей целью.
Должен подчеркнуть, что любая качественная трансформация требует времени. Статистические помехи накапливались на протяжении нескольких месяцев или лет, а вам предстоит изменить ситуацию в корне. Однако те же свойства, которые замедляли реализацию корректировок, сделают новую систему долговечнее.
Самое трудное – сохранить веру в свой план, как личную, так и организации в целом. В какой-то момент возникнет соблазн избавиться от ответственности, перейти на другую позицию или, возможно, сменить работу, но тогда вы пропустите ту часть, где вам предстоит учиться. Придерживайтесь выбранного пути.
2.2.3. Консолидируйте усилия
Как руководитель организации вы будете иметь дело с несколькими командами, каждая из которых находится в определенной точке. Кроме того, ваши ресурсы для внедрения изменений ограничены, обычно их недостаточно для одновременного продвижения всех отделов. Многие пытаются проводить изменения одновременно каждым из них. Располагая ограниченным ресурсом, пытаются распределить его на всех, руководствуясь ложным чувством справедливости. В итоге никто ничего не получает.
В рамках имеющихся ресурсов расставляйте приоритеты и корректируйте работу подразделений по отделу за раз. Если большинство из них переживает спад производства, нанимайте сотрудников в одну команду до тех пор, пока она не будет укомплектована достаточно, чтобы перейти в стагнацию – и только тогда переходите к следующей. Такой подход справедлив для любых ограниченных ресурсов, но особенно важен в вопросах найма.
Появление новых людей негативно влияет на сплоченность в коллективе. Я обнаружил, что лучше быстро набрать новых членов команды и дать ей время на сплочение. Организация не перестанет расти, но каждая команда будет органично развиваться.