Разработка приложений для инновационных приложенийApplication development for innovative apps

Как обсуждалось в разделе более демократичным Data with Digital Invention, данные являются самыми новшествами в сфере цифрового энергоэкономичности.As discussed in Democratize data with digital invention, data fuels most innovations across the digital economy. При разработке на этом аналогии приложения являются станциями и инфраструктурой, необходимыми для того, чтобы получить топливо в нужных руках.Building on that analogy, applications are the fueling stations and infrastructure required to get that fuel into the right hands.

В некоторых случаях только данные достаточно для изменения и удовлетворения потребностей клиентов.In some cases, data alone is enough to drive change and meet customer needs. Чаще всего решениям для клиентов требуются приложения для формирования данных и создания интерфейса.More commonly though, solutions to customer needs require applications to shape the data and create an experience. Инновационные приложения применяют и взаимодействуют с пользователем, предоставляя информацию и рекомендации.Innovative applications engage and interact with the user, providing information and guidance. В этой статье приводятся некоторые принципы, которые помогут найти правильное решение для разработки приложений на основе подтверждений, которые должны быть проверены.This article summarizes several principles that can help you find the right application development solution, based on the hypotheses to be validated.

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

Общий кодShared code

Команды, которые быстро отвечают на Отзывы клиентов, изменения рынка и возможности, как правило, представляют собой лучшие инновации.Teams that are quick to respond to customer feedback, market changes, and opportunities typically innovate best. Первый принцип инновационных приложений — это элемент, предназначенный для расширения: "поделиться кодом".The first principle of innovative applications is an element of the growth mindset: "Share the code." Совместное использование кода предлагает различные перспективы и вклады, а подстегивает инновации.Code sharing invites diverse perspectives and contributions, and spurs innovation. Поэтому разработка приложений должна начинаться с общего репозитория кода.Therefore, application development should start with a shared code repository.

Широко распространенный инструмент для управления репозиториями кода — это GitHub, который позволяет быстро создать общий репозиторий кода.A widely adopted tool for managing code repositories is GitHub, which allows you to create a shared code repository quickly. Альтернативой является Microsoft Azure репозиториев, который представляет собой службу Azure DevOps , которая предоставляет неограниченный облачный частный репозиториев для вашего проекта.An alternative is Microsoft Azure Repos, which is an Azure DevOps service that provides unlimited, cloud-hosted private repos for your project. Для системы управления версиями при использовании Azure Repos можно выбрать Git, который является распределенным типом, или система управления версиями Team Foundation (TFVC), который является централизованным.For version control when you use Azure Repos, you can choose either Git, which is a distributed type, or Team Foundation Version Control (TFVC), which is centralized. Дополнительные сведения о Azure Repos, Git и TFVC см. в документации по Azure Repos.For more information about Azure Repos, Git, and TFVC, see Azure Repos Documentation.

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

Профессиональные разработчики важны для инноваций.Professional developers are important to innovation. Когда гипотеза доказывает точность масштабирования, они могут стабилизировать решение и подготовить его к масштабированию.When a hypothesis proves accurate at scale, they can stabilize the solution and prepare it for scale. К сожалению, профессиональные разработчики могут быть в кратком выпуске, а профессиональная разработка может увеличить затраты и снизить производительность инноваций.Unfortunately, professional developers may be in short supply, and professional development can increase costs and slow innovation.

Разработчики — это пользователи, которые создают новые бизнес-приложения с помощью сред разработки и среды выполнения, санкционированных корпоративным ИТ.Citizen developers are users who create new business applications using development and runtime environments sanctioned by corporate IT. Использование собственных разработчиков позволяет масштабировать усилия по разработке и ускорить тестирование на ранней гипотезе.The use of citizen developers can help to scale development efforts and accelerate early hypothesis testing. Эта стратегия приемлема и эффективна, когда ранние утверждения могут быть проверены с помощью таких средств, как Power Apps для интерфейсов приложений, искусственного интеллекта для процессов и прогнозов, автоматизации энергопотребления для рабочих процессов и Power BI для использования данных.This strategy is viable and effective when early hypotheses can be validated through tools like Power Apps for application interfaces, AI Builder for processes and predictions, Power Automate for workflows, and Power BI for data consumption.

Примечание

