Skip to main content

Enterprise Architecture

Introduction

Enterprise Architecture and the Software Development Life Cycle are two similar frameworks with different scales and scopes. A well-established Enterprise Architecture in an organization can potentially provide support to each step of the life cycle process. A software application created by well-executed SDLC project which is aligned with the enterprise architecture can provide rapid value and return on investment to the organization.

Enterprise Systems

Enterprise systems are large-scale implementation of information systems within the organization or enterprise. They act as the centralized utility infrastucture for the transfer and transfer of information and implementation of processes throughout the organization.

Much like actual utilities and physical plant we see in our day-to-day lives like power, water, and sewer infrastructure, their individual parts and processes are largely opaque without supporting documentation. Looking at an individual power line or water pipe gives you some information about its use and purpose ("this pipe moves water in this direction"), but not enough to know how it fits into the larger whole or purpose of the system.

Enterprise Architecture is the mechanism we use to document and describe the individual systems as part of a larger organism. It provides frameworks and processes by which to evaluate interoperable systems against success criteria in order to make sure that the system conforms to and supports the mission of the organization.

To achieve a useful relationship between the enterprise architecture and enterprise system, the architecture artifacts should always represent the current state of the enterprise system accurately, and the goals of the architecture for future state of the system should always be influenced by and align with the mission of the organization.

Explanation of Enterprise Architecture

An Enterprise Architecture is a framework that creates documentation to allow decision makers to understand the current state of the architecture across the enterprise, understand how it intersects with the strategy of the organization, the define necessary improvements to help achieve the mission. A properly implemented enterprise architecture will illustrate the "big picture" of the information resources used and managed by the organization and assist in defining and planning a new project or system in terms of how can or will interact with that existing structure.

Without the structure and documentation provided by an enterprise architecture system it would be impossible to make systemic, strategic changes on an enterprise system of any appreciable size due to its internal dependencies. The architecture allows domain knowledge and processes to be distilled upwards to decision makers who can apply directional adjustments without necessarily needing to understand the detais of individual components.

EA Support to SDLC Phases

Enterprise architecture frameworks are typically divided into models to help stakeholders understand how individual components related to each other across the structure of the entire enterprise. For example TOGAF defines business, information, application, technology as core models and many others include security in addition (Hornford, 2022). Likewise the various phases of the SDLC (initiation, requirements, design, development, integration) are designed to help project stakeholders understand how the structure and constraints of the enterprise will impact the implementation of an individual software component.

Initiation/ Planning/Concept phase

In the SDLC the initiation phase involves determining the scope of the project and the problems that it will solve. This phase, typically managed by senior subject matter experts and decision makers, is to understand the necessity of the project, identify possible issues, and define the scope (Martin, 2023). The enterprise architecture as a whole is created to facilitate this high-level analysis by providing clarity into how the organization operates as a whole, but the business models specifically will be valuable in this phase to assist in determining how the new system could provide value and assist in meeting existing and future goals.

At the conclusion of the SDLC planning phase any decisions made can be incorporated into the enterprise architecture so that planned efforts are not duplicated unnecessarily during subsequent phases but prior to deployment.

System and Requirements analysis phase

The requirements analysis phase investigates the non-functional requirements of the system such as security policies, privacy policies, regulatory requirements and other standards (Merkow & Raghavan, 2010). In many enterprise architectures the security models will have already incorporated enterprise-wide requirements for retention, access, encryption, and network management. Having access to this organization-wide information at the start analysis of the phase means that a larger portion (or possibly all) can be evaluated against the project goals at the beginning of the phase and will not need to be incorporated in later iterations after significant decisions have already been made. This prevents wasted time and effort.

At the conclusion of the SDLC requirements phase any deviations from security policies deemed necessary to accomplish the task can be incorporated back into the EA's security model as part of an ongoing risk analysis review.

Design phase

