At the end of the day, no matter how bright you are, your effectiveness and impact is augmented by the bag of tools that you carry around. The bag of tools in our industry typically comes from experience and pattern/model matching from this experience or from processes and mechanisms that one learns from others or reads about. One tool that I have found very useful is the ATAM, Architecture Tradeoff Analysis Method from the SEI. The first time I was introduced to it was when I was an architect for a J2EE consultancy firm and was on site at a customer where one of the customer architects asked me to conduct an ATAM, I asked "what's an ATAM?" and he threw a spreadsheet my way and told me to fill it out. Well, I did some digging and reading and came across what the ATAM really was and have tried to keep it ready in my bag of tricks since. When I was in the field for Microsoft it was a good way to help customer's make practical decisions about solutions that they were contemplating and even drove some platform wins for microsoft :)
My buddy, Jeromy, and I did some webcasts on tradeoff analysis a few years ago but I figured it would be worthwhile to share this link and recommend that folks go look at this. Here is a quick snippet from the SEI page that provides background on their architecture tradeoff analysis initiative:
Quality attributes of a large software system reside principally in the system's software architecture. In large systems, the achievement of qualities such as performance, availability, survivability, and modifiability depends more on the overall software architecture than on code-level practices such as language choice, detailed design, algorithms, data structures, and testing. It is cost effective to try to determine, before a system is built, whether it will satisfy its desired qualities.
Although methods for analyzing architectures with respect to quality attributes exist, these analyses have typically been performed on specific qualities in isolation. However, the attributes (and hence their analyses) interact. Performance affects modifiability. Availability affects safety. Security affects performance. Everything affects cost. While experienced designers know that these tradeoffs exist, there is no codified method for characterizing them and, in particular, for characterizing their interactions. More importantly, these tradeoffs present the areas of highest risk in an architecture.
The SEI has developed architecture evaluation methods to analyze an architecture for these multiple quality attributes and their tradeoffs. The Architecture Tradeoff Analysis MethodSM (ATAMSM) is a risk mitigation method that can be done early in the software development life cycle when it is relatively inexpensive to change architectural decisions.
<a href="http://dildo-pleasure.info/">Dildo</a>">http://dildo-pleasure.info/">Dildo</a> or [url=http://dildo-pleasure.info/]Dildo[/url] or http://dildo-pleasure.info/