Complexity - A philosophy of software design quotes
Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system.
One of the goals of good design is to reduce the amount of code that is affected by each design decision, so design changes don’t require very many code modifications.
The second symptom of complexity is cognitive loss, which refers to how much a developer needs to know in order to complete a task.
The third symptom of complexity is that it is not obvious which pieces of code must be modified to complete a task, or what information a developer must have to carry out the task successfully.
Unknown unknowns is the worst.
One of the most important goals of good design is for a system to be obvious. This is the opposite of high cognitive load and unknown unknowns.
Complexity is caused by two things, dependencies and obscurity.