Как инженерным менеджерам следует подходить к планированию

Как инженерным менеджерам следует подходить к планированию

13 января 2024 г.

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

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

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

:::

Обзор контента

  • Для кого это?
  • Оценка
  • Планирование. Что это значит?
  • Что делает план хорошим?
  • Зачем планировать? Другими словами, почему бы не действовать и не учиться на ошибках?
  • Мифы
  • Ключевые аспекты планирования
  • Ясность целей или желаемых результатов.
  • Степень согласия между заинтересованными сторонами.
  • Система оценки работы
  • Измерение прогресса.
  • Гладкость исполнения.
  • Своевременность и постоянство доставки.
  • Адаптируемость
  • Общение
  • Прощальные мысли.

Для кого это?

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

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

Оценка

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

Допустим, вы записались на свой первый марафон. Вам нужен был вызов, что-то, что вышвырнет вас из зоны сна и комфорта. Прошло четыре месяца, и вы зарегистрировались случайно, во время разговора с друзьями. Что ты делаешь после? Вы приходите на гонку неподготовленным? Ты не приходишь - ты же импульсивно записался? Или вы планируете и начинаете тренироваться и стараетесь изо всех сил? Если вы из тех, кто планирует и тренируется, как бы вы это сделали?

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

Планирование. Что это значит?

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

Что делает план хорошим?

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

Зачем планировать? Другими словами, почему бы не действовать и не учиться на ошибках?

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

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

Мифы

  • Планирование замедляет работу. Это происходит из-за неверных представлений о времени, необходимом для планирования, и из-за близорукого взгляда на скорость. Планирование открывает преимущества с точки зрения упрощения выполнения и долгосрочной выгоды.
  • Планирование убивает инновации. Напротив, эффективное планирование может способствовать развитию культуры инноваций, обеспечивая структурированную основу для процветания творчества и инноваций и согласовывая их со стратегическими целями организации.
  • Планирование препятствует гибкости. К сожалению, этот миф широко распространен из-за ошибочных представлений об гибкости. Я работал в организациях, где отсутствие ясности и, следовательно, способности планировать означало, что мы были гибкими. Гибкость – это готовность изменять/адаптировать план на основе информации и отзывов.
  • Планирование переоценено. Этот миф возник из-за неэффективного планирования, которое приводит к упущенным возможностям и неудачам в достижении желаемых целей. Если людям не удается сбросить вес или жир, обвинять план тренировок вряд ли полезно. Более продуктивный способ подойти к этому — подумать, проанализировать и переоценить то, как вы планируете и выполняете.

Ключевые аспекты планирования

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

Ясность целей или желаемых результатов

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

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

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

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

Сопоставление пользовательских историй — полезное упражнение для внесения ясности на уровне проекта, а пользовательские истории полезны на этапе реализации.

Степень согласия между заинтересованными сторонами

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

Давайте рассмотрим их более подробно -

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

