Expert Guide: Optimizing Dynamics CRM Customizations for Seamless Dynamics 365 Migration

Posts

The technological landscape surrounding Dynamics 365 and Microsoft Power Platform continues to evolve at an unprecedented pace, creating ripple effects across organizations worldwide. Whether you operate as a customer relationship management consultant or represent an enterprise utilizing these platforms, the transformative wave of emerging technologies has become impossible to ignore. This comprehensive evolution encompasses sophisticated automation flows, the revolutionary Common Data Service framework, the standardized Common Data Model architecture, the expansive Power Platform ecosystem, innovative canvas applications, sophisticated model-driven applications, and an extensive array of groundbreaking features that have been systematically introduced through the Dynamics platform infrastructure over recent years.

Despite this remarkable technological advancement, countless organizations continue operating legacy Dynamics Customer Relationship Management systems, with many finding themselves unable to transition their valuable CRM datasets to cloud-based environments due to multifaceted challenges and constraints. These impediments frequently manifest as budgetary concerns associated with comprehensive upgrade initiatives, or perhaps stem from organizational preferences to maintain their customer data repositories within on-premises infrastructure for enhanced security protocols or regulatory compliance requirements.

If you represent a Dynamics consulting professional working with earlier iterations of the platform, you likely experience the sensation of technological lag, potentially feeling disconnected from cutting-edge developments. The desire to implement innovative features within your current projects may be overwhelming, yet your clientele might not possess the organizational readiness for such transitions.

However, there exists no justification for concern or apprehension. Microsoft’s unwavering commitment to their “cloud-first” strategic approach continues gaining momentum, while official support for traditional Dynamics CRM platforms approaches its predetermined conclusion in the foreseeable future. This trajectory presents compelling opportunities to accelerate your Dynamics environment migration to online platforms sooner than originally anticipated.

The critical question emerges: have you adequately prepared? Are your development practices aligned with Microsoft’s recommended guidelines when crafting customizations? If you’re strategically planning ahead for your Dynamics CRM platform upgrade, this comprehensive guide provides an essential preparatory framework to ensure both your existing and future customizations meet optimal standards and remain compatible with the evolving Dynamics ecosystem.

This extensive article explores methodologies for optimizing your Dynamics CRM customization techniques, enabling seamless scalability of your developments to cloud-based Dynamics 365 instances. Additionally, we’ll examine integration strategies for connecting Dynamics CRM on-premises installations with online applications throughout the Microsoft technology stack.

The fundamental question remains: are your customizations optimized and prepared for successful scalability?

Essential Guidelines for Ensuring Dynamics CRM Customizations Achieve Dynamics 365 Compatibility

Prioritize Out-of-the-Box Customization Solutions Whenever Feasible

The significance of this fundamental principle cannot be overstated or underestimated. While adhering to standard off-the-shelf customization approaches might appear routine or conventional, it represents the foundational rule for preparing solutions for successful upgrades—a principle that every experienced CRM consultant eventually masters through practical experience.

Understanding the underlying importance becomes crucial for effective implementation. When you leverage out-of-the-box customizations including forms, views, fields, business rules, and standard workflows, you’re essentially utilizing the comprehensive features that Dynamics CRM provides as an integrated platform. Consequently, when transitioning your instance to online environments, functionality continues operating seamlessly because you’re utilizing platform-native features that can be automatically migrated to online environments without requiring extensive modifications.

Consider this illustrative scenario: you’ve fulfilled a specific requirement using the XRM script model that could have been accomplished using business rules instead. During migration processes, there’s substantial probability that the API you’ve implemented has been removed or deprecated in the online version, necessitating complete redevelopment. However, if you had utilized business rules, the functionality would continue operating without additional modifications.

An additional advantage of utilizing out-of-the-box features means if functionality fails to operate correctly in the upgraded version, you maintain Microsoft’s support since you’re using designated platform features. What provides greater reassurance than Microsoft’s guarantee to deliver fixes when issues arise? This represents why we should consistently follow this principle during customization processes.

Therefore, remember these hierarchical preferences:

Customization approaches should take precedence over custom coding in general circumstances. Form customizations or role-based forms should be preferred over form scripts. Business rules should be chosen over custom scripts. Workflows should be selected over plugins. Standard workflows should be prioritized over custom workflow assemblies.