Если вы полагаетесь на разработчиков-владельцами для проверки на наличие этих данных, рекомендуется также иметь профессиональный разработчик для поддержки, проверки и посвященной работе.When you rely on citizen developers to test hypotheses, it's advisable to also have professional developers to support, review, and guide the work. Специалисты могут помочь в разработке надежной архитектуры, которая ускоряет работу на новшествах.The professionals can help develop a robust design that accelerates returns on the innovation. С участием профессиональных разработчиков в нужное время вы сможете реализовать более четкие переходы.By involving professional developers at the right time, you can realize cleaner transitions later.

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

Интеллектуальные функции сочетают скорость и масштаб современных веб-приложений с помощью аналитических служб и программы-роботы.Intelligent experiences combine the speed and scale of modern web applications with the intelligence of cognitive services and bots. Отдельно, каждая из этих технологий может быть достаточной для удовлетворения потребностей клиентов.Alone, each of these technologies might be sufficient to meet your customers' needs. При правильном объединении они расширяют спектр потребностей, которые могут быть удовлетворены с помощью цифрового опыта, а также содержат затраты на разработку приложений.When properly combined, they broaden the spectrum of needs that can be met through a digital experience, while helping to contain application development costs.

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

Современные веб-приложения могут быть самым быстрым способом удовлетворения потребностей внутренних или внешних клиентов.Modern web applications can be the fastest way to meet the needs of internal or external customers. Предоставляемые ими возможности могут быстро привлечь клиентов и обеспечить быстрое развитие решения.The experiences they provide can engage customers quickly and allow for rapid evolution of the solution.

Добавление аналитикиAdding intelligence

Это упрощает все время, которое дает разработчикам профессионального и специализированного решения добавлять функции машинного обучения и искусственного интеллекта в приложения, которые помогают удовлетворить потребности клиента и создавать интерактивный интерфейс.It gets easier all the time for professional and citizen developers to add machine learning and AI features to applications that help meet the needs of the customer and create an interactive experience. Ниже приведены некоторые примеры этих функций.Some examples of these features are:

  • Преобразование речи в текстSpeech to text
  • Преобразование текста в речьText to speech
  • компьютерное зрение;Computer vision
  • Визуальный поискVisual search
  • Прогноз AIPredictive AI

Инновации должны быть оповещены, чтобы воспользоваться преимуществами таких возможностей для создания интерактивного и современного интерфейса.Innovators should be alert to take advantage of such features to create an interactive and modern experience.

БотыBots

Bot — это приложение искусственного интеллекта, которое предоставляет пользователям возможности, которые более похожи на работу с человеком, и менее похоже на то, что вы работаете с обычным приложением для компьютеров.A bot is a conversational AI application that provides users an experience that is more like dealing with a person, and less like dealing with a conventional computer application. Пользователи, обратная с помощью программы-робота через текст, Интерактивные карты и речь.Users converse with a bot through text, interactive cards, and speech. Взаимодействие с Bot может варьироваться от быстрого вопроса и ответа — для создания резервирования на обеде, например, до сложного диалога, который обеспечивает интеллектуальный доступ к службам.A bot interaction can range from a quick question-and-answer—to make a dinner reservation, for instance—to a sophisticated conversation that intelligently provides access to services.

Программы-роботы может выполнять те же действия, что и другие типы программного обеспечения: чтение и запись файлов, использование баз данных и API и работа с обычными вычислительными задачами.Bots can do the same things as other types of software: read and write files, use databases and APIs, and handle regular computational tasks. Уникальность ботов заключается в том, что кроме этого они используют механизмы, традиционно задействованные для обмена данными между людьми.What makes bots unique is their use of mechanisms generally reserved for human-to-human communication. Программы-роботы — это очень похоже на современные веб-приложения: они находятся в Интернете и используют интерфейсы API для отправки и получения сообщений.Bots are a lot like modern web applications: they live on the internet and use APIs to send and receive messages. Содержимое бота может быть самым разным в зависимости от его типа и назначения.What's in a bot varies widely depending on what kind of bot it is. Современное программное обеспечение полагается на стек технологий и средств, чтобы обеспечить все более сложные возможности на различных платформах.Modern bot software relies on a stack of technology and tools to deliver increasingly complex experiences on a variety of platforms. Но могут существовать и простейшие боты, которые умеют лишь получать текстовое сообщение и возвращать его пользователю. Для таких достаточно лишь пары строк кода.However, a simple bot could just receive a message and echo it back to the user with very little code involved.

Собственные решения в облакеCloud-native solutions

