Decision Making¶
Architecture = ∑Decisions
Weighted Decision Matrix¶
Weight | Alternative 1 | Alternative 2 | Alternative 3 | |
---|---|---|---|---|
Criteria 1 | W1 | E1-1 | E2-1 | E3-1 |
Criteria 2 | W2 | E1-2 | E2-2 | E3-2 |
... | ... | ... | ... | ... |
Criteria N | WN | E1-N | E2-N | E3-N |
Rating 1 | Rating 2 | Rating3 |
Rating = SUM( Evaluation * Weight)
Standard Criteria Catalogs¶
Open Source Software Library Selection:
- Adequate Functionality for Requirements
- Non-Invasive Programming Model (minimizing disruption to existing code)
- Orthogonal API (No side effects)
- Concise API
- Documented API
- Available Usage Examples
- Clean Source Code
- Long-Term Release Track Record
- Permissive Open Source License
Software Application Selection:
- Meets Functional Requirements
- Long-Term Release Track Record
- Clean Deployment Procedure
- Documented Usage
- Guaranteed Support
- Cost
Software Architecture Evaluation:
- Meets Functional Requirements
- Meets Non-Functional Requirements
- Adequate Technology Overhead
- Single Dependency Direction
- Distance to State of the Art ("modern")
- Distance to Most Simple Approach ("adequate")
- Distance to Mainstream Approach ("mainstream")
- Good Documentation
Questions for New Solution¶
- What is the implementation cost of the new solution?
- What is the short-term value brought by the new solution after it goes live?
- Can this new solution completely replace the existing solution?
- What is the cost of fully replacing the existing solution?
- What is the long-term value brought by this new solution after a full replacement?
- If it cannot fully replace the existing solution and both solutions coexist, what is the incremental maintenance cost?