What are the key points that, at a high level, mainly have influence on the software architecture?
  • User needs;
  • Business needs;
  • Non functional requirements;
These are all customer-related stuff…but there are a couple more:
  • Supplier skills;
  • teams configuration;
Interesting, isn’t it?
While “supplier skills” can be quite obvious the team configuration sounds strange…
The supplier decided to built a modular, stackable, application, even if none of the customer requirements put in evidence that this is required.
The supplier teams are geographically distributed and a modular architecture (based on UI Composition patterns) would greatly compensate the costs introduced by the organization costs that geographic distribution (cultural differences, time zones, communication barriers, etc.) brings on the table.