Архитектура, собственная в облаке, позволяет использовать быстрое изменение и упростить выполнение устойчивых и масштабируемых приложений.Cloud-native architecture enables you to embrace rapid change, and run resilient and scalable applications more easily. Облачные приложения обычно создаются с помощью контейнеров, микрослужб, управляемых служб, бессерверных функций и программирования на основе событий.Cloud-native applications are typically built using containers, microservices, managed services, serverless functions, and event-based programming. Чаще всего облачные решения используют непрерывную доставку для достижения более быстрого рынка.Most commonly, cloud-native solutions use continuous delivery to achieve faster time to market.

Облачное решение позволяет централизованным группам разработчиков поддерживать управление бизнес-логикой без необходимости использовать монолитные и централизованные решения.A cloud-native solution allows centralized development teams to maintain control of the business logic without the need for monolithic, centralized solutions. Кроме того, он создает привязку для согласованности во входных данных разработчиков и современных интерфейсов.It also creates an anchor to drive consistency across the input of citizen developers and modern experiences. Наконец, облачные решения предоставляют инновационные ускорители, освобождая программистов и профессиональных разработчиков для безопасного создания инноваций и с минимальными блокировками.Finally, cloud-native solutions provide an innovation accelerator by freeing citizen and professional developers to innovate safely and with a minimum of blockers.

Инновации в существующих решенияхInnovate through existing solutions

Многие клиентские данные могут быть предоставлены современной версией существующего решения.Many customer hypotheses can best be delivered by a modernized version of an existing solution. Это может произойти, когда текущая бизнес-логика близка к пожеланиям клиентов.This can happen when the current business logic comes close to meeting customer needs.

Большинство форм модернизации, включая рефакторинг, включены в методологию миграции в облачной инфраструктуре внедрения.Most forms of modernization, including refactoring, are included in the Migrate methodology within the Cloud Adoption Framework. Эта методика помогает группам облачного внедрения в процессе переноса цифрового пространства в облако.That methodology guides cloud adoption teams through the process of migrating a digital estate to the cloud. В рамках руководств по миграции Azure предусмотрен оптимальный подход к той же методологии, который подходит для небольшого количества рабочих нагрузок или даже одного приложения.The Azure migration guide provides a streamlined approach to the same methodology, which is suitable for a small number of workloads or even a single application.

После переноса и современного решения существует множество способов, с помощью которых можно создавать новые инновационные решения для удовлетворения потребностей клиентов.After a solution has been migrated and modernized, there are a variety of ways it can be used to create new, innovative application solutions to meet customer needs. Например, разработчики -злоумышленники могли протестировать эти данные, или профессиональные разработчики могли создавать интеллектуальные возможности или облачные решения.For example, citizen developers could test hypotheses, or professional developers could create intelligent experiences or cloud-native solutions.

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

Расширение решения — одна из распространенных форм модернизации.Extending a solution is one common form of modernization. Это может быть самым быстрым путем к инновациям, если на гипотезе клиента справедливы следующие условия:This can be the fastest path to innovation when the following are true of the customer hypothesis:

  • Существующая бизнес-логика соответствует потребностям клиента или близка к ней.Existing business logic meets or comes close to customer needs.
  • Улучшенная работа, не новая, наилучшим образом соответствует потребностям клиентов.An improved experience, not a new one, best meets the needs of customers.
  • Бизнес-логика, необходимая для решения "минимальный приемлемый продукт" (MVP), обычно была централизована, как правило, с помощью n-уровневого, веб-служб, API или дизайна микрослужб .The business logic required by the minimum viable product (MVP) solution has been centralized, usually via an n-tier, web services, API, or microservices design. Этот подход состоит из упаковки существующего решения в новом интерфейсе, размещенном в облаке.This approach consists of wrapping the existing solution within a new experience hosted in the cloud. В Azure это решение, скорее всего, будет активно в службе приложений Azure.In Azure, this solution would likely live in Azure App Service.

Перестроение существующего решенияRebuild an existing solution

Если существующее решение соответствует потребностям клиента или близко к нему, но не может быть легко расширено, может потребоваться его рефакторинг.If an existing solution meets or comes close to meeting customer needs, but can't be easily extended, it may be necessary to refactor it. При таком подходе приложение переносится в облако.In this approach, the application is migrated to the cloud. После переноса приложения его части изменяются или дублируются, как веб-службы или микрослужбы, которые развертываются параллельно с существующим решением.After the application is migrated, parts of it are modified or duplicated, as web services or microservices, which are deployed in parallel with the existing solution. Параллельное решение на основе служб может рассматриваться как расширенное решение.The parallel service-based solution could be treated like an extended solution. Это решение будет просто переносить существующее решение с новым интерфейсом, размещенным в облаке.This solution would simply wrap the existing solution with a new experience hosted in the cloud. В Azure это решение, скорее всего, будет активно в службе приложений Azure.In Azure, this solution would likely live in Azure App Service.

