Low-Code, High Cost: Pitfalls In The Power Platform

As the constant talk of digital transformation meshes with the typical goal to grow business without additional headcount, the significance of a customer portal facilitating online procurement of products is one of the first projects identified in the journey. Organizations strive to stay ahead in the digital age, they find themselves navigating a dynamic marketplace, where customer expectations, competitive pressures, and technological advancements constantly reshape the business environment. In this context, a well-designed customer portal that streamlines the process of product procurement emerges as a central focal point, not only enhancing operational efficiency but also fortifying a company's capacity to adapt and innovate. Having a data-driven customer portal is often the key to success, thus a recent clean-up job that we were awarded involved course correcting a previous decision of turning to low-code or no-code platforms like Microsoft's Power Pages to build such a portal and integrating such with their flagship Dynamics 365 Finance and Operations ERP system. 

Introduction: Microsoft Power Pages - The Low-Code Solution for Modern External-Facing Websites

Microsoft Power Pages is marketed as a secure, enterprise-grade, low-code Software as a Service (SaaS) platform designed to revolutionize the creation, hosting, and administration of modern external-facing business websites. Whether you are a low-code enthusiast or a professional developer, Power Pages is supposedly built to equip you with the tools to swiftly design, configure, and publish websites that seamlessly function across web browsers and devices.

Power Pages introduces an array of compelling features, including rich and customizable templates, an intuitive design studio for a fluid visual experience, and an integrated learning hub. These resources are intended to empower you to craft websites that cater to your unique business requirements with speed and precision.

A key highlight of Power Pages is its integration with the Microsoft Power Platform family. This means you can harness the same shared business data stored in Microsoft Dataverse for building apps, workflows, intelligent virtual agents, reports, and analytics – all with other Microsoft Power Platform components in your organization. In essence, Power Pages attempts to offer a holistic solution for your web presence, utilizing the same data assets you rely on across various aspects of your business operations.

Introduction: Microsoft Dataverse - The Central Hub for Secure Data Management

Microsoft Dataverse stands as a foundational component within the Microsoft Power Platform, suggesting a secure and robust environment for the storage and management of data, essential for powering your business applications. At its core, Dataverse organizes and safeguards data using a structured approach, relying on tables as its foundational structure.

Each table within Dataverse is a collection of rows, previously known as records, and columns, which were once referred to as fields or attributes. The columns within these tables are carefully designed to store specific types of data, such as names, ages, salaries, and other relevant information. This structured approach ensures that your data remains organized and accessible, facilitating efficient data management and utilization.

Dataverse comes equipped with a core set of standard tables that cater to common business scenarios, providing a solid foundation for your data management needs. However, Dataverse's flexibility truly shines as it empowers you to create custom tables tailored to the unique requirements of your organization. These tables can then be populated with data through the use of Power Query, a powerful data transformation tool.
App makers within your organization are told they can harness the capabilities of Power Apps / Power Pages to build robust and feature-rich applications that seamlessly integrate with and utilize the data stored in Dataverse. This integrated approach allows you to bridge the gap between data management and application development, empowering you to create solutions that are not only efficient but also fully aligned with your business's specific needs.

Dataverse is then marketed as the heart of your data strategy, suggesting you can centralize, secure, and leverage your data effectively, facilitating the development of powerful business applications that drive success and efficiency across your organization. However, when integrating Dataverse with external systems, such as Microsoft's Power Pages and Dynamics 365, certain challenges certainly will present themselves, as we will explore in the following sections.

Our findings have suggested that while Microsoft's Dataverse is a good attempt and standardizing common data models found in the enterprise, it is simply a tall order to think that Microsoft can build data models that accommodate all the diverse use cases of how businesses operate, with that we suggest consumers of such proceed with caution.

The Challenges of Scaling Power Platform Services for Larger Organizations

While Microsoft's Power Platform, including services like Power Pages and Power Apps, presents an array of promising capabilities for businesses of various sizes, the reality is that larger organizations, often with revenues approaching or exceeding $500 million, will most likely find themselves facing a unique set of challenges that can undermine the lofty promises of these tools. It's essential to recognize that the "right-size" of technology stack can vary significantly depending on the scale of operations, and what works for smaller or mid-sized companies will most certainly not seamlessly translate to the demands of larger enterprises.

While Microsoft's Power Platform, including Power Pages and Power Apps, may present an attractive solution for smaller businesses and certain use cases, it has become quite apparent they are not the "right-size" technology stack for large organizations. The complexities and scale of operations at this level can introduce substantial challenges that negate the marketing promises provided by Microsoft, resulting in the accrual of significant technical debt. When considering these tools for a large enterprise, it's crucial to carefully assess and take inventory of the limitations and plan for the additional resources and customizations that will be required to ensure a successful and sustainable implementation.

We encountered the following showstoppers in the pursuit of building an always-on and always-available e-Commerce website:

1. Cross-Company Data Sharing Challenges

Large organizations often rely on cross-company data sharing to centralize and standardize their master data across multiple entities. This practice is essential for maintaining data consistency and integrity. However, when using Power Pages to integrate with Dynamics 365, a significant roadblock emerges. The standard functionality of dual-write synchronization from Dynamics 365 to the Dataverse does not support this cross-company data sharing approach. This means that additional custom Extract, Transform, Load (ETL) operations become necessary to handle the data synchronization properly. Not only does this add complexity to the project, but it also introduces significant overhead and the dreaded technical debt.

2. Data Sync Timeouts and ERP Disruptions