Generally, we should consistently prioritize configuration ahead of custom code development whenever and wherever circumstances permit. When development requirements arise, conduct thorough analysis first and verify whether accomplishment is possible using out-of-the-box customization techniques. Coding for extensibility should represent the final option for Dynamics consultants.

Key takeaway: Customization and configuration over custom code should represent a consultant’s primary choice.

The Perils of Unsupported Customization in CRM Solutions

Unsupported customizations have been a significant stumbling block for businesses aiming to scale their CRM systems effectively. Across the CRM industry, these customizations have consistently been a primary obstacle when it comes to the growth and upgradation of systems. Despite their initial appeal to end-users, unsupported modifications ultimately lead to substantial challenges, particularly during upgrade processes. The temptation to implement such customizations often stems from a desire to cater to specific business needs, but over time, they tend to hinder long-term CRM scalability, stability, and support.

How Unsupported Customizations Impact CRM Systems

Unsupported customizations are modifications that deviate from the standard practices recommended by CRM platform providers, such as Microsoft. While these customizations may offer immediate gratification by seemingly addressing unique requirements, they almost always lead to significant challenges down the road, especially during system upgrades or migrations. The reliance on these alterations creates a fragile foundation for a CRM system, making future enhancements difficult or even impossible without complete redevelopment.

For instance, relying on unsupported customization strategies can lock organizations into a specific version of the CRM platform, significantly reducing the ability to benefit from the latest improvements or security patches. The platform’s upgrade process may become so cumbersome and error-prone that it becomes far more expensive and time-consuming than maintaining standard, supported configurations.

The Hidden Dangers of JavaScript and jQuery Customizations

One of the most common unsupported customization practices involves using native JavaScript or jQuery to manipulate CRM forms. This approach often aims to add extra functionality or change the behavior of CRM fields and controls. However, this method is fraught with long-term issues. As CRM platforms evolve, particularly with the introduction of newer versions such as Dynamics 365, the underlying architecture changes significantly. These structural changes are often incompatible with custom JavaScript or jQuery modifications, which makes the system prone to failure or unexpected behavior after an upgrade.

By sidestepping the official client scripting model provided by Dynamics 365, these custom scripts create an unstable foundation. Any update or migration to a new platform version could render these scripts obsolete, resulting in broken forms or incorrect functionality. The long-term cost of maintaining these unsupported scripts far outweighs the temporary advantages they may provide.

Modifying the Core CRM Database: A Risky Endeavor

Another critical area where unsupported customization practices commonly occur is within the core database of CRM systems. This includes making unauthorized modifications to the database structure itself, such as adding new fields, tables, views, or triggers. These changes are often made to tailor the system to specific business needs, but they come with substantial risks. Directly altering the CRM database undermines the integrity of the platform and can cause irreversible damage during system upgrades or migrations.

CRM platforms like Dynamics 365 are designed to be flexible, but they also rely on a standardized database structure to ensure data integrity and system reliability. Altering this structure, particularly by adding custom tables or triggers, can lead to a scenario where future upgrades are impossible without completely rebuilding the system. It also severely limits the support options available from the CRM vendor, as they generally do not support instances with custom database modifications.

Additionally, opting for unsupported customizations in the database can compromise the security and performance of the system. For example, database triggers may interfere with normal data processing, leading to delays, data integrity issues, or even crashes. Furthermore, such customizations often void warranty agreements or service-level agreements (SLAs), leaving organizations without recourse if the system encounters major issues.

The Impact of Unsupported Custom Web Pages on CRM Platforms

In addition to altering CRM forms and database structures, hosting custom web pages within a CRM instance is another widely-used but unsupported customization practice. While this may be possible on an on-premises CRM instance, it presents significant issues when migrating to cloud-based environments such as Microsoft Dynamics 365 Online. The architecture of cloud solutions is different from on-premises deployments, and custom web pages often fail to work or break entirely when transferred to the cloud.

Microsoft recommends using HTML-based web resources instead of custom web pages when working with Dynamics 365. This alternative method integrates more seamlessly with the CRM environment and offers better compatibility with cloud deployments. Custom web pages, by contrast, can create a significant barrier to a smooth transition to the cloud and may lead to issues that require major workarounds or even complete system overhauls.

