§ Software Design § Software Architecture #insight
It seems counter-intuitive at first, but in fact the software architecture is mostly driven by quality attributes, not functional requirements.
Systems are rarely redesigned because they fail at functional requirements---they are redesigned because they fail at quality attributes (e.g., too slow, insecure, hard to modify).
The architecture provides containers into which functionality can be placed. Functionality is not so much a driver for the architecture as a consequence of it.