The term ‘Digital’ more often would mean multiple things. However, there are certain key characteristics that define whether an application or a service offering is truly digital or not. I find it helpful to take an architectural view to capture some of these key characteristics.
Here is my take on some of the key IT architectural principles an application or a service offering should follow.
Principle 1: Online, multi-channel and rich User Centric Experience. Enterprises should offer its services through online and multi-channel interfaces that are rich, intuitive, responsive, easy to use and visually appealing. Separate the UI look and feel from data. Create Omni Channel and multi-device experience with appropriate personalization and multilingual features.
Why? An intuitive, consistent and easy to use interface enhances user experience and improves stickiness.
Principle 2: Service Oriented Architecture. Features and functionality should be available as loosely coupled, self-contained, standards-based and configurable services. Services could be
- · a domain based service or an aggregation service (aggregation of underlying services for right abstractions) or
- · a technical service (technical common services like logging services, security services etc.) or
- · an integration service or a data service (for abstracting underlying data access and management).
These services should follow granularity (Traditional SOA and/or Microservices) appropriate to a particular business or functionality. Combine this with Asynchronous Messaging and Processing.
Why? Digital systems need to be agile, loosely coupled, ubiquitous and easily scalable. Service-oriented and Microservices architectures enable the above needs.
Principle 3: API First approach. When designing services, think what APIs these services will expose. What is the purpose of those APIs? Who and how will these APIs will be consumed? Are the APIs too granular or at the right abstraction level What standard interfaces (REST, RPC etc.?) will the services expose. Follow API versioning to enable backward compatibility and flexibility.
Why? This principle helps to find the right abstraction level for services. Avoids redundant/un-usable services and chatty situations.
Principle 4: Leverage Data Analytics and insights for differentiation. Leverage data analytics & insights for process contextualization, personalized campaigns, targeting, marketing automation and behaviour based segmentation etc. Adopt the right combination of a traditional data management approach and a big data management approach (Polyglot approach).
Why? Availability of diverse data sets (big, traditional, streaming, structured, and unstructured) and data analytics provides opportunities to leverage analytics-driven insights for differentiation and customer contextualization thus resulting in the ability to personalize and contextualize.
Principle 5: Contextual Awareness. Acquire and leverage user and context data including user preferences, location etc.
Why? This helps to provide context-based content, personalized interactions and services through the application of data analytics and insights. Improves customer intimacy and loyalty.
Principle 6: Secure by Design. Ensure security is addressed end to end and considered upfront. This includes security considerations across multiple dimensions like authentication, multi-factor, key management, SSO, authorization, auditing, logging, and encryption of data in transit and data at rest.
Why? Secure access to users enhances confidence in adopting digital online channels. Inadequate security features and Compliance issues result in lost customers and high penalties.
Principle 7: Cloud First Approach. Think cloud-first approach. Could be a private cloud (hosted cloud using commercial stacks or open stack) or a public cloud (AWS or Azure etc.) or a combination.
Why? Digital systems are expected to be ubiquitous systems across geographies and locations. Digital systems are also expected to be agile and flexible. Cloud-based principles and systems are a pre-requisite for IT automation, infrastructure as code and agile approaches like DevOps. Cloud-based services and deployments enables flexibility, agility, scalability and performance to deliver services.
Principle 8: DevOps for Agility. Adopt DevOps as an enabler for agile development and deployment for Digital systems. DevOps is a combination of continuous integration (including Build management, test management and automation), continuous delivery (including environmental management and deployment management), infrastructure as code and iterative development approach.
Why? Quick time to market and agility are key tenets of Digital systems. DevOps approach enables these.
Principle 9: Non Functional Requirements (NFR) Considerations. Give due considerations for all NFR (Non-Functional Requirements, or Quality of Service parameters) requirements and design through the entire development cycle. NFR includes HA (High Availability), DR (Disaster Recovery), Scalability, Re-Usability, Maintainability, Localization, configurability, Security and Compliance needs.
Why? Digital systems are required to be mission critical. Operating a Digital enterprise requires industrial-grade, highly available systems that operate 24/7 with minimal support. For example Scalable architecture should be based on scale-out mechanisms.