Interfaces and dependencies between implementation subsystems have been defined
The workload for the Implementation Team is balanced
|Potential bottlenecks have been identified and work has been redistributed, and contingency plans have been created to
allow critical work to be redistributed if the initial work allocation becomes unbalanced.
There are no instances of dependencies crossing more than one layer boundary
Unnecessary dependencies on lower-layer subsystems have been eliminated
The impact of necessary dependencies on lower layer subsystems has been reduced by letting subsystems in middle layers re-export interfaces from subsystems in lower layers
The number of layers is no more than seven (plus or minus two), or there is a well-understood reason why more layers exist
The ratio between the number of packages or subsystems and the number of implementation elements is consistent with the application size and complexity
|For example, 5 packages or subsystems and 1,000 files is a sign that something is wrong.
The amount of source code is consistent with the expectation based on the number of design classes
|For example, 100,000 lines of code for 10 design classes is a sign that the either the design or the implementation, or
both, may be flawed.
The actual implementation effort is close to what was estimated, or if not, the basis for estimation has been examined and adjusted