Step back from your system and take a look at its software architecture. Are the major structures and technology choices the result of conscious decisions, or have they emerged as the system has evolved?
Software 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. This presentation looks at how to design systems which are purely a function of the major forces acting on a solution, rather than being modishly reflective of the prevailing software zeitgeist. It explores 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.
Video producer: https://www.accu.org/