In an architectural review we would typically study the business domain and infrastructure thoroughly in order to envision the "ideal solution" for the business. This will never be fully realized, but the comparison of today's reality to a complete description of the optimal environment is critical. This analysis will allow you to craft a strategy that delivers the majority of the ideal system value with the least amount of infrastructure change and organizational adjustment. In addition, a value-oriented approach will focus on an iterative or incremental implementation plan, the life force behind Agile methodologies, to deliver business value quickly with a progressive evolution toward the ideal. Finally, the ideal vision must be revisited periodically to assess accuracy and adjust for changes in the business direction or landscape.
This article will serve as the first in a series of posts outlining my approach for an architectural review and share the outcomes of my newest customer engagement. The series will be comprised of the following minimal phases:
- Today's Business Domain - The "As Is" Picture
- Architectural Requirements - The Strategic Business View
- The Ideal Solution - In a Perfect World...
- The Gap Analysis - Find the Missing Business 'Enablers'
- Value-Oriented Roadmap - Progressive Evolution
- Agile Methodology - Optimizing the Development Process
- Revisiting Your Ideals and Requirements
Those of you familiar with Agile software development will likely recognize this lifecycle as a close parallel to iterative approaches like SCRUM. Indeed, the similarity is quite intentional. The delivery of various solutions within an enterprise in this fashion reduces risk and allows the business to focus efforts on the most significant value. The Architecture Lifecycle should allow for the same feedback and flexibility within the technology strategy so that the collection of systems as a whole fully and optimally addresses the business strategy; and business strategies evolve quickly in today's world.
My hope is to share some of the successes as well as frustrations I'll encounter on this newest project so that others will be able to evaluate their own Architectural Lifecycle and perhaps elicit suggestions from readers where I find myself challenged. Feedback is always welcome. Before you add a comment however, ask yourself this: "How does the development approach within my organization correlate to the systems (or enterprise) architecture? How do these two disciplines fit together in my world?" I'd be very curious to hear your answers...