Разработка инновационных приложений

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

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

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

Общий код

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

Широко распространенный инструмент для управления репозиториями кода — это GitHub, который позволяет быстро создать общий репозиторий кода. Можно также использовать Microsoft Azure Repos, который является службой Azure DevOps и предоставляет для проекта неограниченные частные облачные репозитории. Для системы управления версиями при использовании Azure Repos можно выбрать Git, который относится к распределенным решениям, или централизованную систему управления версиями Team Foundation (TFVC). Подробнее об Azure Repos, Git и TFVC см. в документации по Azure Repos.

Разработчики-любители

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

Разработчики-любители — это пользователи, которые создают новые бизнес-приложения с помощью сред разработки и выполнения, на использование которых корпоративная ИТ-служба дала разрешение. Использование разработчиков-любителей позволяет масштабировать усилия по разработке и ускорить раннее тестирование гипотезы. Эта стратегия приемлема и эффективна, если ранние гипотезы можно проверить с помощью таких средств, как Power Apps для интерфейсов приложений, AI Builder для процессов и прогнозов, Power Automate для рабочих процессов и Power BI для использования данных.

Примечание

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

Интеллектуальные возможности

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

Современные веб-приложения

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

Внедрение средств искусственного интеллекта

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

  • Преобразование речи в текст
  • Преобразование текста в речь
  • компьютерное зрение;
  • Визуальный поиск
  • Прогнозирующие средства ИИ

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

Боты

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

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

Решения, ориентированные на облако

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

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

Разработка инноваций с помощью существующих решений

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

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

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

Расширение существующего решения

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

  • Существующая бизнес-логика соответствует потребностям клиента или близка к этому.
  • Потребностям клиентов наилучшим образом соответствует улучшенный, а не новый интерфейс.
  • Бизнес-логика, необходимая для продукта с минимальной функциональностью (MVP), была централизована. Обычно для этого используется n-уровневая структура, веб-службы, API или микрослужбы. Этот подход предполагает “упаковку” существующего решения в новый интерфейс, размещенный в облаке. В Azure это решение, скорее всего, будет находиться в Службе приложений Azure.

Перестроение существующего решения

Если существующее решение более-менее соответствует потребностям клиента, но его невозможно легко расширить, может потребоваться его рефакторинг. При таком подходе приложение переносится в облако. После переноса приложения его части изменяются или дублируются как веб-службы или микрослужбы, которые развертываются параллельно с существующим решением. Параллельное решение на основе служб может рассматриваться как расширенное решение. Это решение будет просто служить “упаковкой” существующего решения с новым интерфейсом, размещенным в облаке. В Azure это решение, скорее всего, будет находиться в Службе приложений Azure.

Внимание!

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

Новшества в рабочей модели

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

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

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

Сокращение издержек и управление

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

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

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

Дальнейшие действия

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