1- Everything in software architecture is a trade-off
"If an architect thinks they have discovered something that isn’t a trade-off, more likely they just haven’t identified the trade-off yet."
"To understand important trade-offs in architecture, developers must understand some basic concepts and terminology concerning components, modularity, coupling, and connascence."
2- Why is more important than how.