Software architecture doesn't exist in a vacuum and is driven by the functional requirements, the non-functional requirements, constraints and principles. We take a look at all of them to understand the impact that they have and the trade-offs that need to be made when defining architectures.
Understand the architectural drivers
Understand the drivers to reduce the number of available design options
Ballpark estimates
A couple of days upfront can really make a big difference to the big picture
Essential kit for designing software
Cheap, simple and collaborative
Collaborative design
Everybody's different ideas need to meet
Structure and guidelines, consistency and clarity
Start by decomposing the big picture
More layers = more complexity
Nothing is ever free