At the very core of programming, there is an obvious need for a divide and conquer strategy. And that is at the personal level of reflexion. Of course it happens to be true in other domains.
This idea is also expressed as Separation of Concerns which wikipedia nails its value in the following wishful paragraph without mentioning its evil extrema:
Otherwise said two components satisfy “separation of concerns” if their implementation details don't leak.
Drawing lines is not easy, especially when you consider the infinite entangledments of human understandings.
I think that Zen of Python by Tim Peters provides useful abstract guiding principles:
Those quotes are also helpful:
Antoine de Saint-Exupery
The following quote must be studied in the light of broad sens that can take the word before the last:
And this one provides more food for thought:
If sounds, grounds, ideas and understandings are echoing, don't overestimate their infinite reflection that might be aiming an unforeseen dubious equilibrium, find you way out, escape the invisible tie knot, think on your own.