The system design phase determines how the system will be structured internally by choosing key technology including software languages, frameworks, and databases in the high level design and investigating dependency issues on services external to the system in the low level design (Martin, 2021). An enterprise architecture's information and technology models can assist in the creation of a system design document by identifying services, technologies and architectures which are already endemic to the enterprise. An examples of this might be choosing a technology or language from two otherwise equal choices because it would allow the developers and operations teams to leverage an existing database server or hosting environments for development, testing, and deployment.

At the conclusion of the SDLC design phase the information and technology models for the enterprise can be updated to note the inclusion of any shared systems into this new project, for capacity planning and other scaling needs.

Development phase

In the development phase the developers will be constantly relying on the enterprise architecture for interoperability and other systems that they can use or leverage. While many of the information and technology models would have also been reviewed during the design phase, developer access to the information models, technology models, and security models of the EA is as important as any project-specific direction in the system requirements documents and system design documents created in prior phases. While the design phase may have been focused on whether information was available in a particular form from a particular system, artifacts contained within the application models including interfaces and data flows are critical to creating a low-defect software solution.

At the conclusion of the development phase, the final versions of system design documents, system requirement documents, and implementation documents can become part of the application, information and technology models to represent how the new application fits within the system.

Integration and testing phase

Planning for the integration and testing phase its critical to know what other systems need to be integrated with and what impacts the testing could have on the other parts of the architecture. While project-focused SDLC guidelines define testing as a tool to "ensure that the entire application works according to the customer requirements" (Thampy, 2022) this view is myopic in an enterprise environment where everything is interconnected. Testers are provided with the system requirements and an understanding of how the system should work in the context of its particular business domain, but the source of defects and bugs are not necessarily isolated to a single system. Testers should also be equipped with the models for information, applications, and technology running adjacent to the new system that could impact its operation.

At the conclusion of this phase, expectations of the operation of the system and any complexities or risks that are surfaced through application testing can be added to the EA application model to help other teams better understand the new system.

Implementation/ Deployment

The first moment that the new system is deployed into the enterprise environment may be one of the first time that other teams become aware of it. In previous stages of the SDLC the project stakeholders and participants relied heavily on the models available on the EA, but at this stage it will be other parts of the organization who will be referencing the existing artifacts and models of the EA to understand the impact of the system post-launch. The EA should be used to accommodate this part of the process by encouraging constant communication and providing a single point of reference for information about the system and its effect on the organization.

Operations/ Support/ Maintenance phase

Operations and support is the long tail of any software development project and the most substantially affected by integration with enterprise architecture. As the mission of the organization evolves the EA can necessarily inform this stage of the SDLC allowing managers to be aware of the new system, allocate resources to ongoing needs or scaling requirements, and evaluate the project holistically against the larger organization. Using the EA allows informed decisions as to whether the application would best served applying resources to bug fixing, a system-wide upgrade, or strategic enhancements (Martin, 2023). Conversely, if the application is poorly represented in the EA or not represented at all, it may not get the resources or attention that it deserves to continue providing a benefit to the organization at large.

References

Hornford, N. (2022). 6 Main elements of enterprise architecture. Conexiam. https://conexiam.com/6-main-elements-of-enterprise-architecture/

Martin, M. (2023). Software Development Life Cycle (SDLC) Phases & models. Guru99. https://www.guru99.com/software-development-life-cycle-tutorial.html

Merkow, Mark S. & Raghavan, Lakshmikanth. (2010). Secure and resilient software development. Books24x7 version. Available from http://library.books24x7.com.ezproxy.umgc.edu/toc.aspx?bookid=36986.

Thampy, R. (2022, September 5). 7 stages of SDLC | 7 phases of SDLC Software Development Life Cycle | Betsol. BETSOL. https://www.betsol.com/blog/7-stages-of-sdlc-how-to-keep-development-teams-running/

Signed document

This page has a detached OpenPGP signature. Download both files to verify that the Markdown source has not been changed by anyone but the author.

Verify with:gpg --verify ea.md.asc ea.md