Hosting custom web pages often brings additional challenges related to security. These pages might require specific permissions, configurations, and access to data that conflict with the platform’s security protocols. When these pages fail, they can expose the system to potential vulnerabilities, making them a serious risk in terms of both functionality and data protection.

The Role of Microsoft FastTrack and Supported Customizations

When businesses migrate from on-premises CRM systems to cloud-based solutions, they often turn to Microsoft’s FastTrack program for assistance. FastTrack is designed to provide guidance and best practices for moving to cloud platforms while maintaining system integrity. However, there is a key caveat: any unsupported customizations in the CRM instance disqualify an organization from utilizing FastTrack services. This creates a major barrier for businesses that rely on unsupported customizations, as they will either need to remove these modifications or forgo FastTrack services altogether.

Organizations that have embraced unsupported customizations may find themselves stuck in a difficult position. On one hand, these customizations may have seemed essential for meeting specific business needs, but on the other, they now prevent access to valuable resources and support services. To ensure a smooth transition to the cloud and continued access to Microsoft’s assistance programs, businesses must be committed to eliminating unsupported customizations from their systems.

Best Practices for Customizing CRM Systems Without Sacrificing Support

While unsupported customizations should be avoided, this does not mean that customization in CRM systems is inherently bad. The key is to work within the supported customization frameworks provided by the CRM platform. Microsoft Dynamics 365, for example, offers a robust suite of tools that allow businesses to customize the system in ways that are both effective and future-proof.

Leveraging tools such as Power Apps, Power Automate, and the Common Data Service enables businesses to build custom solutions without compromising system integrity or future compatibility. These solutions are supported by Microsoft, ensuring that they can be easily maintained, upgraded, and scaled as the business grows. Additionally, using these tools minimizes the risk of encountering compatibility issues during system upgrades.

Another crucial best practice is to focus on extending the CRM system through configuration rather than customization. Configuration allows businesses to modify settings and workflows within the bounds of the platform’s supported functionality, ensuring that upgrades and migrations proceed smoothly.

The Consequences of Ignoring the Risks of Unsupported Customizations

Ignoring the risks associated with unsupported customizations can have severe consequences for businesses in the long run. At first glance, these modifications may appear to provide immediate value, but their cumulative impact can significantly degrade the system’s performance, security, and overall effectiveness.

Over time, unsupported customizations create a snowball effect. What might seem like a minor issue in the short term can escalate into a major obstacle when it comes to system upgrades or migrations. The inability to scale or access new features can restrict a business’s ability to remain competitive in an ever-changing market. Moreover, the lack of support from the CRM provider means that organizations will often need to rely on costly third-party consultants or undertake extensive internal rework to resolve issues.

The best approach is to adopt a proactive mindset when it comes to CRM customizations. By following recommended best practices and leveraging supported customization tools, businesses can ensure that their CRM systems remain flexible, scalable, and future-proof.

Utilize Web API Instead of Organization Service

The Organization Service has been officially deprecated, and Microsoft has emphasized this transition in all relevant documentation. Additionally, SOAP-based services have become obsolete in most modern applications, making it essential for professionals to embrace this technological evolution.

If you’re fortunate to have Web API available (Dynamics CRM 2016 and later versions), always ensure utilization of the Web API endpoint instead of Organization Service, whether for form scripts, web resource development, or integration of CRM with external applications.

The Web API offers superior performance, modern RESTful architecture, and enhanced compatibility with contemporary development practices. It provides better error handling, improved security features, and seamless integration capabilities with modern web technologies. Furthermore, the Web API supports JSON formatting, which is more lightweight and easier to parse compared to XML-based SOAP responses.

Key takeaway: Evolve beyond Organization Service and invest in WebAPI capabilities—when you possess superior technology, utilize it to its fullest potential.

Ensure Plugin Functionality in Sandbox Mode

With Dynamics CRM on-premises deployments, we possess the capability to register plugin assemblies with Isolation Mode configured as “None”. Registering in Isolation Mode “None” means during runtime, plugins operate with complete trust privileges. This configuration enables activities such as accessing network file shares, utilizing System.Security namespaces for handling User Identities and impersonation, and making authenticated calls to external websites using DNS names or IP addresses.

However, these capabilities that we consider standard in Dynamics CRM on-premises environments may create significant challenges when upscaling your environment to cloud platforms. With Dynamics 365 online, plugins must be registered in Sandbox mode—no alternative options exist for switching to “None” isolation.