Attempting to leverage dual-write synchronization on large volumes of data can lead to timeouts, causing significant disruption to the functionality of Dynamics 365. This disruption, in turn, affects the user experience, as errors and performance degradation become all too common. The customer portal, which is reliant on this data synchronization, becomes a major source of concern. When your customer-facing website's data is out of sync with your ERP system, the potential for inaccuracies and customer dissatisfaction increases.

3. Missing Data Structures in the Dataverse

One of the key advantages of using the Dataverse is its role as a common data service for all Microsoft Power Platform applications. However, in real-life scenarios, it often falls short of providing the necessary data structures. Data that is vital for the customer portal may not be readily available in the Dataverse, leading to a challenging predicament. This, in turn, necessitates direct API access to Dynamics 365, requiring customizations in the form of X++ development. Moreover, this introduces the risk that your customer portal may become temporarily unavailable when Dynamics 365 is undergoing maintenance or upgrade/release operations.

4. Relying on Azure Serverless Functions for Performance

To achieve the required performance and website responsiveness, a heavy reliance on Azure Serverless Functions will become necessary. These functions can handle the heavier lifting in data processing, but they also require .NET resources. This introduces additional complexity and resource requirements into your project, which can be a major concern for organizations that chose a low-code/no-code approach to simplify development. 
While Microsoft's Power Pages and Dynamics 365 offer powerful tools for building data-driven customer portals, real-life projects can encounter significant challenges and limitations. These range from handling cross-company data sharing, to dealing with data synchronization disruptions, missing data structures, and the need for additional resources like Azure Serverless Functions. Organizations embarking on such projects must carefully assess these potential pitfalls and be prepared to invest in customizations and workarounds to overcome them. By understanding these challenges and planning accordingly, organizations can create robust customer portals that meet their data-driven needs while mitigating these potential issues.

Course Correction: Rebuilding with ASP.NET MVC, Azure Services, and Microservices

Recognizing the challenges and limitations encountered in the journey to build a customer portal using Power Pages and other Power Platform components, a course correction became imperative. The organization decided to pivot towards a more robust and reliable solution that better aligned with their needs and future scalability. The decision was made to revert to a proven technology stack and leverage cloud-native microservices, resulting in a more maintainable and efficient solution.

1. Embracing ASP.NET MVC on Azure App Services: The organization made the strategic choice to move away from the Power Platform and, instead, built the customer portal using ASP.NET MVC hosted on Azure App Services. This transition provided a sturdy foundation for the portal, enabling more control over the architecture and scalability. With ASP.NET MVC, the organization could tailor the portal to their specific requirements and ensure that it met their needs without the constraints encountered in the previous setup.

2. Robust Data Model and Hierarchy of Classes: To address and remove the dependency on Dynamics 365 being continuously available, the organization designed a robust data model represented by a hierarchy of classes. This approach allowed the extension of the portal to accommodate various entities within the organization. By creating a well-defined data model, the organization achieved better data consistency and control, reducing the risk of disruptions due to external dependencies such as relying on the flimsy dual-write D365 to Dataverse functionality.

3. Leveraging Azure Storage Queues and Azure Logic App: The previous reliance on direct APIs to Dynamics 365 was replaced with a more resilient solution. Azure Storage Queues were introduced to queue transactions, ensuring that they were picked up and processed at specific intervals via an Azure Logic App. This decoupled the portal from Dynamics 365's availability, allowing the organization to handle transactions asynchronously and avoid disruptions caused by downtime.

4. Data Management with Azure File Storage and LINQ: To address their data needs, the organization developed purpose-built data export processes that produced JSON data, which was then serialized and deserialized from Azure File Storage coupled with the usage of file-dependency cache mechanisms. This approach enabled the use of LINQ for extremely fast in-memory data access. The result was a data management strategy that was not only efficient but also highly performant.

5. A Pure Native .NET Solution with Cloud-Native Microservices: The end result was a pure native .NET solution that leveraged cloud-native microservices. This approach offered scalability, reliability, and flexibility, aligning with the organization's objectives. It also ensured that the solution could adapt to future requirements without the need for extensive customizations and workarounds.

6. Consolidation of Skills: By transitioning to a more traditional .NET-based solution, the organization consolidated the skills needed to maintain and enhance the portal. This approach simplified the hiring and training process, reducing the dependency on a wide range of expertise, as was required in the Power Platform setup.
The course correction that we suggested and that was undertaken by the organization represented a strategic move towards a more reliable and maintainable solution. By reverting to ASP.NET MVC, embracing Azure services, and transitioning to a cloud-native microservices architecture, the organization has addressed the pitfalls and limitations of their initial approach. This new solution not only offers better control and scalability but also simplifies skill requirements, ensuring a more efficient and robust customer portal that can adapt to future needs with ease.

In Closing: Navigating the Reality of Tech Solutions in a Cost-Value Paradigm

The journey from a Power Pages-built solution to a more robust, native .NET architecture serves as a valuable reminder of the critical importance of aligning technology choices with an organization's identity and scale. In an age where marketing propaganda (Microsoft Power Platform) and pay-to-play content (Gartner) can easily sway decision-making, it is essential to discern the true value of a tech solution beyond the allure of broken low-code/no-code promises. Organizations must be mindful of their specific needs and challenges, knowing that a "one-size-fits-all" approach rarely aligns with the intricate realities they face. Prioritizing cost over value can lead to disappointments and, ultimately, costly consequences. In the end, it's not about settling for what's popular but making informed decisions that truly serve the organization's unique mission and goals.

Comments

Popular posts from this blog

Exploring C# Optimization Techniques from Entry-Level to Seasoned Veteran

Implementing Enhanced Policing With Big Data and Predictive Analytics

Is Cloud Computing a Digital Transformation Enabler or Obstacle?