As we discussed in Part 1 of this topic, it is important for enterprise architects to consider the greater context when implementing digital solutions to enable innovation throughout the organization. Below we have outlined some key considerations that will help enterprise architects build and define solutions within that context.
- Architect for the customer experience: The customer experience (CX) and user experience (UX) have shot up to the top of business priorities for most organizations, so they will likely need to consider CX/UX as an important part of their architecture. Understanding usage patterns and customer desires for both internal and external customers will help organizations develop established CX/UX patterns and models to help drive efficient use of the solutions being built and implemented.
- Understand who (and what) uses the data: An organization’s most valuable asset is its data. With organizations continuing to adopt open application programming interfaces (APIs), it is important to understand where data lives, how it is secured, how it is accessed and leveraged, and by whom, including other upstream and downstream systems and processes. Architects must consider the ecosystem the organization operates in, as open APIs give third-and-further parties access to the data. Data is no longer simply an internal asset, and the architecture should consider data accessibility while designing solutions.
- Build with automation in mind: As enterprise architects work with infrastructure and networking engineers to develop the right technical architecture, they should ensure the solutions they are building can be easily spun up and down without intensive manual processes. Building out automated tools and templates will help the organization easily spin up/down or scale the environments and infrastructure to support testing and deployment of digital solutions down the road.
- Think interoperability and loose coupling: A key to enabling innovation and agility is implementing modular solutions that build on top of one another, which means that the enterprise architect must have an interoperability strategy in mind. Whether a company is implementing an integration layer with an enterprise service bus (ESB), working through an API manager, or building services with robust, native APIs, it is important to use the same patterns across all solutions and platforms to enable both reuse and consistent outcomes.
- Start with a strong foundation: Architecting the right foundation for the solutions is incredibly important. The foundation or platform on which individual solutions are built needs to be scalable, easily managed, and provide a robust set of services that make maintaining the organization’s infrastructure, whether it be cloud-native, virtualized, or hardware-based, easy to navigate. A platform like Amazon Web Services (AWS) has a robust set of tools and services that make it easy to stand up modular solutions, similar to building with Lego bricks instead of recreating the wheel with each new application or service. Vendor lock-in is also a consideration when choosing a platform or ecosystem, so it is important to look for agnostic tools that will help with managing interoperability between platforms or ecosystems while maintaining flexibility.
- Build the pipeline for the desired future state: Pipeline development and deployment is important in the context of allowing the greater IT organization to deliver digital solutions at the speed required by today’s business environment. Architects, developers and technology operations engineers must work together to ensure they have the correct tooling and setup to enable continuous integration and deployment.
- Focus on quality of service: A successful architecture focuses on the service it provides to its internal and external customers, which leads to better adoption of solutions. Understanding the need of the business for “always on” core systems and applications should be part of the design thinking and implementation, and solutions should emphasize resiliency and 24x7x365 availability. Designing architectures that eliminate technical debt and single points of failure will also contribute to customer satisfaction related to the applications and systems.
- Build in testing and test automation wherever possible: Testing is a key component to continuous deployment and maintenance for any application in production. By implementing robust testing standards, organizations can easily identify points of failure and remediate those issues quickly. By automating as much testing as possible, developers and architects can focus on building out solutions instead of performing manual testing procedures.
- Build in security: As important as it is to build fast integration and delivery pipelines, security should never be an afterthought. Automating security by adding vulnerability management, access management, data scanning, and other tools to the continuous integration/continuous deployment (CI/CD) pipeline enables developers and engineers to spend more time on developing solutions that are fit for purpose (useful) instead of fit for use (useable).
The architectural design principles outlined above are critical to helping organizations build the architectures they need to thrive in an ever-changing business and technology landscape. Traditional enterprise architecture practices may no longer be effective and responsive enough in a world that demands speed, agility and innovation while continuing to insist on performance, resiliency, security, and privacy.
Michael Roberts, a Manager with Protiviti’s Technology Strategy practice, contributed to this content.