One cannot be all things to all people and the same is true of software architecture. There are inherent trade-offs that must be made of any architecture. Some architectural trade-offs are obvious such as performance verses security or availability verses consistency, while others are quite subtle such as resiliency verses affordability. This session will cover a number of architectural trade-offs and strategies for dealing with them.
The role of a technical lead or software architect is to design software that realizes the vision of the stakeholders. However, as the design evolves, conflicting requirements emerge that impact the candidate architecture. Resolving these conflicts often involves architectural trade-offs such as granularity vs maintainability. In addition, with time-to-market pressures and having to do more with less, adopting a bloated architectural framework like TOGAF or using a time-consuming process like ATAM is not an option. Thus, it is essential to have a deep understanding of these architectural trade-offs and to use lightweight resolution techniques.
Jeremy Deane has over 22 years of software engineering experience in leadership positions. His expertise includes Enterprise Application Integration, Web Application Architecture, and Software Process Improvement. In addition, he is an accomplished conference speaker and technical author.More About Jeremy »