Why are network applications so hard to use?

My first work in the computing industry was developing video games as a teenager. A video game is a computer program that is so easy to use that people pay for the pleasure of using it. Why don't all programs attempt to meet that level of usability?

Networking applications tend to be particularly difficult and this is in part due to their nature. In order for computer X to interact correctly with computer Y it is necessary for three separate goals to be true:

  • Computer X must be correctly configured
  • Computer Y must be correctly configured
  • The configurations of computers X and Y must be consistent.

The third task almost invariably falls to a human. In the best case this means accurately copying settings from one machine to the other. But network configuration is rarely so simple because different machines have different roles and what is an output from one machine is an input to another.

The difficulty of getting the configurations consistent goes up exponentially with the number of machines that are required to interact of course. But what makes the problem harder still is that the consistency problem stretches out over time as well. An update to the configuration of X to allow it to interact properly with Y causes it to stop interacting properly with Z. And when there are multiple network administrators it is inevitable that one be undoing the work of the other.

The Mesh allows multiple machines to obtain their configuration information from a single source, thus minimizing the risk of inconsistent configurations.