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

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

Создание хорошей культуры инженерной команды

Я выделил 7 вещей, которые команда может сделать для создания хорошей корпоративной культуры инженеров:

Неустанно продвигайтесь к автоматизации

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

Создавайте правильные программные абстракции

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

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

Сосредоточьтесь на высоком качестве кода с помощью код-ревью

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

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

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

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

Создание совместного владения кодом

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

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

Поддерживайте уважительную рабочую атмосферу

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

Создайте культуру обучения и постоянного совершенствования

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

Наймите лучших разработчиков

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

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

Подробнее: Наем международных технических специалистов: зачем, где и как?

Повышение эффективности вашей инженерной команды

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

Соберите информацию о том, что сложно или неприятно

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

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

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

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

Согласуйте чьи-то цели роста с тем, что создает ценность

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

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

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

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

Часто давайте и запрашивайте честную обратную связь

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

Если обратная связь исходит из хороших намерений (например, вы хотите, чтобы этот человек добился успеха) и если вы явно разделяете это намерение (например, «Я хочу помочь вам добиться успеха в вашей роли»), сформулируйте намерение обратной связи в значительной степени. больше шансов быть оцененным и оцененным.

Устраивайте встречи один на один с сотрудниками вашей команды и обменивайтесь отзывами:

  • Что бы вы хотели, чтобы человек делал больше? Меньше?
  • Как вы думаете, что возможно для этого человека?
  • Каковы ваши предположения друг о друге?

Используйте свои сильные стороны, чтобы повысить уровень команды

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

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

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

Уменьшите источники сложности

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

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

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

Создайте больше возможностей для сотрудничества

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

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

Заключительные слова

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

Наш исходный пост: Команда инженеров: как создать лучшую команду и управлять ею?

Следите за нашей следующей статьей на Medium:

  • Дата выпуска: понедельник, 23 августа, 9:00 МСК.
  • Тема: Пошаговое руководство по поиску и найму команды разработчиков мобильных приложений мирового класса.

Если вы хотите прочитать прямо сейчас, посетите наш веб-сайт. Нажмите здесь

Используйте InApps

Для получения дополнительной информации посетите нас по адресу: www.inapps.net