Почему это важно и 6 способов завоевать доверие

Тяжело быть полноценным инженером.

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

К сожалению, эти навыки полного стека становятся бесполезными, если вы не можете сделать одну вещь:

Уметь устанавливать доверительные отношения с другими командами инженеров.

Зачем строить доверительные отношения с другими командами?

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

Это в основном Закон Конвея:

Закон Конвея — это теория, согласно которой организации разрабатывают системы, копирующие их коммуникационную структуру.

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

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

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

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

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

1. «Собирается ли этот инженер следовать нашим передовым методам?»

2. «Должен ли я поддерживать их в процессе?»

3. «Придется ли мне иметь дело с инцидентами или ошибками, вызванными этим инженером?»

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

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

6 способов заставить команду любить работать с вами

За много лет работы в качестве full-stack разработчика я научился нескольким приемам (иногда трудным) для эффективной работы с другими командами.

#1 — Добровольно берите билеты из бэклога другой команды

Самый быстрый способ завоевать сердца других команд — уменьшить их нагрузку.

Вы будете учиться, делая И, в конечном итоге, помогать другим командам в этом процессе.

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

# 2 — Участвуйте в проверках кода для других команд

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

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

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

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

# 3 — Активно сообщайте о своих намерениях другим командам

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

Несколько способов сообщить о своих намерениях:

  1. Предоставьте заранее любую полезную документацию, например техническую спецификацию и/или документ с требованиями к продукту (PRD).
  2. Встретьтесь с кем-нибудь из команды, чтобы обсудить архитектурные решения, которые вы будете принимать.
  3. Убедитесь, что ваши изменения не противоречат долгосрочным целям команды.

# 4 — Следуйте правилу бойскаута

Оставьте систему лучше, чем вы ее нашли.

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

Я делаю это несколькими способами:

  1. Рефакторинг большого компонента React перед добавлением моих изменений.
  2. Исправление ошибки, с которой я столкнулся, даже если она не связана с моим кодом.
  3. Соблюдение стандартов кодирования команды для обеспечения согласованности с остальной кодовой базой.

№ 5. Позовите другую команду

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

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

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

№ 6. Убедитесь, что ошибки, которые вы вызываете, возвращаются к вам

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

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

Вы можете убедиться, что любые ошибки возвращаются к вам следующими способами:

  1. Добавьте оповещение о своей функции, которую вы всегда отслеживаете
  2. Добавьте флаги функции, чтобы легко убить вашу функцию, если она нарушит работу системы.
  3. Задокументируйте, как работает ваша функция, где-нибудь, где люди смогут найти ее и связать с вами. Будьте доступны для решения проблемы, когда они это сделают.

Последние мысли

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

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

Напомним, вот 6 способов, которыми вы можете завоевать доверие:

  1. Добровольно берите билеты из бэклога другой команды
  2. Помогите с код-ревью
  3. Активно общаться с другими командами
  4. Следуйте правилу бойскаута
  5. Вызов другой команды
  6. Убедитесь, что вы ловите и исправляете свои собственные ошибки

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

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу