創新應用程式的應用程式開發Application development for innovative apps

如同以 數位發明將大眾化資料中所述,資料燃料大部分的數位經濟創新。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.

公民開發人員是利用公司 IT 所獲批准的開發和執行時間環境,建立新商務應用程式的使用者。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 、程式和預測的 AI Builder 、工作流程的 Power Automate ,以及資料耗用量的 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

智慧型體驗結合了現代化 web 應用程式的速度和規模,以及認知服務和 bot 的智慧。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.

現代化 Web 應用程式Modern web apps

新式 web 應用程式可以是符合內部或外部客戶需求的最快方式。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

專業和公民開發人員可以更輕鬆地將機器學習服務和 AI 功能新增至應用程式,以協助滿足客戶的需求並建立互動式體驗。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.

BotBots

Bot 是一種交談式 AI 應用程式,可為使用者提供更像處理人員的體驗,而不像處理傳統的電腦應用程式。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. 使用者透過文字、互動式卡片和語音與 bot 對話。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.

Bot 可以執行與其他軟體類型相同的動作:讀取和寫入檔案、使用資料庫和 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. Bot 的特點就是其使用通常保留給人與人通訊的機制。What makes bots unique is their use of mechanisms generally reserved for human-to-human communication. Bot 非常類似新式的 web 應用程式:它們存留在網際網路上,並使用 Api 來傳送和接收訊息。Bots are a lot like modern web applications: they live on the internet and use APIs to send and receive messages. 視 Bot 的種類而定,Bot 的功能差異很大。What's in a bot varies widely depending on what kind of bot it is. 新式 bot 軟體依賴一系列的技術和工具,在各種平臺上提供日益複雜的體驗。Modern bot software relies on a stack of technology and tools to deliver increasingly complex experiences on a variety of platforms. 不過,簡單的 Bot 可能只會收到訊息,並以極少的相關程式碼來回應使用者。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) 解決方案所需的商務邏輯,通常是透過多 式、web 服務、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 App ServiceIn 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. 遷移應用程式之後,會將一部分的部分修改或複製為 web 服務或 微服務,並與現有的解決方案平行部署。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 App Service。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. 這些通常牽涉到與效能、全球散發,以及 IT 營運妨礙運作的其他客戶需求相關的客戶世代。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. 例如,藉由 favoring 無伺服器選項,在流程初期將營運負擔降至最低。For example, minimize operational burdens early in the process by favoring serverless options. 在 Azure 中,無伺服器應用程式選項可能包含 Azure App Service容器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.