Understanding sandbox limitations becomes essential for successful migration. If plugins are sandboxed, none of the previously mentioned operations can be executed. Essentially, we cannot execute code that attempts to access local resources, make HTTP calls using IP addresses or machine names, or use .NET classes for authentication—utilizing Microsoft.ActiveDirectory.Authentication or System.Security namespace classes would result in runtime errors.

Overcoming these limitations requires strategic planning and architectural adjustments. Making HTTP calls with domain names instead of machine names or IP addresses represents good practice and shouldn’t present difficulties. However, the inability to use .NET authentication classes when accessing local network resources can pose challenges.

Consider this example: you have a SharePoint Online instance and need to interact with SharePoint Online from your plugin. The simplest authentication method with SharePoint Online from Dynamics CRM Online plugins involves using the SharePointOnlineCredentials class construct. While this may function perfectly from your Dynamics CRM plugins, it won’t operate when upscaling to online environments—your plugin will be sandboxed and you’ll encounter exceptions when using this Authentication construct.

In such scenarios, adopting REST-based approaches instead of using .NET SDK classes becomes preferable. The ideal solution involves utilizing Azure Service Bus features—queues, relays, and similar services—or sending data to webhook endpoints.

Essentially, while developing any server-side functionality in Dynamics CRM, consider future scalability for online scenarios.

Key takeaway: Design with Sandbox limitations in mind, even when not currently bound by them.

Implement FetchXML for Dynamics CRM Reporting

With Dynamics CRM, you maintain access to Report Server and CRM Database Server, enabling creation of sophisticated reports using SQL Server Reporting Services. Unfortunately, with Dynamics 365 online, access to either component is unavailable, limiting you to FetchXML for reporting purposes.

Throughout years of experience with multiple CRM implementations, approximately 60-70% of reports developed in Dynamics CRM on-premises could have been created using FetchXML, but instead were developed using SSRS technologies.

Whenever reporting requirements arise, maintain scalability to online environments in mind. If development can be accomplished using FetchXML, utilize it instead of SSRS. This approach will save significant time and effort in future migration scenarios.

FetchXML offers several advantages including simplified deployment, reduced maintenance overhead, automatic translation to multiple languages, and seamless compatibility with online environments. Additionally, FetchXML reports can be easily modified by end-users without requiring developer intervention, providing greater flexibility for ongoing business requirements.

Key takeaway: CRM reporting and FetchXML represent the perfect combination for sustainable customizations.

Adhere to Development Best Practices

While inadequate development practices may not completely prevent an upgrade to Dynamics 365, poor customization practices can definitely create significant challenges. If functionality generates errors post-upgrade, debugging becomes considerably more difficult if previous customization practices have been substandard.

Here are essential best practices for client-side developments that facilitate easy upscaling:

Name WebResources meaningfully and descriptively. If you’re developing an HTML page displaying the list of products associated with an account, name it something like “account_product_list.html” or similar descriptive nomenclature.

A major component of client-side development involves form scripting, requiring special attention to naming conventions. Form scripts should be named based on the entity for which they’re written and their specific purpose. For example, a JavaScript library handling form onload and onsave events for the account entity should be named something like “account_formevents.js”. Additionally, there should be separate files for handling field events and ribbon events such as:

  • Account_fieldevents.js
  • Account_ribbonevents.js

Instead of consolidating all logic into a single file called account.js, separating functionality as detailed above makes debugging significantly easier—if you encounter errors while the account form loads after upgrade, you know exactly which file to examine.

Provide namespace for your JavaScript libraries. Everyone appreciates being addressed by their complete name, and scripts function similarly. You can have two functions called Form_onload registered for both account and opportunity entities, however, they serve different purposes. It’s preferable to have distinctive full names—instead of calling functions something like Form_onload(), name them FormEvents.Form_onload() for account and Opportunity.FormEvents.Form_onload() for opportunity.

Similarly, when writing plugins or custom workflow assemblies, we should carefully name class files so the name becomes the first indication of functionality. We should avoid creating separate class files for each plugin step, but also ensure we don’t consolidate all logic in a single class file. You wouldn’t appreciate receiving messy code files, so don’t create them for others.

Key takeaway: Proactive preparation prevents future problems, and well-maintained code follows the same principle.

