What is Evolutionary Architecure ?
The traditional software development lifecycle has followed the waterfall model for a long time. We first do the analysis of the system and we go into planning and requirement gathering phase. The third step is the design of the system. In this section the plans are laid out concerning the physical construction, the hardware, the operating systems, programming, communications and security. These are typically the phases where the architecture of the software is decided. What do you mean by Software architecture ?
Software Architecture
The software architecture represents the design decisions related to overall system structure and behaviour1 . Software architecture supports analysis of system qualities when teams are making decisions about the system rather than after implementation, integration, or deployment. Whether designing a new system, evolving a successful system, or modernizing a legacy system, this timely analysis enables teams to determine whether the approaches they’ve chosen will yield an acceptable solution. An effective architecture serves as the conceptual glue that holds every phase of the project together for all of its stakeholders, enabling agility, time and cost savings, and early identification of design risks.
Challenges with waterfall model
One of the major disadvantages of the waterfall model is that it is not adaptive to changing or evolving business needs. When a design flaw is found or when a requirement is changed, we have to restart the entire process. For a long time it was taught that architecture something that has to be completed in full before even the first line of code could be written. The waterfall model was based on the notion that the requirements were fixed and any change. However, regular changes in requirements is a business necessity in the modern world. Businesses are in a constant state of rapid change, undergoing mergers, acquisitions, new business lines, cost-cutting measures, organizational structures, and so on. Technology is also changing rapidly , with new frameworks, technical environments, platforms, and products. To properly align with the business and technology environment, software architecture must change as well, and at the same rapid pace. This was leading to Many software development projects failing or taking much too long to complete, and industry leaders realized they needed to find a new, innovative approach. This innovative approach was the Agile methodology
Evolutionary Architecture
Agile methodology addressed some of the issues, but agile was primarily for the software development process and it did not address the software design aspects. A pre-planned architecture cloud not fit in with the new dynamism that Agile had bought into the software development process. Keeping up with the new dynamism, Architecture has now taken a new form, where it is now an on-going effort working closely with the programmers and reacting to the changing business requirements and feedback from the developers. This has now become an industry standard. Architecture is not a final document any more, but a evolving document responding to the changing business requirements and feedback from the development teams. This is called as Evolutionary architecture. There is no end point, but now architecture is a continuous process.
-
https://www.sei.cmu.edu/ ↩
Leave a comment