Почему это важно и 6 способов завоевать доверие
Тяжело быть полноценным инженером.
Приобретение широкого круга технических навыков, необходимых для создания комплексных продуктов, является сложной задачей для многих разработчиков полного стека. Большинство статей в Интернете сосредоточены на этом аспекте: «изучите технологию А, фреймворк Б, концепцию С».
К сожалению, эти навыки полного стека становятся бесполезными, если вы не можете сделать одну вещь:
Уметь устанавливать доверительные отношения с другими командами инженеров.
Зачем строить доверительные отношения с другими командами?
Когда компания вырастает до определенного размера, обычно до 30 и более разработчиков, инженерный отдел разделяется на несколько команд, чтобы каждой команде было легче поддерживать критически важные бизнес-функции.
Это в основном Закон Конвея:
Закон Конвея — это теория, согласно которой организации разрабатывают системы, копирующие их коммуникационную структуру.
Проще говоря, если в инженерной организации 5 команд, они могут сойтись на архитектуре 5 разных кодовых баз. По одному на каждую команду.
По мере того, как команды становятся более сосредоточенными на этом пути, они накапливают глубокие знания о системе, которой они владеют, и становятся очень самоуверенными в отношении того, как внести в нее свой вклад.
Однако глубокое владение системой может сделать команды территориальными. Они становятся более устойчивыми к пожертвованиям со стороны.
К сожалению, full-stack инженеры часто являются такими аутсайдерами. Чтобы создать сквозной продукт, разработчики полного стека должны работать с несколькими кодовыми базами, что обычно означает адаптацию к культуре, процессам и ожиданиям разных команд.
Например, некоторые общие проблемы, с которыми я сталкивался в течение многих лет в качестве инженера полного стека при работе с другими командами:
1. «Собирается ли этот инженер следовать нашим передовым методам?»
2. «Должен ли я поддерживать их в процессе?»
3. «Придется ли мне иметь дело с инцидентами или ошибками, вызванными этим инженером?»
В зависимости от того, насколько территориальна команда, инженер полного стека должен заранее инвестировать больше времени, чтобы завоевать доверие, необходимое для эффективного сотрудничества.
Хотя в краткосрочной перспективе может быть проще втиснуть изменения вашего кода в кодовую базу другой команды, в долгосрочной перспективе вы испортите отношения с этой командой и замедлите скорость разработки.
6 способов заставить команду любить работать с вами
За много лет работы в качестве full-stack разработчика я научился нескольким приемам (иногда трудным) для эффективной работы с другими командами.
#1 — Добровольно берите билеты из бэклога другой команды
Самый быстрый способ завоевать сердца других команд — уменьшить их нагрузку.
Вы будете учиться, делая И, в конечном итоге, помогать другим командам в этом процессе.
У команд в бэклоге всегда есть задачи, которые они месяцами избегали. Обращение к ним создает огромную доброжелательность, которую вы можете позже обналичить, когда вам понадобится помощь!
# 2 — Участвуйте в проверках кода для других команд
Вам не нужно знать кодовую базу вдоль и поперек, чтобы предоставить содержательную обратную связь в обзоре кода.
Простое чтение запроса на включение и задавание вопросов может побудить другие команды сформулировать свои предположения и решения.
Когда свежий взгляд смотрит на проблему, любопытный вопрос может осветить лучший путь вперед.
При этом чтение запросов на вытягивание и комментариев по обзору кода в других кодовых базах помогает мне быстро понять систему и лучшие практики, которых от меня ожидают мейнтейнеры.
# 3 — Активно сообщайте о своих намерениях другим командам
Когда вы вносите большой вклад, другие команды должны знать, что вы идете, задолго до того, как вы отправите запрос на вытягивание.
Несколько способов сообщить о своих намерениях:
- Предоставьте заранее любую полезную документацию, например техническую спецификацию и/или документ с требованиями к продукту (PRD).
- Встретьтесь с кем-нибудь из команды, чтобы обсудить архитектурные решения, которые вы будете принимать.
- Убедитесь, что ваши изменения не противоречат долгосрочным целям команды.
# 4 — Следуйте правилу бойскаута
Оставьте систему лучше, чем вы ее нашли.
Когда я создаю функцию, я постоянно ищу возможности очистить или улучшить окружающую систему, к которой я прикасаюсь.
Я делаю это несколькими способами:
- Рефакторинг большого компонента React перед добавлением моих изменений.
- Исправление ошибки, с которой я столкнулся, даже если она не связана с моим кодом.
- Соблюдение стандартов кодирования команды для обеспечения согласованности с остальной кодовой базой.
№ 5. Позовите другую команду
Честно говоря, я еще не пробовал это. Мой менеджер рекомендовал этот подход, поэтому на следующей неделе я посвящу статью своему опыту!
Мой менеджер, исходя из своего опыта, констатировал следующие преимущества:
- Вы хорошо знакомы с частями кодовой базы, которые часто содержат ошибки.
- Вы можете увидеть возможности для уменьшения количества билетов
- Другим командам понравится дополнительная поддержка
№ 6. Убедитесь, что ошибки, которые вы вызываете, возвращаются к вам
Инженерные команды будут постоянно оценивать, действуете ли вы как совладелец их системы.
Поэтому, если ваша функция создает ошибку, а вас нет рядом, чтобы с ней справиться, вы быстро потеряете все доверие, которое вы построили с этой командой.
Вы можете убедиться, что любые ошибки возвращаются к вам следующими способами:
- Добавьте оповещение о своей функции, которую вы всегда отслеживаете
- Добавьте флаги функции, чтобы легко убить вашу функцию, если она нарушит работу системы.
- Задокументируйте, как работает ваша функция, где-нибудь, где люди смогут найти ее и связать с вами. Будьте доступны для решения проблемы, когда они это сделают.
Последние мысли
Ваша способность поставлять внешний и внутренний код не имеет большого значения, если команды не доверяют вам вносить свой вклад в их системы.
Для того, чтобы двигаться быстро и эффективно, инженеру полного цикла крайне важно приложить усилия, чтобы завоевать доверие и уважение в разных командах.
Напомним, вот 6 способов, которыми вы можете завоевать доверие:
- Добровольно берите билеты из бэклога другой команды
- Помогите с код-ревью
- Активно общаться с другими командами
- Следуйте правилу бойскаута
- Вызов другой команды
- Убедитесь, что вы ловите и исправляете свои собственные ошибки
Знаете другие способы гармоничного сосуществования с другими командами? Дайте мне знать ваши мысли ниже!
Повышение уровня кодирования
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- 👏 Хлопайте за историю и подписывайтесь на автора 👉
- 📰 Смотрите больше контента в публикации Level Up Coding
- 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"
🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу