Рубрики
Uncategorized

7 Общих черт неэффективных инженерных команд

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

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

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

1. Плохие наймы и партнерские отношения

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

Приоритетное представление о результате эффективности

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

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

Найм самый блестящий кандидат и не самый необходимый кандидат

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

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

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

Не делать инженеров часть процесса при нанесении поставщика

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

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

2. Нет культуры совершенства

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

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

Далее следует характеристики команд, которые не преследуют.

Индивидуальная и команда апатия

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

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

  • Быстро избавиться от высокомерных/плохих игроков команды, даже если они полные рокстарки. Ничто не убивает культуру и производительность команды быстрее, чем позволяя сорняками расти внутри. На боковом примечании Помните, что довольно часто сотрудники оставляют своих менеджеров, а не их компании Отказ
  • Хвалить хорошую работу
  • Публично признать хорошую работу
  • Поддерживать счастливую, повышенную культуру компании
  • Заинтересовать жизни сотрудников за пределами офиса; Показать сострадание
  • Регулярно поделиться успехом компании, чтобы сотрудники могли гордиться где они работают
  • Верните сообществу и позвольте сотрудникам участвовать в добровольческой работе в рабочее время

Делать минимум, чтобы получить

Для любой компании конечная цель — добиться успеха и расти. Роль инженера — помочь компании преуспеть и расти по технологии и дизайну.

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

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

Не хватает любопытства; Не любит изучать новые вещи

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

3. Коммуникационные поломки

Джордж Бернард Шоу справедливо сказал: «Единая самая большая проблема в общении — это иллюзия, которую она произошла».

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

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

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

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

Неспособность изучать опыт конечного пользователя

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

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

Не могу сказать «нет»

Кто хочет рассматривать как отдел, который говорит «нет»? Никто. Тем не менее, в выборе новых проектов инженерная команда может сказать «да» слишком часто.

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

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

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

4. Переузрение новых технологий

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

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

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

Другими словами, новое не обязательно всегда лучше. Иногда это просто новый. Почему вы переходите на новую технологию, которые еще не доказаны? Особенно, если ваш существующий Tech получает работу? Старая пословица, «если это не сломается, не исправьте его», может не относиться к каждому аспекту бизнеса в 21-м веке, но иногда он иногда относится.

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

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

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

5. Плохой код обзора

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

Давайте сначала посмотрим, как выглядит плохой код код:

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

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

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

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

Чтобы предотвратить рассмотрение вашего кода от поворота токсичных:

  • Четко установить цели для обзора. Убедитесь, что рецензенты понимают, что нужно улучшить.
  • Установите протоколы для фиксации дефектов заранее.
  • Создайте авторы кода аннотировать исходный код перед началом обзора.
  • Не бросайте новые насыщения в код, у них не было ни одной части в письменной форме.
  • Не рассмотрим более 500 строк кода за раз.
  • Не позволяйте инженеру тратить больше часа одновременно на обзоре.

6. Переписать код при рефакторинге более эффективен

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

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

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

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

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

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

При определении того, следует ли переписать или рефакторировать, также рассмотрите следующие вопросы:

Время

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

Меры рынка

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

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

7. Использование микросервисов по неправильным причинам

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

Инженеры не должны развертывать микросервисы только потому, что они крутые. Использование микросервисов, где нет никаких веских причин для них, хуже, чем быть безупречным. Возможно, что более простой подход даст вам правильные результаты. Для многих предприятий, написание простейшего возможного кода и быстро добраться до рынка — лучший курс действий. Инженеры иногда используют микросервисы, потому что они предполагают, что им нужно будет масштабировать продукт для более пользователей. Но вот проблема: никто не может видеть будущее. Это означает, что вы не знаете, сколько (а если) Вам придется масштабировать продукт или как вы его масштабируете.

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

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

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

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

8. Плохой процесс программного обеспечения или его отсутствие (бонусный предмет)

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

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

  • Твердый инструмент CI/CD, интегрированный и используемый всеми членами команды. В эти дни я считаю CI/CD так же важен и базовый в качестве системы управления версией. Трудно работать должным образом без этого.
  • Когда элемент команды нажимает код CI/CD автоматически запускает сборку вашего приложения/библиотек/систем и запускает весь тестовый люкс. Некоторые команды идут на лишнюю милю для реализации Непрерывная доставка и умеет допустить до производства несколько раз в день Отказ Непрерывная доставка — показатель того, насколько серьезно вы о качестве. Если вы на борту нового инженера, нет ничего более привлекательного, чем возможность получить его и бегать и выполнять свой первый добычу прямо в первый день (Или сказать первые несколько дней) и с очень высокой уверенностью, что он будет высококачественным выпуском.
  • Обзор кода — это не приятно иметь функцию. Высокие команды «Высокие» знают, насколько важно экспертные отзывы и как он приводит к снижению технического долга, меньших ошибок и гораздо лучшего программного обеспечения. Отзывы кода должны быть обязательным шагом до того, как код будет подталкиваться к производству, обычно лучше всего убедиться, что каждый запрос на тягу (PR) рецензируется более чем одним членом команды.
  • Я упоминал CI/CD и Automation? Это также означает добавление дополнительных слоев автоматизации помимо основных модулей и тестов интеграции. Например:
    • Тесты безопасности, такие как статические кодовые сканеры и проверки уязвимости библиотеки. Некоторые команды также могут воспользоваться Безопасность как код лучших практик Отказ
    • Летание
    • Тесты пользовательского интерфейса, включая анализ сравнения скриншота, когда это применимо.
  • Идя Agile, а также понимая, что это подводные камни Отказ

Вывод

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

Оригинал: «https://dev.to/squash/7-shared-traits-of-ineffective-engineering-teams-3jp3»