Dr. Gopala Krishna Behara
Enterprise Architecture
Enterprise architecture (EA) in an organization is often defined as the organizing logic for business processes and infrastructure. The primary purpose of creating enterprise architecture is to ensure that business strategy and IT are aligned. Enterprise architecture should make it possible for an organization to achieve traceability from the business strategy down to the technology used to implement that strategy.
Enterprise Architecture is a journey which acts as a collaboration force among:
- Business planning (strategic) such as goals, visions, strategies, capabilities and governance principles
- Business operations such as business terms, organization structures, processes, and data (information)
- Automation such as information systems and databases
- Enabling technological infrastructure of the business such as computers, operating systems and networks
Enterprise Architecture is not a one-time event, nor limited to specific projects or business units. It is an on-going, iterative process that provides:
- Common vision of the future shared by business and information
- Guidance in the selection, creation and implementation of solutions driven by business requirements
- Support for the various organization business lines through improved information sharing – provides plan for the integration of information and services at the design level across business lines
- Means to control growing complexities of technology by setting organization wide leverage-able standards for information technology
- Consistent process for creating new systems and migrating old systems
- Defines an approach for the evaluation, consideration and assimilation of new and emerging technology innovations to meet business requirements
Enterprise Architecture include the activities that help decision makers understand, analyze, optimize, justify and communicate a given structure, including relationships between business entities and software components. It looks at the current state (as-is architecture) to help build and navigate the future state (to-be architecture) of the organization, also establishing a roadmap to reach the future state.
Solution Architecture
Solution architecture is a process of architecting, designing, and managing the technical and operational architecture of a solution to meet specific business needs of a business unit of an organization. It involves the identification of the business, application, data and technology components required for the solution, as well as the interactions and dependencies between all those components.
The characteristics of Solution Architecture are:
- Modular Design – Architecture should always follow a modular component-based designs rather than monolithic blocks of system for easier management and change
- Ready to Grow – Solution should be designed with scalability and extendibility for ensuring future demands of the business are met easily by being able to plug in additional functionality with less effort into the system
- Build to Integrate – Systems should be designed to offer unique edge and adapt to the business and operational model by enabling integrations through multiple channels and protocols as required by the system
- Data is Valued – Data Management and Data quality should be given at most importance while designing the solution as they are critical for operations and for providing insights across the enterprise
- Secure & Compliant – Design should ensure that security and regulatory compliance requirements are built into solution designs. This shall include global standards and specific security frameworks, compliance and regulatory standards demanded by the application and sovereign country.
- Separation of concerns – Break the application into distinct features that overlap in functionality as little as possible
- Single Responsibility Principle – Each component or a module should be responsible for only a specific feature or functionality
- Principle of least knowledge – A component or an object should not know about internal details of other components or objects
- Don’t Repeat Yourself (DRY) – There should be only one component providing a specific functionality. The functionality should not be duplicated in any other component
- Make components pluggable – A component or an abstraction developed should provide means to improve the productivity, abstract the complexity, reduce dependency, make it portable.
The steps involved in developing the solution architecture are:
Identify business requirements: Understand the business requirements and objectives of the organization to design a solution that meets those needs.
Identify the business value streams: Determine the scope of the solution and identify the value streams and business functions that are required to meet the business requirements.
Identify the technical components: Identification of the technical components required for the solution, such as hardware, software, and network infrastructure are done during this stage.
Designing the architecture: Design the architecture of the solution, including the components, interactions, and dependencies between those components.
Evaluating and selecting technologies: Evaluate and select the appropriate technologies to use in the solution, considering factors such as cost, scalability, and compatibility with existing systems.
Documenting the architecture: Document the architecture of the solution, including the technical components and their interactions, to ensure that all stakeholders have a clear understanding of the solution.
Managing the implementation: Solution is implemented in accordance with the architecture that meets the business requirements.
The table below depicts the high level view of Enterprise Architecture Vs Solution Architecture.
Parameter | Enterprise Architecture | Solution Architecture |
Scope | Agency/Organization
Group of applications, enterprise, line of business, department, some part of enterprise |
Function/Processes
system |
Focus | what future state architecture looks like and gap between target and baseline architecture | how a specific problem will be solved- Solution focused
|
Context | holistic, All Stakeholders
|
Implementation specific, Users and Developers
|
Areas of Architecture | Business, Data, Application, Technology, Security, Integration | Functionality, Data, Infrastructure, security, integration, application |
Levels of details covered | Business Processes, Principles, application Portfolio, Technology Standards, Goals, Locations, Roles, Business Entities, Products and services | Functional requirements, modules, packages, components, services, external interfaces, data elements, data sources etc |
Perspective | Organizational, Business Outcome | Project, support Strategic Goals |
Framework | Zachman, ToGAF, FEAF etc | JEE, .Net |
Subjects | are for enterprise analysis, planning, and architecture governance
|
are meant to apply to solution implementation
|
Impact | Strategic Outcomes | Operational Outcomes |
Standards | Model Driven, Common Language, Process Oriented, Repository
|
Projects/Programs, Reusable Solutions, Application & Technology Roadmap |
Management Control | Collaborate and Consensus | Command and Control |
Sponsors | Chief Executives | Business Owner |
Enterprise Architect
Enterprise Architect lays the foundation for all architecture activities within the organization. They work with architecture community of an organization and provide information that will help develop solutions according to principles and standards, and jointly develop reference artifacts for use across the organization. The various skills that Enterprise Architect must possess are:
Generic Skills
- Communication: Ability to identify the audience and the right level of communication for that audience. Possess the ability to communicate with a diverse range of individuals over different communication media. Possess the ability to write in a clear and precise manner on complex business, technical items
- Relationships: must be able to build and maintain strong relationships with stakeholders with a wide variety of skills and abilities, including those with a non-technical background. Strong negotiation and problem solving skills are necessary. Must be able to build relationships with partners, vendors, and system integration partners
- Knowledge sharing: Demonstrate and maintain a broad knowledge of technology solutions, current trends and techniques, and actively seek inclusion of new technologies into standards
- Alignment: Work with Business executives, Chief Architects, Lead Architects and Solution Architects
Business Alignment
- Input in the Strategic Alignment phase of the Business Change Cycle
- Maintains familiarity with the strategic business plans
- Supports development of current and future state architecture
Communication and Direction
- Communicates availability of and changes to foundational elements to stakeholders
- Obtains organizational commitment for enterprise architecture initiatives
- Develops architecture metrics and reports for the executive team, business and IT management
Foundational Activities
- Responsible for defining, maintaining and communicating the architecture vision, principles, policies, patterns and standards in conjunction with IT partners
- Responsible for defining and maintaining reference architecture models – Business, Data, Applications and Technology models
- Responsible for defining and maintaining the Business Capability Model including their KPIs
Project and Program Management
- Input for the identification and creation of programs and projects, scheduling the changes
- Input for planning the operational change impacts and managing the execution of the project and realization of the benefits
Governance
- Architecture Governance
- Ensure fitment of proposed technology solutions to organization standards
- Jointly develop architecture decisions for adopting technologies
- Design Governance
- Ensure solutions adhere to standards
- Provide exception approvals if required
- Input to decision to escalate to Architecture Governance
- Input to mediate on Design Governance issues
There are many variants of the Enterprise Architect role, as depicted below.
Solution Architect
The Solution Architect (SA) supports the Lead Architect in the delivery of the end-to-end solution. The SA will work within one or many projects that describe the program of work under the Lead Architect. The SA will be a specialist in the functional or technology domain and is able to understand the architecture context to develop an architecture definition of the solution.
Core Architecture Skills
- Develop Architecture definition
- Describe the architecture using standard modeling methods adopted by the organization
- Ensure that architecture standards, patterns, principles are adhered to, develop roadmap and plans for compliance in case of any exceptions and seek approvals
- Describe architecture decisions including trade-offs made to satisfy project constraints
- Identify and describe project dependencies with other programs
- Describe testing scenarios and considerations
- Detail architecture risk and mitigation plans
- Develop non-functional design
- Develop implementation considerations
- Perform application package selection in accordance with enterprise packages and versions supported
- Application Component Implementation Plan
- Design functional architecture for service quality
- Ensure Solutions Meet NFRs
- Work with other Solution Architects (e.g., Cloud, Security) and ensure solution architecture in these areas roll up into the overall end to end architecture
Technical Skills
- Application catalog definition, correlation to other reference models
- Application portfolio and version management
- Implementation planning – patterns and reference architectures
- Application patterns and landscape
- Provide technical recommendations for system improvements
- Develop and maintain system standards and guidelines
- Provide technical oversight and expertise on project solutions
- Review technical designs for application projects for compatibility with EA standards\
Project and Program Management
- Assist the Lead Architect in the identification and creation of programs and projects, scheduling the changes
- Assist the Delivery Manager in planning the operational change impacts and managing the execution of the project and realization of the benefits
- Supports the Chief Architect in the delivery of the end-to-end solution
- Transformation planning & project alignment
Design Governance
- Submit solution designs to Governance
- Seek exception approvals if required
Generic Skills
- Communication: possess the ability to identify the audience and the right level of communication for that audience. Possess the ability to communicate with a diverse range of individuals over different communication media. Possess the ability to write in a clear and precise manner on complex technical items
- Relationships: must be able to build and maintain strong relationships with stakeholders with a wide variety of skills and abilities, including those with a non-technical background. Strong negotiation and problem solving skills are necessary. Must be able to build relationships with partners, vendors, and system integration partners
- Demonstrate and maintain a broad knowledge of technology solutions, current trends and techniques, and actively communicates new technology developments
- Knowledge and proficiency in architecture development tools and techniques
There are many variants of the Solution Architect role, as depicted below.
Summary
The purpose of Enterprise Architecture is to optimize the often fragmented legacy of business processes, both manual and automated, into an integrated environment that is responsive to change and supportive to the delivery of the business strategy. An enterprise architecture provides the strategic context for the evolution of IT systems in response to the constantly changing demands of the business environment.
Enterprise Architecture is not a one-time event, nor limited to specific projects or business units. It is an on-going, iterative process.
Solution architecture is a critical process in the development of complex technical solutions that meet the needs of the business. By following a structured approach to solution architecture, organizations can ensure that their solutions are designed to meet their business objectives, are scalable and maintainable, and are aligned with their overall strategy.
Acknowledgements
The author would like to thank Santosh Shinde of BTIS, Enterprise Architecture division of HCL Technologies Ltd for giving the required time and support in many ways in bringing this article as part of Architecture Practice efforts.
Dr. Gopala Krishna Behara is an Enterprise Architect in BTIS Enterprise Architecture division of HCL Technologies Ltd. He has a total of 26 years of IT experience. Reached at gopalakrishna.behara@hcl.com.
Disclaimer – The views expressed in this article/presentation are that of author and HCL does not subscribe to the substance, veracity or truthfulness of the said opinion.