Strategic Versus Tactical Design
Architectural mismatch or why it's hard to build systems out of existing parts