Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Конечной проверкой инноваций является реакция клиента на ваше изобретение. Верна ли гипотеза? Используют ли клиенты решение? Масштабируется ли оно в соответствии с потребностями требуемого процента пользователей? Самое главное, они продолжают возвращаться? Ни один из этих вопросов не может быть задан до развертывания минимального жизнеспособного решения (MVP).
В этой статье мы сосредоточимся на расширении возможностей внедрения с помощью средств непрерывной интеграции и непрерывного развертывания (CI/CD). Непрерывная интеграция — это автоматизация кода несколько раз в день, чтобы иметь обновленный один проект. Непрерывное развертывание — это автоматическая доставка этих функций в течение дня.
Сокращение трений CI/CD, влияющих на внедрение
Некоторые препятствия для внедрения можно свести к минимуму с помощью сочетания технологий и процессов. Для читателей с знаниями о процессах CI/CD или DevOps будут знакомы следующие процессы конвейера CI/CD. Эта статья устанавливает отправную точку для команд внедрения облака, которые подпитывают инновации и циклы обратной связи. Эта отправная точка может способствовать более надежному подходу CI/CD или DevOps, так как продукты и команды зрелы.
Как описано в статье Measure for customer impact, положительная проверка любой гипотезы требует итерации и определения. Эта статья CI/CD направлена на минимизацию технических проблем, замедляющих инновации, при этом обеспечивая соблюдение лучших практик. Это поможет команде планировать будущие успехи, удовлетворяя текущие потребности клиентов.
Расширение возможностей внедрения и цифрового изобретения: модель зрелости
Основной целью методологии инноваций является создание партнерских отношений клиентов и ускорение циклов обратной связи, что приводит к инновациям рынка. На следующем рисунке и разделах описываются начальные реализации, поддерживающие эту методологию.
- Общее решение: создание централизованного репозитория для всех аспектов решения.
- Циклы обратной связи. Убедитесь, что циклы обратной связи можно управлять последовательно с помощью итераций.
- Непрерывная интеграция: регулярно создавайте и консолидируйте решение.
- Надежное тестирование: проверьте качество решения и ожидаемые изменения, чтобы обеспечить надежность метрик тестирования.
- Развертывание решения: развертывание решений, чтобы команда быстро поделились изменениями с клиентами.
- Интегрированное измерение: добавьте метрики обучения в цикл обратной связи для четкого анализа всей командой.
Чтобы свести к минимуму технические скачки, предположим, что зрелость изначально будет низкой во всех этих принципах. Планируйте заранее, согласовывая инструменты и процессы, которые могут быть масштабированы по мере того, как гипотезы становятся все более конкретными. В Azure GitHub и Azure DevOps позволяют небольшим командам приступить к работе с небольшими трениями. Эти команды могут увеличиться, чтобы включить тысячи разработчиков, которые сотрудничают с масштабируемыми решениями и тестируют сотни гипотез клиентов. Остальная часть этой статьи иллюстрирует подход "планируйте крупно, начинайте с малого" для расширения возможностей принятия этих принципов.
Общее решение
Как описано в статье Measure for customer impact, положительная проверка любой гипотезы требует итерации и определения. Вы будете испытывать гораздо больше сбоев, чем победы во время любого цикла инноваций. Это ожидается. Однако, когда потребности клиента, гипотеза и решение выравниваются в значительных масштабах, мир быстро меняется.
При масштабировании цифровых изобретений и инноваций нет более ценного инструмента, чем общая база кода для решения. К сожалению, нет надежного способа предсказать, какая итерация или какой MVP приведет к выигрышной комбинации. Поэтому никогда не рано устанавливать общую базу кода или репозиторий. Это тот самый технический эксперимент, который не должен быть отложен. По мере того как команда выполняет итерацию по различным решениям MVP, общий репозиторий позволяет легко сотрудничать и ускорить разработку. Когда изменения в решении перетаскивают метрики обучения, управление версиями позволяет откатить более раннюю, более эффективную версию решения.
Самым широко используемым средством CI/CD для управления репозиториями кода является GitHub, который позволяет создать общий репозиторий кода всего за несколько шагов. Кроме того, функцию Azure Repos в Azure DevOps можно использовать для создания репозитория Git или TFVC.
Циклы обратной связи
Создание клиентской части решения является ключом к созданию партнерских отношений клиентов во время инновационных циклов. Это достигается, в частности, путем измерения влияния клиентов. Для этого требуются беседы и прямое тестирование с клиентом. Оба создают обратную связь, которой нужно эффективно управлять.
Каждая точка обратной связи — это потенциальное решение для потребностей клиента. Более важно то, что каждая часть прямого отзыва клиентов представляет возможность улучшить партнерство. Если отзывы становятся частью решения минимально жизнеспособного продукта, отпразднуйте это с клиентом. Даже если некоторые отзывы не могут быть использованы, простая прозрачность в отношении решения о понижении приоритета этой обратной связи демонстрирует мышление роста и фокус на непрерывном обучении.
Azure DevOps включает способы запроса, предоставления отзывов и управления ими. Эти инструменты централизуют отзывы, чтобы команда могла принять меры и обеспечить последующие действия в интересах прозрачного цикла обратной связи.
Непрерывная интеграция
Непрерывная интеграция — это автоматизация кода несколько раз в день для обновления одного проекта. По мере масштабирования внедрения и гипотеза приближается к настоящим инновациям в большом масштабе, число небольших гипотез, которые необходимо проверить, обычно быстро растет. Для точных циклов обратной связи и процессов плавного внедрения важно, чтобы эти гипотезы интегрированы и поддерживают основную гипотезу, лежащую в основе инноваций. Это требует быстрого перехода к инновациям и росту, что требует нескольких разработчиков для тестирования вариантов основной гипотезы. Для более поздних этапов разработки может понадобиться несколько команд разработчиков, каждая из которых работает над достижением общей цели. Непрерывная интеграция — это первый шаг к управлению всеми движущимися частями.
При непрерывной интеграции изменения кода часто объединяются в основную ветвь. Автоматизированные процессы сборки и тестирования гарантируют, что код в главной ветви всегда является производственного качества. Это гарантирует, что разработчики работают вместе для разработки общих решений, которые обеспечивают точные и надежные циклы обратной связи.
Azure DevOps и Azure Pipelines предоставляют возможности непрерывной интеграции с несколькими шагами в GitHub или других репозиториях. Дополнительные сведения см. в статье "Что такое непрерывная интеграция" или пробная лаборатория непрерывной интеграции. Доступны архитектуры решений, которые могут ускорить создание конвейеров CI/CD с помощью Azure DevOps.
Надежное тестирование
Дефекты в любом решении могут создавать ложноположительные или ложноотрицательные результаты. Непредвиденные ошибки могут легко привести к неправильной интерпретации метрик внедрения пользователей. Они также могут создавать негативные отзывы от клиентов, которые не точно отражают проверку вашей гипотезы.
Во время ранних итераций решения MVP ожидаются дефекты. Ранние пользователи могут даже находить их обаятельными. В ранних выпусках приемочное тестирование обычно не проводится. Однако один из аспектов строительства с сочувствием касается проверки необходимости и гипотезы. Оба теста можно выполнить с помощью модульных тестов на уровне кода и ручных приемочных тестов перед развертыванием. Вместе они обеспечивают некоторые средства надежности в тестировании. Следует постараться автоматизировать хорошо определённую серию тестов сборки, юнит-тестов и тестов приёмки. Это обеспечит надежные метрики, связанные с более тонкими настройками гипотезы и результирующего решения.
Функция "Планы тестирования Azure " предоставляет средства для разработки и эксплуатации планов тестирования во время ручного или автоматического выполнения тестов.
Развертывание решения
Возможно, наиболее значимым аспектом расширения возможностей внедрения является ваша способность управлять выпуском решения для клиентов. Предоставив самообслуживание или автоматизированный конвейер для выпуска решения клиентам, вы ускорите цикл обратной связи. Позволяя клиентам быстро взаимодействовать с изменениями в решении, вы приглашаете их в процесс. Этот подход также активирует более быстрое тестирование гипотез, сокращение допущений и потенциальной повторной работы.
Существует несколько методов развертывания решения. Ниже перечислены три наиболее распространенных:
- Непрерывное развертывание — это самый сложный метод, так как он автоматически развертывает изменения кода в рабочей среде. Для зрелых команд, которые тестируют зрелые гипотезы, непрерывное развертывание может быть чрезвычайно ценным.
- На ранних этапах разработки непрерывная доставка может быть более подходящей. При непрерывной доставке любые изменения кода автоматически развертываются в рабочей среде. Разработчики, руководители бизнес-решений и другие участники команды могут использовать эту среду, чтобы убедиться, что их работа готова к работе. Этот метод также можно использовать для проверки гипотезы с клиентами, не влияя на текущие бизнес-действия.
- Развертывание вручную — это наименее сложный подход к управлению выпусками. Как следует из названия, кто-то из команды вручную развертывает последние изменения в коде. Этот подход подвержен ошибкам, ненадежным и считается антипаттерном большинством опытных инженеров.
Во время первой итерации решения MVP развертывание вручную является обычным, несмотря на предшествующую оценку. Если проект или стратегия являются чрезвычайно нестабильными и отзывы клиентов неизвестны, есть высокий риск пересмотра всего проекта (или даже основной идеи). Ниже приведено общее правило для ручного развертывания: нет подтверждения клиента, а автоматизация развертывания отсутствует.
Инвестиции рано могут привести к потере времени. Что более важно, это может создавать зависимости от конвейера выпуска, которые делают команду более устойчивой к раннему изменению направления. После первых нескольких итераций или когда отзывы клиентов свидетельствуют о потенциальном успехе, следует оперативно принять более расширенную модель развертывания.
На любом этапе проверки гипотезы Azure DevOps и Azure Pipelines предоставляют возможности непрерывной доставки и непрерывного развертывания. Узнайте больше о непрерывной доставке или ознакомьтесь с практической лабораторией. Архитектура решения также может ускорить создание конвейеров CI/CD с помощью Azure DevOps.
Интегрированные измерения
При измерении влияния на клиентов важно понимать, как клиенты реагируют на изменения в решении. Эти данные, известные как телеметрия, предоставляют аналитические сведения о действиях пользователя (или когорты пользователей), принятых при работе с решением. Из этих данных легко получить количественное подтверждение гипотезы. Затем эти метрики можно использовать для настройки решения и создания более точных гипотез. Эти тонкие изменения помогают улучшить первоначальное решение в последующих итерациях, в конечном счете приводят к повторному внедрению в широком масштабе.
В Azure Azure Monitor предоставляет средства и интерфейсы для сбора и просмотра данных из взаимодействия с клиентами. Эти наблюдения и аналитические сведения можно применить для уточнения невыполненной работы с помощью Azure Boards.
Дальнейшие действия
После того как вы получили представление о средствах и процессах конвейера CI/CD, необходимых для расширения возможностей внедрения, пришло время изучить более расширенную дисциплину инноваций: взаимодействовать с устройствами. Эта дисциплина может помочь уменьшить барьеры между физическим и цифровым интерфейсом, что делает решение еще более простым для внедрения.