I see this as a fundamental concept of programming abstracted to the application level. When you code a function you strive for modularity, for your function to be re-usable as a building block. But if you're not careful you can make your function take too many inputs and do too many calculations. The same truths apply in code as in life. Keep things small, manageable, and re-usable, and Good things will come to you.