---
id:
aliases: []
tags:
  - topic/organization
---
# Separation of Concerns

Separation of concerns is a design philosophy
of eliminating unnecessary process coupling,
or in other words preferring specialization.
It is traditionally understood as a principle strictly of _software_ design,
however its applications are universal.

## As Process Optimization

Suppose a small company has a single "administrative assistant"
whose main functions include:

1. writing the company newsletter, and
2. onboarding new hires.

Suppose this company doubles in size
and these tasks can no longer be fulfilled by one employee.
While it would be possible to hire another employee to share both roles,
Separation of Concerns dictates that the role should be split by function.
