System Architecture and Design Trade-off Document
It is a great idea to write a System Architecture & Design (SAD) Trade-off Document.
The format is tabular and will look like the following:
The rationale for writing this is as follows. The document serves as a means for:
The format is tabular and will look like the following:
- Module/ category
- Issue description
- Possible alternatives
- Decision
- Decision rationale
- Traded-off attributes
- Traded-in attributes
- Consequence/ constraints introduced
| Category | Attribute |
| System Performance | Reliability - ability of the system to maintain operating over time (MTTF) |
| Performance - responsiveness of the system to stimuli or events as well as throughput of the system | |
| System Control | Maintainability - ease with which a system can be modified to correct faults, improve performance, or adapt to changing environment |
| Data timeliness - data latency for information flowing into and out of the system | |
| Security - measure of system's ability to resist unauthorised access or DOS | |
| Supportability - ease with which a system can be maintained operationally | |
| Testability - ease of system testing | |
| Usability - measure of a user's ability to utilise a system effectively | |
| Decoupling - measure of how systems are independent of one another | |
| Data integrity - integrity of the overall structure | |
| Functionality/ feature - ability of the system to do the work for which it was intended | |
| Familiarity - based on existing skill-set of the developers | |
| Cost reduction - reduction in general project cost to meet timeline or due to cost constraint | |
| Effort reduction - reduction in general project cost to meet timeline or due to cost constraint | |
| System Evolution | Extensibility - ability of the system to extend for enhancements |
| Reusability - degree to which an artefact can be used in other systems | |
| Flexibility - ease with which the system can be modified for use in environment not originally intended for | |
| Interoperability - ability of the system to exchange information with other systems |
- communication to the rest of the team regarding important principles and decisions
- putting the team on the "same page" regarding the rationale behind decisions impacting system architecture and design
- communicating with senior management & stakeholders who may be interested in the decisions
- future hand-over to another team or posterity
- forcing explicit reasoning to validate decisions
- re-evaluating a decision when conditions change in the future
Comments