If architecting is seen as an effort on which you can spend more or less resources with a better or worse result I wonder how you identify the trade-off where you get the “most bang for the buck”?
I think this is a fundamental question to ask if one discusses architecture and the process of architecting as a separate activity. Inspired by the idea from lean to eliminate everything that does not contribute to end-customer value, the value of an architecture can be seen as small. Architects (and researchers focusing on software architecture) assumes an architecture supports several important benefits with respect to software development. One could argue that a product line approach benefits the end-customer, but to be honest I think it is the developing (creating?) organisation that reaps the main part of any benefits.
But what are some fallacies that would detract from the most efficient architecture (most bang-for-the-buck)? A personal list would be something like this:
- Completeness of the architecture – To aim for an architecture that describes 100% of the system at some abstraction level is not efficient. I don’t think I need to detail this argument besides Pareto’s law.
- Formality – Strictness in describing the views may hinder the stakeholders’ understanding of their concerns. To much effort on defining and/or understanding modelling rules is not efficient.
- Detail – An architecture is a top level design, and I would put an emphasis here on top-level. It should not bother with details best left to other tasks (and stakeholders)
- Traceability – To require traceability to all requirements that affect the design of an architecture and traceability from all requirements resulting from architectural decisions is not efficient. On the other hand to have no traceability is not efficient either.
There should be enough to convince the stakeholders that vital concerns have been addressed. So it basically is the stakeholders that define the necessary level. Note that very rigorous stakeholder may completely big down an architect with demands on traceability…