A Journey on the line of Architecture Assessment
Author: Gayathri Rajamanickam, Technology Architect, Infosys
"Architecture starts when you carefully put two bricks together. There it begins." - Ludwig Mies van der Rohe
According to the research firm Gartner Group, enterprises generally plan to upgrade 38% of their application portfolios, 24% of them will be replaced, 18% will be retired and 22% remain unchanged. Application portfolio upgrade or replacement can be targeted towards the need for the technology modernization, optimization of LOBs (Line of Business), improving sustainability of the system, etc.
Application architecture assessment plays a vital role in both, green field application development or re-engineering (upgrade) of existing application. Architecture of a system need to be evaluated to rationalize the decisions behind the system design, to review the solution that meets both functional and non-functional requirements and also to ensure quality of the system.
Recently I was engaged in architecture assessment for one of the leading insurance brokers in USA that specializes in developing, marketing & administering customized insurance programs and specialty market solutions. The customer is utilizing a Policy Management System (PMS) which is evolving as a global product over the time that triggered the need for architecture assessment.
In this blog, I am going to share my experience on how the architecture assessment is conducted and processes involved in the assessment.
Architecture assessment is an activity to validate the decisions taken in the existing architecture of the system. It is generally conducted in enterprises where complex software systems are connected to each other to perform their day-to-day business operations.
Plan & Gather
The Assessment starts with discovery phase where brainstorming sessions are conducted with the key stakeholders to explore and understand the existing system architecture, non-functional requirements, current business and technical challenges in the system. The existing knowledge artifacts are used to help in supporting some of decisions taken all through the chronicled changes to the system.
The knowledge captured during the brain storming sessions are also documented in the form of graphs and tabular structure to provide better clarity to the system in place.
A historic graph is plotted utilizing insights about the past releases and future releases with the essentials on technology and business parameters that drive the progressions to the system
Existing system architecture model is revamped to incorporate the critical business themes along with the appropriate mapping to the technology stack
Technology assessment mainly includes the activities like analyzing and reviewing the various layers and association to each other in the system. Estimation of each layer - in terms of number of services, number of forms/pages, number of business rules, number of tables and so forth., are computed and assessed in the perspectives of minimizing redundancy across different architecture tiers, separation of concerns, single responsibility principle, coupling and coherency across the layers. Technology stack used in each layer are reviewed and quick POCs are performed with the best alternatives available in the market. Static code analysis and detailed code reviews are performed manually as well as using tools and frameworks wherever possible to evaluate the design patterns that are used to meet the business needs of the system.
The best outcome of any technology improvement goes hand in hand with the underlying infrastructure in the complex enterprise applications. There comes a need of infrastructure assessment as well. Here the assessment is performed to appraise the system for its readiness towards cloud, load balancing, and optimization of application environment for different LOBs, inspection of underlying hardware of the systems to understand the performance factors behind the scenes. Size of existing data are measured and data growth rate is predicted based on the current data size to estimate the performance of the system for the future need of the business.
Each module that constitutes the part of the complex enterprise application is mapped to individual functional component. This activity is performed to isolate the redundant implementation of the similar business requirement across the enterprise.
Fitment-gap analysis is performed to evaluate current strategies and processes followed on the deployment model with latest process model like DevOps in order to provide the reliable and incremental process to improve the software delivery process.
Following are the typical outcomes of the assessment
This report will include summarization and detailing out section for key observations and opportunities section. Every key observation will have a mapping on the business impact such as time-to-market, cost of maintenance, etc.
Below picture depicts sample summary section of the assessment report.
Point of Arrival (PoA) architecture will define the proposed architecture model based on finalized assessment. PoA will address the existing challenges that are present in the enterprise application along with the proposal to make the system better fit for the future needs of the business. The proposal can include technology upgrade, modernization of legacy system, modularization of the existing system, re-engineering of certain critical components, etc.
Recommended RoadMap is presented to the enterprise to leverage the best possible outcome of the assessment. As part of this roadmap, recommendations are categorized on the basis of short term, medium term and long term business benefit to prioritize the opportunities for implementation.
In this blog, we have seen methodologies and procedures involved in the life cycle of an architecture assessment. An assessment is not a strategy to solve a single problem. It is an approach towards the betterment of the system. I'm sure, a well-run assessment will definitely help the client in improving their business and accelerating their growth in the competitive market.