The act of system design requires making many decisions: small ones like selecting details, directing people and large ones like selecting the decomposition or describing the general design guidelines. Since the designer can also be part of the problem, there is an inherent risk in the design process. The decision making process can be skewed or biased and provide unwanted results.
This skewing can be a road to hell in little increments: selecting technologies due to past experience although the situation is different, making haste decisions, lack of documentation and any other of the many decisions taken in the project lifecycle. If the decisions have a tendency of repeating the previous project or to neglect the current project differences, the design might have lack of attention to the important parts and in that providing less than best solution under the constraints.
The process of software architecture can help identify the biases in the design and help the decision taking to be focused on the current project requirements. The reason for being focused lays in two major steps taken in the design:
- Quality attributes analysis and specification: since quality attributes are very formally specified, they can serve as very exact guidelines.
- Detailed tactics analysis: the full tactics taxonomy can be used for evaluation of the effectiveness of each possibility against the requirements.
Following both steps can provide an effective checklist, of the requirements and of the possible solutions.
In the long run using a check list for verifying that the requirements have been taken can help making better products by decreasing the chance of architectural omissions. My experience has shown that any chance of human error can and will happen, so using methodologies for aiding the decision taking technique is a must. The net result is that although the designer has limitations, the process can cope with some of the limitations and the decision not being a road to hell.
If you read this far, you should follow me on twitter here.