Идея для начала дня: непрерывная интеграция (CI) и непрерывная доставка (CD)
Узнайте, как эти программные процессы могут помочь вам превратить небольшие непрерывные изменения в большие улучшения.
Непрерывная интеграция (CI) и непрерывная доставка (CD) - это процессы, разработанные, чтобы убить монстра с головой гидры, которым является разработка программного обеспечения.
Всякий раз, когда вы попадаете в приложение, столь же безобидное, как домашняя страница Google, под его лаконичностью скрывается бурлящая экосистема взаимосвязанных организмов, каждая из которых порождает свои собственные подсистемы, подпитываемые ненасытным аппетитом к коду и данным, способным затопить океанский лайнер.
Таким образом, основная функция программной инженерии - снижение сложности, и в этом помогают двойные процессы CI и CD.
Есть несколько параллелей и универсальных уроков, которые мы можем извлечь из этих процессов, чтобы помочь оптимизировать нашу жизнь, исходя из следующей предпосылки:
- Жизнь, как и разработка программного обеспечения, запутана и сложна, и каждое решение чревато опасностью невидимых эффектов второго или даже третьего порядка в будущем.
- Жизнь - это преодоление дерьма путем поиска оптимальных решений нескончаемых проблем; Аналогичным образом, программные приложения создаются для решения проблем, направленных на повышение уровня жизни в 21 веке.
- В жизни и разработке программного обеспечения легче управлять небольшими, постепенными изменениями.
Прежде чем мы забегаем вперед, что именно такое непрерывная интеграция и непрерывная доставка? Обещаю не утомлять вас излишними техническими подробностями.
Что такое CI и CD, и почему это должно вас волновать?
- Непрерывная интеграция: это практика интеграции всех изменений кода от нескольких разработчиков в один проект с использованием автоматизированных процессов.
- Непрерывная доставка: команды производят программное обеспечение в короткие циклы, чтобы гарантировать, что его можно будет надежно выпустить в любое время путем создания и тестирования с большей эффективностью.
Существенными особенностями CI и CD является то, что они обеспечивают конвейер доставки, в котором небольшие изменения кода от нескольких участников непрерывно интегрируются (безопасно, с проверками качества благодаря автоматическому тестированию) в производственную систему в рамках оптимизированного, автоматизированного процесса.
И непрерывная интеграция, и непрерывная доставка возникли из попытки быстрее доставлять программные продукты потребителям. В разработке программного обеспечения существует старая концепция, согласно которой клиенту предлагается три варианта: быстро, хорошо или дешево - выберите два.
Что ж, быстрее не всегда лучше. Думаю, вы слышали термин двигайся быстро и ломай вещи, верно? Что ж, все мы знаем, как это обернулось для Facebook и всех нас.
Необходимость реагировать на требования быстро меняющихся рынков и вкусов потребителей в цифровую эпоху требует, чтобы производственные процессы были быстрыми, но дешевыми, чтобы быть устойчивыми; однако жертва качества означает, что клиенты вряд ли будут задерживаться слишком долго.
Двойной дуэт непрерывной интеграции и непрерывной доставки - это попытка дать ИТ-отделам лучшее из трех миров.
Следовательно, важная цель - быстро, безболезненно и устойчиво предоставлять высококачественное программное обеспечение.
Точно так же вам понадобится компас конвейера CI / CD, который направит вас по следующим направлениям:
Думай масштабно, действуй скромно
У большинства из нас есть мечты и амбиции, которые выглядят устрашающими, даже устрашающими. Для некоторых размер их амбиций с нынешней точки зрения кажется непреодолимым.
Однако принципы CI и CD побуждают нас не отказываться от наших мечтаний из-за их размера или недостатка ресурсов. Вместо того, чтобы чувствовать себя обескураживающим, вкладывайте небольшое количество времени и усилий, которые вы можете посвятить прямо сейчас, и не позволяйте идеальному становиться врагом хорошего.
Так что не пренебрегайте днями маленьких начинаний. Позаботьтесь о небольших вещах, которые находятся в пределах вашего контроля, терпеливо позволяйте им набирать обороты, чтобы осуществить ваши мечты.
Будь то накопление на пенсию, проведение большего количества времени с семьей или похудание, делайте небольшие шаги и наблюдайте, как они складываются.
«Не беспокойтесь о слишком многих вещах одновременно. Для начала возьмите несколько простых вещей, а затем переходите к более сложным. Думайте не только о завтрашнем дне, но и о будущем. Поместите удар во вселенную ». - Стив Джобс
Непрерывное совершенствование превосходит отложенное совершенство
Путем непрерывной интеграции небольших изменений кода в основной репозиторий кода и частого развертывания этих небольших изменений в производственной среде конвейер CI / CD учит нас преимуществам постепенных изменений и улучшений.
К сожалению, наша установка на обед в микроволновой печи часто саботирует нас, думая, что мы можем изменить свою жизнь в мгновение ока.
«Привычки не меняются за день. Но 1% в день заставляет каждую привычку работать ». - Джеймс Алтучер
Однако, если вы возьмете на себя обязательство ежедневно улучшаться на 1%, вы будете поражены тем, как прогресс, которого вы достигнете, со временем будет увеличиваться, превращая вас в эксперта в своей области.
Улучшение - это постепенный процесс. Это то, что постоянно практикуется, как показывает конвейер CI / CD, который создает тонкую, как бритву, маржу, отделяющую победителей от проигравших.
Когда вы испытываете искушение разочароваться из-за медленного прогресса, вспомните старую поговорку:
«Как вы попадете в Карнеги-холл? Практика, практика, практика ».
Быстрая и постоянная обратная связь
Внесение небольших, постепенных изменений, как сторонники CI / CD, позволяет человеку быть гибким.
Небольшой размер выборки позволяет вам быстро получить обратную связь от клиентов или вашего окружения, а затем использовать эти знания для повторения и улучшения ваших целей, привычек и жизни гораздо раньше.
Более того, меньшие изменения позволяют быстрее изолировать источник проблем, что, в свою очередь, позволяет более точно оценить, на правильном ли вы пути.
Снижение риска и экономия затрат
Поддержка конвейера CI / CD побуждает разработчиков и программистов рисковать. Это потому, что они знают, что результаты их экспериментов не будут катастрофическими, поскольку легко изолировать ошибки и даже откатить всю систему до последней беспроблемной сборки.
Следование этой же философии побуждает людей усовершенствовать идею в небольшом масштабе с помощью ограниченного ценностного предложения, такого как минимально жизнеспособный продукт (MVP), без вложения огромных ресурсов для проверки его осуществимости.
Итак, это мои друзья. Используйте параллели между жизнью и этими практиками разработки программного обеспечения, чтобы сделать качественный скачок на новый уровень.
Следите за призом, попотеть над мелочами, которые будут приближать вас все ближе и ближе к вашей мечте.
Начать сейчас.