When having 4 different designs that can be delivered for a project and there is a strong difference of opinions on which design is preferred taking into account functional/non-functional requirements/effort etc is there some standard template/framework that can be used rigorously for comparison of the approaches?
I could come up with my own spreadsheet, I was interested if there is some existing framework that can be used in such cases?
5
The class of tool that you’re looking for is called an architectural evaluation framework. There are several frameworks out there.
ISO/IEC/IEEE 42030- Software, systems and enterprise – Architectural evaluation frameworks provides a standard for conducting and recording evaluations of architectures at many levels, from enterprises to systems to software components. Some organizations see benefits from mapping their processes to standards, but doing that explicit mapping may be unnecessary for many organizations.
These architectural evaluation frameworks often require the definition of the quality attributes the architecture is being evaluated against. From a standards perspective, the ISO/IEC 25000 series, with ISO/IEC 25010 Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Product quality model being the most relevant. Wikipedia also has a list of system quality attributes that may be helpful.
One example of an architectural evaluation framework that has a lot of published details would be the Software Engineering Institute’s Architectural Tradeoff Analysis Method (ATAM – Wikipedia, SEI) and Cost-Benefit Analysis Method. However, like much of the SEI’s work, this is geared toward large and complex projects, such as those found in government and defense contracts. Even so, with the amount of information available, they can offer a strong starting point.
Jeromy Carriere has written about Lightweight Architecture Alternative Assessment Method, which has been used at companies like VistaPrint and Fidelity. Although it’s based on ATAM, it’s designed for use outside the large, plan-driven government projects for which ATAM was created.
Regardless of the method, one of the key aspects will be deciding which quality attributes are most important and how different architectural or design decisions affect those. The person or team performing the evaluation will have to be explicit about how various attributes are being considered in order to evaluate, and which attributes you choose are a function of the system under design. No good framework will tell you which attributes are most important for your context.