Вот несколько примеров стратегического распределения человеческих ресурсов -

  1. Если на один рабочий поток выделены два инженера, но проекты и требования к продукту еще не готовы к началу квартала, найдите значительную работу в области технического совершенства. Это помогает им продолжать работать над значимыми проектами.
  2. 2. Объедините старших инженеров с младшими инженерами, чтобы помочь им обоим повысить уровень. Это способствует взаимовыгодной динамике, когда старший может расти, наставляя и делегируя полномочия, а младший — беря на себя больше ответственности, получая конструктивную обратную связь и обучаясь. Поддерживайте сотрудничество до тех пор, пока между инженерами не возникнет взаимное доверие и не возникнут прочные рабочие отношения.

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

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

    5. Выделите немного инженерного времени для реализации любимых или хобби-проектов и/или подготовки и планирования долгосрочных потребностей в продукте. Примеры хобби-проектов могут включать изучение новых технологий, таких как Gen AI, или способов улучшения существующих рабочих процессов с помощью автоматизации. Долгосрочные потребности в продукте могут включать разработку архитектуры функций, реализация которых займет от трех до двенадцати месяцев. Это позволит команде внедрять инновации, развиваться и быть хорошо подготовленной к долгосрочной перспективе, а не быть близорукой

    Несколько сценариев, в которых требуется стратегическое распределение нечеловеческих ресурсов и, следовательно, их согласование становится важным -

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

      3. Если бы у вас был бюджет на строительство/покупку нового центра обработки данных, один в дорогом регионе, например в районе залива Сан-Франциско, а другой в относительно дешевом месте, например, в Огайо, куда бы вы вложили свой ограниченный бюджет?

      Согласование целей и результатов. Когда все разделяют общее понимание того, чего необходимо достичь и почему, это способствует созданию атмосферы сотрудничества и достижению целей. Конкретность и конкретность являются ключевыми факторами в определении целей и воздействия. Абстрактные утверждения, вероятно, будут интерпретироваться разными людьми по-разному. Здесь полезна система SMART для определения целей, а также другие структуры, такие как OKR.

      Пример плохо определенной цели: «Сделать приложение более удобным и визуально привлекательным». Хотя «удобство для пользователя» и «визуальная привлекательность» являются хорошими параметрами для оптимизации, лучшим способом сформулировать цели было бы что-то вроде: «Сократить время загрузки страницы приложения на 20 %, чтобы сделать его более удобным для пользователя и добавьте значки с надписями для кнопок, чтобы сделать их более привлекательными»

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

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

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

      Система оценки работы

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

      Как вы оцениваете время, необходимое для выполнения задачи, на высоком уровне, обеспечивая точность при минимальных усилиях? Хотя популярные модели в этой области, такие как COCOMO и PERT, являются неуклюжими, они обеспечивают отличную структуру, направляющую ваше мышление. Например, мне нравится идея «факторов затрат» из структуры COCOMO и идея визуализации различных аспектов проектов, особенно для обеспечения ясности и согласованности, из модели PERT.

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

      * Сложность. Не все проблемы одинаковы, и большая сложность обычно означает больше времени и усилий. * Сложность проблемы. Некоторые проблемы по своей природе решить сложнее, чем другие. Примеры. Приложение CRUD создать проще, чем приложение для создания отчетов, требующее интенсивного управления данными. Функции, доступные только для чтения, относительно проще создать, чем приложение с многоэтапным рабочим процессом управления. * Сложность системы. Построение на шатком фундаменте значительно усложняет работу, будь то устаревший монолит, критически важная для бизнеса система или особенно хрупкая система с нулевым тестированием и спагетти-кодом. * Зависимости. Будь то технические зависимости, например функция, требующая капитального ремонта существующей системы, или зависимости команды/персонала, когда ожидается, что часть работы будет выполнять другая команда, или сторонний поставщик. Чем больше зависимостей, тем сложнее становится система. * Технические неизвестные и кривая обучения. Была ли проблема решена ранее в команде или организации? Существует ли крутая кривая обучения для приобретения знаний и опыта, необходимых для решения проблемы в команде? * Неизвестные сведения о продукте/бизнесе. Ясность требований к продукту и его дизайну сильно влияет на оценки. Прежде всего стремитесь к кристаллизации желаемых результатов; это основа, на которой покоятся другие факторы

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

      * Уровень оценки усилий – я использую размер футболки (S, M, L, XL) или указание истории (чаще всего это делается в последовательности Фибоначчи), в зависимости от степени детализации и уровня, на котором Я делаю это упражнение. Выбор размера футболки более полезен при планировании таких мероприятий, как ежеквартальное или ежегодное, тогда как указание истории оказывается более полезным в контексте планирования раз в две недели или спринта, где проблемы в значительной степени разбиты на управляемые фрагменты. Хотя блоки LOE слабо коррелируют с требуемым временем, особенно когда они выполняются в рамках фиксированных интервалов, таких как спринты, это не обязательно. Цель здесь — понять уровень сложности и усилий, а не ожидаемое время, необходимое для решения проблемы. Получив оценку LOE, я перехожу к следующему шагу — измерению их во времени.

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

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

      
      
      • Прагматичная оценка – учитываются люди, работающие над ней, состав вашей команды, в том числе их технические и предметные знания (являются ли они новичками в организации/команде? Насколько им комфортно Насколько они быстро обучаются?), коммуникативные навыки и целеустремленность (Могут ли они хорошо общаться и управлять проектами с другими инженерами и заинтересованными сторонами, не относящимися к инженерным специальностям, при минимальном контроле? Склонны ли они проявлять инициативу и быть активными - ждут ли они инструкций или указаний или преуспевают в неопределенности и хаосе?), сильные стороны и продуктивность (Какова их средняя скорость спринта, т. е. сколько они, как известно, достигают за неделю или две недели?)

      * Оценка графика. Следуя предыдущему шагу, вы получите представление о календарном времени, в течение которого можно ожидать решения проблемы. Это требует планирования мощности — с учетом доступности людей, организационных ограничений, таких как бюджет и праздники, а также конкурирующих приоритетов. Диаграмма Ганта — бесценный инструмент на этом этапе. Продолжительность каждого проекта/задачи — это время в относительных единицах из предыдущего упражнения. Сложите их таким образом, чтобы свести к минимуму переключение контекста для инженеров (это требует значительных затрат) и в первую очередь выполнять самые срочные задачи, одновременно выделяя время для решения важных, но несрочных задач. Я считаю, что представление Ганта в Airtable и JIRA особенно полезно, в зависимости от того, занимаюсь ли я квартальным планированием или планированием спринта.

      Примечание о том, как научиться лучше оценивать. Поскольку это больше искусство, чем наука, практика является ключом к совершенствованию в нем. Чтобы развить свою интуицию, сделать ее более естественной, я постоянно сначала провожу оценку сам, не привлекая инженеров и экспертов, потом получаю от них оценки и сравниваю, насколько мне не повезло и почему. Это помогает мне выявить мои «слепые зоны» и накопить необходимый технический и предметный опыт. Это попытка «глубокой практики» (термин, который я узнал из книги Дэниела Койла «Код таланта») в оценке.

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

      Измерение прогресса

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

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

      Как быстро вы бежите. Чаще всего бегуны используют скорость (мили/мин) и темп (мин/миля). В разработке программного обеспечения такие показатели, как скорость спринта и время выполнения заказа, показывают, насколько быстро вы движетесь с точки зрения продуктивности команды. Я использую отчеты JIRA для измерения обоих показателей.

      Расстояние, которое вы уже преодолели/расстояние, которое еще предстоит преодолеть. Во время гонки вы будете смотреть на отметки миль, чтобы определить пройденное расстояние. Знание общего расстояния, которое необходимо преодолеть, подскажет вам, сколько еще осталось пройти. Диаграммы сгорания и сгорания — полезные инструменты для сравнения ваших обязательств и результатов.

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

      Насколько хорошо вы себя чувствуете. Какая у вас частота пульса? Вы достаточно увлажнены? Заправленный? У вас болят колени, икры или лодыжки? Это самое субъективное из всех. Хотя вы можете следить за частотой пульса с помощью датчиков, ничто не сравнится с вниманием к своему телу. Знание того, насколько перегружена или напряжена ваша команда, поможет вам лучше прогнозировать производительность. Некоторые показатели могут выступать в качестве разумных показателей для измерения благосостояния команды, например, например, отток кода и плотность дефектов, особенно если они начинают расти во время конкретного проекта. Однако они не заменяют прямого и открытого разговора с командой.

      Гладкость исполнения

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

      Своевременность и постоянство доставки

      Способность последовательно соблюдать сроки выполнения является ключевым показателем эффективности плана и общей эффективности команды.

      Адаптируемость

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

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

      Общение

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

      * Как и где происходит передача данных — в JIRA, Slack, документах или электронных письмах? Я стараюсь, чтобы уровень реализации продукта и технические решения находились в JIRA, как можно ближе к инженерам. Обсуждения ведутся в Slack, но нетривиальные решения приходится переносить в другое место. Я использую электронную почту для более формального способа общения, чтобы поделиться ими с релевантным, но широкая группа заинтересованных сторон. Например, обновления прогресса/статуса имеют смысл по электронной почте. * Где фиксируются решения, кто уведомляется и как часто вы их пересматриваете? * На кого вы возлагаете ответственность за их обновление? это полезная модель для определения этого

      Прощальные мысли

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

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

      :::информация Также опубликовано здесь.

      :::


      Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE