Single Responsibility Principle: a module should be responsible to only one user / stakeholder / actor. It should only have one reason to change.
Example Violation: say we have an Employee class which can both calculate pay and report hours, this serves two actors: accounting and HR. One person may change code that is responsible to other actors, potentially breaking logic. To solve this, we can create separate classes which work on top of the employee data: A pay calculator and an hour reporter. As the responsibilities grow, we just create additional classes which work on top of this data instead of increasing the complexity of the original class. We can also provide a Facade which gives us access to all of these at once.