Transition Away from Deprecated Dialogs

Personally, dialogs represent fascinating functionality. However, they’ve been officially deprecated. To clarify, deprecated doesn’t mean completely removed—dialogs continue functioning perfectly, even in the latest Dynamics versions available at the time of writing.

Dialogs were popular with clients requiring interactive dialog displays to users and step-by-step information capture. However, it’s time to begin considering alternative designs for existing dialogs and similar new requirements for future developments.

What alternatives exist for dialog functionality? Essentially, a combination of workflow and business process flow provides the necessary framework for designing dialog replacement. For complex dialog scenarios, you might need to utilize next-generation workflows, specifically Microsoft Flow. Regardless of approach, beginning work with Flow now represents wise preparation—by the time you’re ready to implement it, dialogs could be completely obsolete.

Microsoft Flow offers superior capabilities including cloud-based processing, extensive connector ecosystem, advanced conditional logic, and seamless integration with other Microsoft services. It provides more robust error handling, better monitoring capabilities, and enhanced security features compared to traditional dialogs.

Key takeaway: Release your dependency on dialogs before it becomes problematic.

Leverage Online Integration Capabilities Despite On-Premises Limitations

If you’ve addressed all the previously mentioned considerations, then you’re positioned for a smooth upgrade experience. However, while upscaling your environment remains a decision your customer will ultimately make, as a CRM designer you can certainly provide valuable input on optimally integrating your CRM with other online Microsoft stack technologies your customer currently utilizes. Being on-premises doesn’t have to limit your capability to integrate with services like Power BI, Microsoft Flow, and Azure services.

Let’s explore several integration options available for on-premises environments.

Utilize Power BI, Microsoft Flow, and PowerApps Using On-Premises Gateways

A gateway represents software installed within an on-premises network infrastructure. It facilitates access to data within that network—functioning like a gatekeeper that monitors connection requests and grants access only when user requests meet specific criteria.

When utilized with Power BI, Dynamics CRM on-premises can function as an on-premises database to feed Power BI reports and dashboards. A gateway can support single data sources or multiple data sources, enabling you to combine your CRM data with other disparate data sources and prepare comprehensive reports in Power BI that represent amalgamations of data from multiple sources.

With on-premises data gateways, you can connect your flows with on-premises data sources. Here are the data sources that gateways can support:

  • SQL Server
  • SharePoint
  • Oracle
  • Informix
  • Filesystem
  • DB2

With your CRM functioning as an on-premises SQL server data source, you can connect Microsoft Flow with your CRM data on-premises, provided your customer maintains a PowerApps license.

Currently, only the default Power Platform environment supports on-premises gateways. However, this feature will become available in all Power Platform environments very soon.

If your customer possesses a PowerApps license, you can build sophisticated canvas apps using your Dynamics CRM database as on-premises SQL data source.

The gateway architecture provides secure, reliable connectivity between on-premises data sources and cloud services. It encrypts all communications, supports multiple concurrent connections, and provides comprehensive monitoring and logging capabilities. Additionally, gateways can be clustered for high availability and load distribution.

Azure Relay Services for Secure Integration

Azure Relay service securely exposes services running in your corporate network to the public cloud without opening firewall ports or making intrusive changes to your corporate network infrastructure.

If your Dynamics CRM is hosted on an intranet securely hidden behind a company firewall, Azure Relay services represent the perfect method for exposing your CRM data to the public cloud while maintaining security and control of the data you want to expose.

Azure Relays provide real-time integration of your on-premises data where the sender and recipient connect over a conduit established from the on-premises data source. Since requests originate from within the firewall, outgoing requests aren’t blocked and communication channels are established successfully, allowing secure data transfer.

In every Relay configuration, there are essentially two components: the sender and the listener. If you want to integrate your Dynamics CRM with other business applications hosted in cloud environments, your CRM will function as the sender and the cloud application will serve as the listener. Azure Relay service creates a gateway and establishes a communication channel through which the client sends and receives requests.

Azure Relay offers several connection options including WebSockets, HTTP requests, and TCP connections. It provides automatic load balancing, supports SSL encryption, and offers comprehensive monitoring and diagnostic capabilities. The service also handles connection management, automatic reconnection, and provides detailed usage analytics.

Understanding Support Timelines and Migration Planning

