Hypothesis - benchristel/benchristel.github.io GitHub Wiki

From https://en.wikipedia.org/wiki/Hypothesis:

According to Schick and Vaughn, researchers weighing up alternative hypotheses may take into consideration:

  • Testability (compare falsifiability as discussed above)
  • Parsimony (as in the application of "Occam's razor", discouraging the postulation of excessive numbers of entities)
  • Scope – the apparent application of the hypothesis to multiple cases of phenomena
  • Fruitfulness – the prospect that a hypothesis may explain further phenomena in the future
  • Conservatism – the degree of "fit" with existing recognized knowledge-systems.

If we consider a computer program to be a theory about how to solve a problem, then these virtues of hypotheses map quite well onto the software domain:

  • Testability is, well, testability
  • Parsimony: is the program concise? Does it have a lot of duplication, redundant checks, or other extraneous code?
  • Scope: is the program a general solution to the problem?
  • Fruitfulness: will the program compose with other programs as yet unimagined, to solve new problems?
  • Conservatism: does the program compose with existing programs? Is it idiomatic? Can its users understand the interface?