Every class in a computer program should have responsibility over a single part of that program's functionality, which it should encapsulate. All of that module, class or function's services should be narrowly aligned with that responsibility.
"A class should have only one reason to change".
I have seen this principle being applied to multiple concepts like modules, APIs, Systems, etc. But I haven't seen it applied to an Organization yet. Maybe because it doesn't make any sense at all, but I will try to resonate about it.
Bear with me, we might not get into any point but worth to try it out 😁
classorganization in a computer programsociety should have responsibility over a single part of that program;s functionalitysociety's needs, which it should encapsulate. All of that module, class or function's servicesorganization, product or entity should be narrowly aligned with that responsibility.
"An organization should have only one reason to change".
Does it have any sense at all? It depends.
Single-responsibility seems to only make sense at Why level (company's purpose), not at What level (what the company offers, like products and services).
to have a single and well defined organization's purpose, which it should drive why the organization exists in the first place.
The only reason to an organization to change is that the purpose isn't useful anymore.
It might be that:
- The purpose is already accomplished
- There is no need to exist because there is not a demand
- People don't believe in the purpose anymore
What do you think? Are you in a SOLID Organization? Does this make any sense? 🤣