End To End Principle

The End-to-End Principle
Simply stated, that functionality of limited reusability should be implemented by the end-points that need it, not by the network which connects them.

I've heard David Reed summarize this by saying something like, "don't close off choices any sooner than necessary."

The original paper is "End-To-End Arguments in System Design", Saltzer / Reed / Clark, hosted by David P. Reed or Jerome H. Saltzer.

Later rediscovered by David Isenberg in "Rise of the Stupid Network".

Related:

"Premature optimisation is the root of all evil in programming." C. A. R. Hoare