28 lines
796 B
Markdown
28 lines
796 B
Markdown
---
|
|
id:
|
|
aliases: []
|
|
tags:
|
|
- topic/organization
|
|
title: Separation of Concerns
|
|
---
|
|
# 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.
|