I was seldom able to see an opportunity until it had ceased to be one.
The goal of software architecture is to minimize the amount of knowledge you need to have in order to build a system.