Recognizing architecturally significant requirements (ASRs)
When designing a software system, it's common to deal with dozens or hundreds of requirements. In order to make sense of them and come up with a good design, you need to know which of them are important and could be implemented regardless of your design decisions and which could even be dismissed. You should learn how to recognize the most important ones so you can focus on them first and deliver the most value in the shortest possible time.ASRs are those that have a significant impact on your system's architecture. They can be both functional and nonfunctional. How can you identify which ones are actually significant? If the absence of a specific requirement were to allow you to create a different architecture, you are looking at an ASR. Late discovery of such requirements will often cost you both time and money, as you'll need to redesign some part of your system, if not the whole solution. You can only hope...