What is software architecture? This seemingly simple question has baffled researchers and practitioners for decades. Industry legends such as Mary Shaw, Martin Fowler, Grady Booch and Ralph Johnson have weighed in on just what architecture is; but as an industry, we have yet to come up with a compelling description or concrete requirements from the role.
In this talk we'll consider software architecture in a new light, centered around one key observation: good architecture isn't about dealing with current requirements, but rather about avoiding future constraints. With that understood, we can have useful discussions about what is or isn't good architecture; hopefully, you will leave this session with ideas on how to build/evolve your software towards an unknown future comfortably.