Одной из самых замечательных книг, которые я читал в прошлом году, был проект Phoenix. Это фантастика (я надеюсь) история, которая сравнивает много аспектов разработки программного обеспечения с работой фабрики. Некоторые элементы Lean представлены и применяются для улучшения рабочих процессов развития. Я не буду слишком сильно испортить историю, если вы захотите ее прочитать (и вы должны!).
Многие идеи, представленные в книге, превратились в лучшие практики, которые мы знаем сегодня. Но какова мотивация этих лучших практик, почему они существуют, как они?
Найти ваше ограничение
Книга подробно рассказывает о идее ограничений. Он проводит параллели между разработкой программного обеспечения и производством, которые имеют большой смысл. Ограничение на заводе будет то часть завода, где предметы занимают наибольшее для обработки. Это включает в себя как время ожидания, так и само время обработки. Ограничение — это то, что определяет фактический вывод всей фабрики. Книга смело заявляет, что Любое улучшение, которое вы делаете, что не улучшает ограничение, — это потерянное усилие Отказ
Что вы больше всего ждете в своей повседневной работе? Какие блоки или замедляются возможности для клиентов? Улучшение времени обработки может быть трудным для большинства вещей. С другой стороны, улучшение времени ожидания часто относительно легко.
Вы можете растянуть эту идею до действительно небольшого масштаба. Например, время вам нужно ждать, пока кто -то рассмотрит ваши изменения. Анализ того, как вы или ваша команда проводите время таким образом, может дать вам много идей для улучшения вашего процесса.
Уменьшение передачи
Лучшая практика: пусть разработчики сделают все необходимое для создания и запуска приложения (I.E. DevOps)
В традиционных компаниях часто есть несколько отделов, которые участвуют в получении одной функции в прямом эфире. Думайте, например, качественные отделы QA, безопасности или развертывания. Предоставление функции в такой компании означает, что вам придется сдать функцию много раз. Но эти передачи дорогостоящие и подверженные ошибкам. И любой из этих отделов может иметь разные приоритеты, что приводит к долгом времени ожидания.
DevOps тогда не столько в сочетании обязанностей DEV и OPS, сколько о позволяя одной команде доставить функцию самостоятельно . Одна команда, или даже один человек, заботится о создании функции, тестировании ее, проверки, соответствует ли она установленным стандартам безопасности, что нужно для доставки. Это может увеличить пропускную способность из-за уменьшенного времени ожидания. И это также может уменьшить указывание пальца, потому что вы, как разработчик, и чувствуете себя ответственным за приложение или функцию в целом.
Автоматическое развертывание
Лучшая практика: развертывание должно быть легким, если возможно, нажмите один щелчок
Место в трубопроводе функций, которое часто является ограничением, — это развертывание функций. Книга подробно рассказывает о значении возможности автоматического развертывания изменений. Если вы не можете развернуть автоматически, изменения, вероятно, складываются, а затем будут развернуты в партиях. Развертывание партии изменений по своей природе более рискованно. Добавьте к этому человеческую ошибку, которую вводит ручный аспект, и у вас есть что -то довольно страшное. Книга рисует действительно яркую картину некоторых сценариев развертывания, который вы бы предпочли не быть в.
Получить вещи сделано
Лучшая практика: продолжайте работать до минимума
Представьте, что вы работаете на заводе, и у вас есть 5 предметов для работы. Каждый предмет занимает час, чтобы закончить, и он состоит из нескольких шагов для завершения. Если вы начнете работать на всех 5 одновременно и полностью завершите каждый шаг, прежде чем продолжить следующий шаг, через 5 часов все предметы сделаны. Вы на самом деле можете финишировать немного быстрее, потому что делаете что -то оптом.
Если вы вместо этого работаете над элементами один за другим, выполняя все шаги для одного элемента, все равно потренится 5 часов, но первый элемент уже будет выполнен через 1 час. Это, конечно, относится так же к любой задаче, на которой вы работаете как разработчик. Тем не менее, массовое преимущество на самом деле не существует для нас, разработчиков. На самом деле это немного хуже, потому что стоимость переключения контекста, когда вы работаете над несколькими вещами одновременно.
Это может показаться тривиальным, но это действительно легко ошибаться. Всегда есть кто-то, кто зависит от того, что вы делаете вещи. Если это не коллега, это, вероятно, клиент. Уменьшение времени, необходимое для получения вещей, убедится, что ваши клиенты получат новые функции ранее. И поскольку они получают эти функции раньше, вы получите отзывы раньше.
Вывод
DevOps и идеи, которые он содержит, существовали уже некоторое время. Дайвинг в основополагающие концепции, позади этого, дал мне целый раз другой взгляд на моменты команд должны быть установлены и функционировать в компании. Вы не пользуетесь всеми этими идеями, если ваши DevOps люди все еще должны ждать, пока кто-то проверит свою работу, или для кого-то из безопасности, чтобы дать печать одобрения. Это не значит, что вы не должны тестировать или строить безопасный материал. Скорее это означает, что эти обязанности сдвигаются в сторону одной команды.
Книга делает отличную работу по объяснению всех этих идей и связывая их вместе. Это действительно весело и легко читать, я бы определенно порекомендовал вас Проверьте это Отказ
Оригинал: «https://dev.to/raoulmeyer/book-review-the-phoenix-project-3oae»