A raging email thread on one of our internal aliases led me to an old blog entry about self-locking kangaroos.
We have the same kind of thing in architecture. I am often asked “What is the best way to…” or its logical corollary “Take a look at this architecture and make sure there is nothing wrong with it.” These kinds of questions are what I used to call “How long is a piece of string” questions. Without extra context, it is really tough to answer them. It’s like asking “Which is a better car for me… a mini-van, or a roadster?”
In architecture, we call this additional context functional and non-functional requirements. Tools like PBA can make it easier to identify thse requirements. As architects, we look at the context and try to make smart trade offs. But there is rarely a “best” answer to most of these problems.