Decisions and risk management
As business evolves, so does our software, depending on the context and domain. What we need is to think in terms of building tolerance to change within the system. Observe where and what kind of changes appear through iterations. You can expect these changes and be prepared to meet them. Why so much analyzing?
Every time we make a final decision, we also say no to further details we might receive over time, which could help us make more informed decisions.
Making decisions concerning architectural aspects is very sensitive because these decisions have a huge impact. One of the best practices in software development is to avoid making decisions until the very last moment because there is a high level of uncertainty, especially in architecture. This makes the future hard to predict. When things are hard to predict, we tend to speculate. We are aware of this and trying to push the moment of deciding the limit forward is essential to building a system...