Step back from your system and take a look at its architecture. Are the major structures and technology choices the result of conscious decisions, or have they emerged as the system has evolved? Architecture is often an ad hoc, responsive process where designs get stuck in local minima while ever more features are piled into the system. Such systems often fail to live up to the origin vision and expectations of stakeholders.
In this talk we look at how to design systems which are a purely a function of the major forces acting on a solution, rather than being modishly reflective of the prevailing software zeitgeist. We’ll explore the idea that software architecture, and hence software architects, should focus deliberately on the constraints and qualities of system design, and avoid getting too distracted by features.