Внимание!

Рефакторинг или реструктуризация решений, а также централизация бизнес-логики могут быстро запустить ресурсоемкий технический пик вместо источника ценности клиента.Refactoring or rearchitecting solutions or centralizing business logic can quickly trigger a time-consuming technical spike instead of a source of customer value. Это является риском для инноваций, особенно на раннем этапе проверки гипотезы.This is a risk to innovation, especially early in hypothesis validation. С небольшой творческой целью в проектировании решения должен быть путь к MVP, который не требует переработки существующих решений.With a bit of creativity in the design of a solution, there should be a path to MVP that doesn't require refactoring of existing solutions. Разумно отложить рефакторинг до тех пор, пока начальная гипотеза не сможет быть проверена в масштабе.It's wise to delay refactoring until the initial hypothesis can be validated at scale.

Нововведения в рабочей моделиOperating model innovations

Помимо современных инновационных подходов к разработке приложений, в работе приложений были внесены значительные нововведения.In addition to modern innovative approaches to application development, there have been notable innovations in application operations. Эти подходы породили много перемещений Организации.These approaches have spawned many organizational movements. Одним из наиболее выразительного является облачный центр высокоэффективной операционной модели.One of the most prominent is the cloud center of excellence operating model. При полном штате и готовности бизнес-группы могут предоставлять собственную операционную поддержку для решения.When fully staffed and mature, business teams have the option to provide their own operational support for a solution.

Тип модели оперативного управления самообслуживания, находящийся в облачном центре, позволяет более тесным элементам управления и быстрее выполнять итерации в среде решения.The type of self-service operational management model found in a cloud center of excellence allows for tighter controls and faster iterations within the solution environment. Эти цели выполняются путем передачи управления и контроля операций в бизнес-группу.These goals are accomplished by transferring operational control and accountability to the business team.

Если вы пытаетесь масштабировать или удовлетворить глобальное требование для существующего решения, этот подход может быть достаточно для проверки гипотезы клиента.If you're trying to scale or meet global demand for an existing solution, this approach might be sufficient to validate a customer hypothesis. После переноса и незначительного современного решения бизнес-группа может масштабировать ее для тестирования различных данных.After a solution is migrated and slightly modernized, the business team can scale it to test a variety of hypotheses. Обычно это касается когорты клиентов, которые связаны с производительностью, глобальным распределением и другими потребностями клиентов, которые мешают работе ИТ.These typically involve customer cohorts who are concerned with performance, global distribution, and other customer needs hindered by IT operations.

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

Чем больше это необходимо для того, чтобы в инновационном приложении или решении можно было выполнять итерацию.The more there is to maintain within an innovative application or solution, the slower that application or solution will iterate. Это означает, что вы можете ускорить инновации, уменьшая влияние операций на доступную пропускную способность.This means you can accelerate innovation by reducing the impact of operations on available bandwidth.

Чтобы подготовиться к множеству итераций, необходимых для предоставления инновационного решения, важно заранее подумать.To prepare for the many iterations required to deliver an innovative solution, it's important to think ahead. Например, можно сократить эксплуатационные расходы на ранних этапах процесса, отдавая предпочтение бессерверным параметрам.For example, minimize operational burdens early in the process by favoring serverless options. В Azure параметры бессерверных приложений могут включать в себя службу приложений Azure или контейнеры.In Azure, serverless application options could include Azure App Service or containers.

В параллельном режиме рассмотрим параметры данных транзакций без сервера, предоставляемые Azure — они также могут снизить затраты.In parallel, consider the serverless transaction data options that Azure provides—they can also reduce overhead. Каталог продуктов Azure предоставляет параметры базы данных, которые размещают данные без необходимости в полной платформе данных.The Azure product catalog provides database options that host data without the need for a full data platform.

Дальнейшие шагиNext steps

В зависимости от гипотезы и решения принципы, описанные в этой статье, могут помочь в проектировании приложений, которые соответствуют определениям MVP и привлекать пользователей.Depending on the hypothesis and solution, the principles in this article can aid in designing applications that meet MVP definitions and engage users. Далее следует ознакомиться с принципами повышения эффективности внедрения, которые предлагают способы получения приложения и данных пользователям быстрее и эффективнее.Up next are the principles for empowering adoption, which offer ways to get the application and data into the hands of customers more quickly and efficiently.