The Great Pyramid of Giza (also known as the Pyramid of Khufu) in Egypt is a long-standing ancient architectural wonder and a civil engineering masterpiece. It was the highest construction in the world for many centuries. This pyramid took approximately twenty years to build. Experts estimate that the construction of this pyramid required tonnes of limestone, mortar, and granite.
In civil engineering, architects combine art and science disciplines to design building structures. A good design can make a building survive for years. Similar to architects of the great pyramid of Giza, software architects blend art and science to build software solutions. Instead of limestone, mortar, and granite, software architects at Infineon use code.
As software becomes increasingly important to us at Infineon, let us try to understand the evolution of software development methodologies and their impact on software architecture.
Software architecture is the basic structure of a system. Experts started comparing software design and civil architecture in the 1960s. By the 1990s, the term software architecture started gaining popularity. With software architecture, the focus is more on the structure than the implementation details. Software architecture focuses on addressing major structural choices.
It is also about making core decisions that will allow building a high-quality software system.
A successful software system requires a well-thought software structure.
Software development
The early approach to software development draws similarity from civil engineering because it focused on phased development. It is known as the waterfall model. Traditionally, the software architecture phase follows the requirement gathering and analysis phase. In the waterfall model, the software development phase follows the software architecture phase with no scope to modify the software architecture. Realistically when we develop in-house software, we face challenges that are very different from civil engineering because of the frequently changing business and ecosystem.
Agile practices have emerged in the software industry to address the needs of the dynamic business landscape. Agile promotes adaptive planning, evolutionary development, and early delivery. Agile encourages the close collaboration between self-organizing and cross-functional teams, their customers, and end-users thereby, creating an opportunity for architecture to mature with time.
Evolutionary architecture
Frequent changes in requirements and constant feedback from stakeholders and customers, and a rapidly changing technology ecosystem which is the key to the success of Infineon, challenge the traditional upfront architecture approach and create a need for a more flexible architecture.
The evolutionary architecture approach supports guided, incremental change across multiple dimensions by embracing changes in an agile manner without losing the core architectural DNA of the system. This architecture approach focuses on making small changes and putting frequent feedback loops that validate the software system. An agile approach to software development offers benefits to software architecture by reducing upfront architectural complexity and increasing Infineon’s business agility, quality, and scalability.
Technical excellence
The evolutionary architecture approach works across the following dimensions of our software development projects to achieve technical excellence at Infineon–
- Technical strategy – Today’s business requirements change rapidly. It makes it nearly impossible to have a fixed ‘technical strategy’ for the lifespan of a software project. Agile methodology of software development enables incremental and iterative growth of ‘technical strategy’ and plans.
- Technology validation – Since a working software is the primary measure of success in Agile, the technical decisions of the software project get validated early and often.
- Technology collaboration – Agile facilitates seamless technical collaboration within Agile It leads to better knowledge management.
- Technical governance – Agile methodology promotes smooth ‘technical governance’ to yield business value and mitigate risk.
- Innovation – With Agile, there is a higher possibility for learning-by-doing and technical experimentation. Innovation is highly decentralized with Agile. Cross-functional teams within Infineon can innovate at any time during the journey of agile software development.
Cut the clutter
Agile is unlike the phased development approach in civil engineering and the waterfall model in software engineering. When working with Agile, the strategy for software architecture should be different. Agile and software architecture form a harmonious alliance to address the needs of Infineon’s business ecosystem. Agile is a methodology and also a mindset. While adopting ‘Agile methodology’ is gradually becoming necessary, embracing the ‘Agile mindset’ is of higher significance. It will help enterprises achieve technical excellence in software development. Hopefully, this will eventually lead to the software equivalent of The Great Pyramid of Giza.
Authored Article by: