A successful architecture forms the platform for strategic advantage. On the contrary if there is lack of architecture then the projects ends up in bad shape sometime in near future.
To make best use of legacy systems which sometimes are hard to replace, architecture helps to bridge it with new software and environment.
Architecture is the essential foundation for agility, responsiveness and effectiveness. Architecture addresses complexity, reliability, scalability and other quality attributes (non-functional requirements).
Architecture serves both technical and organizational purposes. On the organizational side, the architecture helps in:
- Communicating the high-level design to all the involved stakeholders need to understand the system at a fairly gross level. The reduction in detail makes it easier to grasp the assignment. Moreover, it satisfies the constraint that has important implications.
- Providing the system context to the developers who need to understand the system at higher lever to develop the components in effective manner.
- Architecture also help in decomposing the system in smaller, manageable work components with give constraints, assumptions and limitations
On the technical side, architecture allows us to design better systems:
- Meet system requirements and objectives, both functional and non-functional requirements. Architecture allows us to evaluate and make tradeoffs among requirements of differing priority.
- Architecture also helps in separating the responsibilities of components. This results in flexible and maintainable code. This requires careful attention to the distribution of components early in the architectural design process.
- Reduce cost of maintenance and evolution:
- By identifying the potential risks
- By anticipating possible changes.
- Architecture enables reusability of components and frameworks.
To convince the importance of the architecture to senior management, architecture should be mapped with the business goal and vision.