Рубрики
Uncategorized

Каждая вторая вата — скрытые расходы на неотступные рабочие процессы разработчика

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

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

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

Секунды накапливаются

Разблокировка смартфона с использованием 5-значного вывода занимает 2,21 секунды, включая неудачные попытки. Это становится интереснее, если вы умножаете это с суммой среднего взрослого (US-Data) разблокирует свой телефон каждый день (79 раз) Отказ Умножьте это на 365, и вы получите 60,553 секунды, которые равны 1009 минут или почти 17 часов в году, разблокируя ваш чертовый телефон. Это целый день (бодрствует), что вы проводите разблокируя свой телефон!

Вы покупаете новый iPhone с Faceid. Внезапно у вас почти один день больше для отдыха — каждый год.

Сравните сценарий мобильного телефона к команде инженерной группы 10 человек со средней стоимостью на персонал в час 70 $. Вы в конечном итоге с ежегодными расходами около 14.000 $. Остерегайтесь секунд, они имеют значение.

Эффект первого порядка известен, но следующие эффекты игнорируются

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

Источник: Парнин, C. & Rugaber, S. (2010)

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

Причины потерять время в инженерном рабочем процессе

Недостаточная автоматизация испытаний

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

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

Сканирование уязвимостей до коммимента против после

Nigel Simpson является директором Enterprise Technology в компании Fortune 100. Он лазер сфокусировался на достижении максимальной степени возможного опыта разработчика для его команд. Его статья Самостоятельно осознанный программный жизненный цикл Определенно стоит читать как все его другие статьи. Ранее его команды вмешательства будут отправлять функцию, то коллеги по безопасности будут проанализировать отгруженные пакеты для уязвимости открытых источников. Они отвергают пакет из-за профилей риска, означающие, что разработчики должны снова исправить пакет и отправить его еще раз. Найджел представил Снайк , что позволяет разработчикам получить эти проявления в режиме реального времени во время совершения. Найджел объяснил первый и второй порядок, влияющий на меня в своих словах:

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

Time Train ждет время сборки контейнеров

TRAVIS CI занимает в два раза больше, чтобы построить среднее веб-приложение (протестировано на 7-служку приложение Ecommerce PHP, контейнерную) в качестве семафора. У нас есть 10 разработчиков в Humanitec. Мы делаем около 110 строек, которые забирают нас 743 минуты в среднем каждый месяц. Мы используем действия GitHub. Если мы переключились на провайдер, оптимизированный для более низких времен строя контейнера, такие как семафор, мы сэкономите 196 минут каждый месяц. Это были бы вашими эффектами первого порядка. Конечно, вы можете по-прежнему сделать другую задачу в то же время, но если вы посмотрите на стоимость отвлечения, которую вы закончите где-то в этом диапазоне.

Источник: Парнин, C. & Rugaber, S. (2010)

Статические и динамические настройки окружающей среды

При разработке веб-приложения определяемая среда разработки состоит из:

  • Конфигурация приложений (например, переменные среды, ключей доступа до 3-го вечеринки API).
  • Конфигурация инфраструктуры (например, кластер E.G. AK8S, конфигурация DNS, SSL-сертификат, базы данных).
  • Контейнеризованный код Как построить артефакты из вашего трубопровода CI

Если кому-то сказано Разорвать новую среду Это сначала обычно предпринимается вручную или полу-вручную. Во второй раз, когда вы настроите свою промежуточную среду, вы начнете снова начнете. Кому-то нужен особенность-филиал? Тот же конфигурация, та же работа. Это то, что мы называем статической настройкой среды. Он поставляется с несколькими негативными эффектами первого и второго порядка.

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

Это возможно только если:

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

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

Результаты эффектов второго порядка:

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

Скрипты ада

Многие команды мы видим скрипт все и говорите нам: «Это стабильно, и если что-то придет, мы вошли и измените его. «Если вы пойдете по переулке микросервиса, файлы .yml начнутся накапливать. Добавить Кубернаны сверху и ворса растет. Вы работаете сверху GCP, и они выкатывают насильственное обновление на их кластерные конфиги. Таким образом, вы идете в каждый файл и измените настройку и зависимости. Изображение действительно небольшое, простое приложение с 5 микросервисами. Это уже 10 мест, на которых вы работаете сейчас.

Ваши эффекты первого порядка легко рассчитать:

  • Понять проблему (30 минут),
  • Исправить все файлы (30 минут),
  • Вернитесь в другую задачу (15 минут).

Эффекты второго порядка являются еще более значительными:

  • Зависимость ключей: наш приведенный выше вычисление предполагает, что вы точно знаете обо всех файлах, которые вы должны обновить. Если вы не в конечном итоге в конечном итоге задокументированные настройки, пытаясь найти свой путь через скрипты.
  • Увеличение инцидентов безопасности: наш любимый пример — резервные сценарии в базах данных, которые вы забыли обновить. (Второе заказы на эффект взломанного Mongodb — это то, чего я, вероятно, не должен рассчитывать для вас).
  • Очень трудно добиться истинной непрерывной доставки со сценарием. Даже Ecommerce Giant Zalando имеет группу платформы из 110 человек на полный рабочий день, сценарию их рабочие процессы.

Когда начать инвестировать в дальнейшую автоматизацию?

Графический ниже исследует, стоит ли автоматизация усилий:

  • Как часто вы повторяете задачу в заданном временном кадре
  • Как долго проходит каждый проход?

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

Источник: xkcd.com ; ( CC BY-NC 2.5 )

Заключение

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

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

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

Оригинал: «https://dev.to/kvgruenberg/every-second-matters-the-hidden-costs-of-unoptimized-developer-workflows-25jf»