Agile Enterprise Architecture Framework: Enabler for Enterprise Agility
The Agile Enterprise Architecture Framework helps formulate a model in which the Agile Enterprise architect can be involved in the end-to-end activities.
Join the DZone community and get the full member experience.
Join For FreeIntroduction
Enterprises are gearing up to address the ever-changing demands of the business in an agile manner to reap the benefits through reduced time to market. They demand high business agility to achieve organizational goals. With the complexity of the business, models and interactions between businesses are hitting a record high; the IT systems are accommodating these complexities in many ways. Many enterprises prefer to develop product-type configurable systems rather than custom-tailored rigid systems. The architects who provide the technology leadership had to go over and above their scope to address business demands.
Today, the perception towards Architects across the industry is changing. Enterprise Architects expected to code, to win the respect across the organization. The Enterprise Architect also expected to get involved not only in the strategy stage but also in end-to-end implementation. The Enterprise Architect needs to work very closely with the business in defining the business strategy of an enterprise. In addition, Enterprise Architect oversees how to realize the business strategy in the form of implementation.
Considering the changing landscape, the Enterprise architect has to evolve himself to perform the strategic role of working closely with the business to define the business strategy, architecture governance, etc. at an enterprise level while wearing the agile architect had to oversee how the business strategies being implemented. Thus, the Enterprise architects are adapting to the holistic agile model, easing themselves into the Agile Enterprise Architect role.
In this context, it becomes important to have a holistic framework in which the Enterprise architect would operate to deliver the business needs, providing business agility and giving organizations, the much-needed shorter time to market to win over the competitions. This article intends on one such framework, Agile Enterprise Architecture Framework that helps formulate a model in which the Agile Enterprise architect can be involved in the end-to-end activities.
Agile Enterprise Architecture
Agile is a methodology used for software development and project management. In Agile methodology, Individual projects are broken down into smaller, more easily managed segments in order to speed up the design process and produce a quality product as quickly as possible.
Agile Enterprise Architecture is collaborative, lean, and adoptable. In the collaboration process, the participants work together in a meaningful way to generate a workable product to satisfy the customer early. It leverages the concept of iteration from the EA standard to create, deliver and implement useful architecture. It supports innovation and adoption of digital technologies by agile enterprises. It can handle changes quickly, efficiently, and effectively.
Agile Enterprise Architecture Framework
Agile Enterprise Architecture is a set of values, practices, and collaborations that support evolutionary design and architecture of a system. Agile Enterprise Architecture helps in transforming the enterprise to digital by building new architecture that support Cloud, DevOps, Microservices, Data Analytics, Test Automation and APIs. DevOps mindset allows the architecture of a system to evolve continuously over time through iterations.
The Agile EA Framework (AEAF) helps in breaking barriers between IT and business, ideally with increasing levels of co-location by unit and with fast forming teams that coalesce for new projects. The initial goal of the architect is to bring out a Minimum Viable Product (MVP), improve upon it, and evolve with each iteration. It would also consider the real time customer feedback while adding more features through the iterations. The overall idea is to adopt just enough architecture that would be sufficiently good to deliver the MVP and thus avoiding any big upfront designs.
The AEAF helps in defining an architecture using an iterative life cycle, allowing the architectural design to evolve gradually as the problem and the constraints better understood.
The architecture and the gradual building of the system must go hand in hand and the subsequent iterations address the architecture issues and address architecture decisions to arrive a flexible architecture. The following diagram depicts the AEAF framework and constituent steps associated with it.
The AEAF covers the details of each activity, purpose, and relationship between them in the following sections.
a. Enterprise Architecture
Enterprise architecture serves as the guiding light for all the architectural practices and decisions across the enterprise. The reference architectures, architectural design patterns, architecture principles and other best practices contribute to the solution intent, which is the single source of truth for all the requirements of the given system. Intentional design enhance solutions and facilitate cross-team development. We have to build the simplest architecture that can work rather than building out complexity.
b. Architecture Runway
The architecture runway is where the epics and its associated user stories defined. It consists of existing infrastructure, code that are necessary to support the implementation of upcoming features. Architecture runway helps in establishing the collaboration model, conventions and rules, puts system wide components like API Gateways, Enterprise Service Bus, Shared platforms etc. It also helps in identifying shared services - that are already available in the enterprise to promote reuse.
c. Architecture Strategy
The architecture strategy is a step where we define the architecture vision, business objectives, expected business outcomes, backlogs along with the Non Functional Requirements (NFRs).
This step covers the architecture vision and upfront planning. It addresses the business problem and concerns of the stakeholders. Architecture Vision provides the documentation to get permission to proceed developing target architecture. It covers the scope of the problem, stakeholder concerns. It also addresses Stakeholder priority and preferences.
Definition of intentional architecture done during the step that covers the definition of planned architecture strategies, decision making on common architecture patterns and implementation technologies.
Also at strategy level, some of the work items like NFR’s, business outcomes will be update through iterations if necessary.
d. Sprint Planning
Sprint planning step covers release planning, release objectives, themes, and feature definitions. Creation of basic plan done, that helps in achieving the outcomes identified. This helps in how the features grouped together and priorities are defined.
e. Foundational Architecture
Foundational architecture is where the basic architecture required for the minimum viable product defined utilizing the enterprise architecture artefacts in line with the intentional architecture. Minimum Viable architecture covers the just enough functionality to deliver a usable product to stakeholders. This allows the architect to collect feedback for more features and potential improvements.
Definition of Agile EA taxonomy done during the step that covers the artifacts like agile architecture principles, agile values and techniques adopted across enterprise. It also covers the best practices, guidelines and checklists to adhere the Agile Architecture domain artifacts.
During this step, the definition of minimum viable domain architectures covering business, application, data and technology are covered. A set of domain architectures approved by the stakeholders for the problem being addressed, with a set of gaps, and work to clear the gaps understood by the stakeholders.
In addition, the solution building blocks are identified; architectural dependencies are discovered and documented. The foundational architecture would evolve continuously to arrive at the complete architecture that caters to all the epics and stories.
f. Iterations
Iterations are smaller steps where the epics turned into user stories and tasks leading to sprint. Each sprint delivering useful parts of a working product. These sprints executed adhering to agile principles, with daily stand ups, design & build activities, testing, retrospectives etc. Daily stand-up and a self-organizing teams work together to develop architecture.
Delivering architecture in short cycles provide timely results and long term guidance. This enables fast feedback loops with solution development teams, business and customers. The iterative delivery enhances business value and improves value to market cycle.
Fail fast is the approach that architects need to adopt, which helps in verifying different possibilities and different opportunities as early as possible both at the enterprise level and at project level.
g. Incremental Architecture
The incremental architecture is where the architecture evolves and a working product is arrived. To evolve, it goes through a series of steps including research, redesign, refactor and refinement.
Working Product articulates outcome expected without going into the details of how something has to be developed and execute. It limits the work to be perform to relatively short time interval, to minimize the amount of work in progress.
It identifies its predecessor and successor packages. The work product is traceable to an objective, so that when its delivery delayed or delivery fails, the enterprise faces the consequence of altering the target architecture.
All the architectural decisions documented and risks highlighted in detail along with mitigations.
h. Agile Architecture Governance & Assurance
Agile architecture governance is all about creating value across the enterprise, not just within an individual project. Agile architecture governance is to create a bridge between an enterprise management and the teams that are completing projects.
An established Agile EA Governance Model supports,
- Agile teams to make architecture decisions in a self-dependent manner
- leverage the capability of interdisciplinary agile teams to deal with complex topics
- reduce the administrative overhead of Enterprise Architecture
- improve the reach of Enterprise Architecture
As an Enterprise Architect of an Agile Architecture implementation, the focus should be on,
- Intentional Architecture. Architecture is a Collaboration
- Build the simplest Architecture that can possibly work (established design principles)
- Code it or model it (spikes, prototype, domain, and use case models)
- Build it , Test it (design for testability)
- Implement Architectural Flow (architectural epics and the portfolio kanban)
Agile Architecture Assurance (AAA) is a critical step for the overall success of the program where the intentional, foundational and incremental architectures, architectural decisions, solution building blocks and NFRs critically examined to ensure the right architecture is in place to meet the business objectives.
The AAA is a continuous process. It helps in discussing open architecture questions/topics identified and get specific answers, guidance and agreement on the next steps.
Sprint Architecture Pit Stops help in discussing the architecture with the external teams like infra, security, data and other walks of architecture to identify and address any issues. Sprint Architecture Orientation sessions employed to discuss the latest architecture thinking on where the solution is evolving in line with crosscutting functional themes.
Architectural Assurance Gate is a mechanism in which the architecture along with all the decisions, risks, architecture assumptions, NFR is presented to enterprise/program authority and formally sign off.
Summary
Agile Enterprise Architecture Framework helps the enterprises in addressing the business agility and market competition. The AEAF allows the architecture of the system to evolve continuously over time through iterations. It adopts just enough architecture philosophy and avoid big upfront designs. The various steps in the framework addresses the fulfilment of business value stream coverage, acceptance of technical debt, architecture decisions etc. The incremental approach of the framework ensure that the design is extensible and aligned with the vision while detailing out and catering to enterprise need.
In agile, architect needs to stay invested with the team throughout. Needs to be visionary and at same time manage change and complexity. Start involving in the project right from the definition of business outcome and value streams. Jointly review the value streams with the business team to understand the expectations and make sure that what is committed is what expected. Continuously check with team to make sure they are not deviating from the stated design. Many a times, as an architect had to protect the team from unwanted bureaucracy.
Disclaimer
The views expressed in this article/presentation are that of authors and Wipro does not subscribe to the substance, veracity, or truthfulness of the said opinion.
Opinions expressed by DZone contributors are their own.
Comments