Accidental vs essential complexity
Two kinds of difficulty in software: essential complexity is inherent to the problem and cannot be removed, while accidental complexity is introduced by our tools, abstractions, and choices, and can. Fred Brooks's distinction focuses effort. You can't simplify a domain's intrinsic difficulty, but most of what makes software hard is accidental and within the team's power to reduce.
Fred Brooks's distinction is one of the most useful lenses in software: essential complexity is inherent to the problem (a payroll system is genuinely complicated), while accidental complexity is the mess we add with our tools, abstractions, and shortcuts. Most productivity gains come from removing the accidental kind, the essential kind can only be managed, not eliminated. Confusing the two is how teams either over-engineer simple problems or under-respect hard ones.