We’ve discussed how being on-premises doesn’t limit your capability to access the latest online services, but determining the optimal upgrade timing largely depends on when Microsoft Support for your version is scheduled to end.

The support lifecycle for various Dynamics CRM versions follows specific timelines that organizations must consider when planning their migration strategies. Understanding these timelines is crucial for making informed decisions about upgrade timing and budget allocation.

Dynamics CRM 4.0 mainstream support ended on April 9, 2013, with extended support concluding on April 10, 2018. Dynamics CRM 2011 mainstream support ended on July 12, 2016, with extended support scheduled to end on July 13, 2021. Dynamics CRM 2013 mainstream support ends on January 8, 2019, with extended support continuing until January 9, 2024. Dynamics CRM 2015 mainstream support concludes on January 14, 2020, with extended support available until January 14, 2025.

For Dynamics CRM 2016 and Dynamics CRM 2016 Service Pack 1, Microsoft has adopted a different support model that aligns with their cloud-first strategy and modern lifecycle policies.

Organizations should begin planning their migration well before support end dates to avoid potential security vulnerabilities, compliance issues, and loss of technical assistance. The migration process typically requires 6-12 months of planning and execution, depending on the complexity of customizations and integrations.

Advanced Integration Patterns and Architectural Considerations

While your customer may require time to make the transition to Dynamics 365 online, numerous patterns and practices can be followed while working with Dynamics CRM that enable integration with other cloud-based Microsoft stack technologies and help prepare for eventual migration.

Modern integration architectures emphasize event-driven designs, microservices patterns, and API-first approaches. These architectural principles align perfectly with cloud migration strategies and provide better scalability, reliability, and maintainability.

Consider implementing event-driven architectures using Azure Service Bus, which provides reliable message queuing and publish-subscribe patterns. This approach decouples your CRM system from external dependencies and provides better resilience during migration processes.

API management strategies become crucial when exposing CRM data to external systems. Azure API Management provides comprehensive capabilities including request throttling, authentication, monitoring, and version management. These features become essential when transitioning from on-premises to cloud environments.

Data synchronization patterns require careful consideration, especially when maintaining hybrid environments during migration periods. Implementing robust change tracking, conflict resolution, and data consistency mechanisms ensures data integrity throughout the migration process.

Security considerations become paramount when integrating on-premises CRM systems with cloud services. Implementing zero-trust security models, comprehensive audit logging, and encryption for data in transit and at rest provides the foundation for secure hybrid architectures.

Performance Optimization and Scalability Considerations

Performance optimization strategies for Dynamics CRM customizations directly impact migration success and ongoing system performance. Understanding and implementing these strategies during the on-premises phase significantly simplifies cloud migration.

Database optimization techniques including proper indexing, query optimization, and data archiving strategies improve both on-premises performance and cloud migration speed. Implementing these optimizations early provides better user experience and reduces migration time.

Caching strategies become more important in cloud environments due to network latency considerations. Implementing appropriate caching mechanisms for frequently accessed data, computed results, and external service responses improves overall system performance.

Connection pooling and resource management practices that work well on-premises may require adjustment for cloud environments. Understanding these differences and implementing cloud-friendly resource management patterns early in the development process prevents performance issues post-migration.

Monitoring and diagnostics capabilities should be implemented throughout the customization development process. These capabilities provide valuable insights during migration planning and ongoing system management in cloud environments.

Conclusion:

The journey from Dynamics CRM on-premises to Dynamics 365 online represents more than a simple platform migration—it’s a transformation that requires careful planning, adherence to best practices, and strategic implementation of modern integration patterns.

By following the guidelines outlined in this comprehensive guide, organizations can ensure their customizations remain compatible, their integrations continue functioning, and their migration processes proceed smoothly. The key lies in proactive preparation, consistent adherence to Microsoft’s recommended practices, and strategic implementation of cloud-ready architectures.

The future of customer relationship management lies in cloud-based platforms that offer enhanced scalability, security, and integration capabilities. Organizations that prepare adequately for this transition will find themselves well-positioned to leverage the full potential of Microsoft’s evolving technology stack.

Success in this transition requires commitment to ongoing learning, adoption of modern development practices, and strategic alignment with Microsoft’s cloud-first vision. The investment in proper preparation pays dividends through reduced migration complexity, improved system performance, and enhanced capabilities for future growth and innovation.