One of the most crucial reasons for an top architects in Palm Springs assessment is to re-ensure that the objective or the goals of the architecture matches with the customer’s vision and business strategy. Many a time’s architectures that are created are based upon latest trends and best practices available in the market and don’t focus primarily on the non-functional requirements of the application. While it is definitely a good practice to make use of the latest trends and practices it is extremely important we ensure we don’t astray from the main objectives defined for the architecture.
Architecture is generally derived from the non-functional requirements and is designed to work in cohesion with functional requirements in order to achieve the overall business objective. The main goal of an architecture assessment is to ensure that we are on the right track to achieving the original objective of the architecture. For example: Every architecture has its own trade-off models, but every architecture should target a clear set of (non-functional)parameters that it should prioritize. It is important to prioritize between the architecture parameters viz: Performance, scalability, maintainability, reliability, extensibility. All parameters cannot have the same precedence else the architecture will be more of an overhead rather than a solution. This is the common cause of failures in most architecture’s. The architect loses sight of the end product and long term goals and comes up with something very fancy by implementing the latest principles which may be good but may not be applicable for that specific business instance and hence ends up overburdening the architecture.
During an architecture assessment phase the architect assess the prescribed architecture along with the NFR requirements and determines if the architecture has the right balance that will help sustain the business requirements, growth and vision of the customer.
Realizing the current state
This is one of the most important reasons for having an architecture assessment. It is very important to realize the current state of the architecture vis-a-vie the proposed state. Architecture assessments happen at different times of a project lifecycle. Ideally it should happen just before the start of design or before the start of development. However that may not be the case with most software projects due to timeline crunches and project pressures. Hence in most cases architecture assessments are done reactively to take care of a particular set of problems that has risen (during development/UAT/production) rather than preventing its occurrence in the first place itself. Examples are: Performance problems, maintainability problems, lack of scalability etc.
In real world projects we have architecture assessments done to address project complexities that are well into the development or during UAT phase. Sometimes it’s even done during the production phase on request of the customer due to a dis-satisfactory performance of the application. Hence it is imperative to take stock of the current architecture implementation, to understand the gap if any between the current architecture and the proposed architecture and to realize the current state and reason for the same.
80% of times the development architecture has more than 50% of deviation when compared with the proposed architecture. This is mostly due to the lack of well defined requirements, gap in understanding or lack in long term vision whilst finalizing the architecture during the proposal stage. Hence it is important to understand this deviation and the reason for the same, its root cause that warranted it and assess if we are on the right track or not. Many a times the deviations are warranted and at times it’s just due to timeline crunches and due to implementations of “work-arounds”. Whatever maybe the case it is imperative to assess the impact of the change with respect to the overall vision desired by the customer. This part of the assessment serves as the bases to derive the associated risks and plan of action for the same to ensure the architecture is put back on the right track.