Five Considerations for Software Architecture, Part 1
Frank Buschmann, Kevlin Henney · IEEE Software · 2010
Many software architectures suffer from unnecessary, accidental complexity: arbitrary flexibility for its own sake, unnecessary features, design choices whose complexity is out of proportion for the problems and requirements at hand, or a focus on reusability rather than usability.The XDD family of approaches- in particular, test-driven, responsibility driven, and domain-driven design and development set the architect's focus on what to design, identifying usable architecture concepts more naturally.