intermediate

Other design principles

Balance duplication, simplicity, concerns, collaboration distance, cohesion, and coupling with the actual pressure in the codebase.