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?