Especially with large or complex software systems, we often gain an understanding of how a code base works by making changes to it and observing the effects. When embarked upon deliberately, this takes the form of the scientific method, wherein:
- We have an interesting question to ask the world of the software system, or a change we need to make to it.
- We form a hypothesis about what we need to change.
- We perform a controlled experiment by making small changes to the program.
- We observe the effects of our incremental changes.
- We refine our hypothesis and perform further experiments until we arrive at a useful program.
Posts on this blog tagged with code-observation leverage this method.
Update 2021-11-29: Hypotheses for these Code Observation articles have felt a bit forced, so subsequent ones will likely focus on simple observation—safaris at the Clojure REPL where perhaps we come a little closer to classifying what we see when evaluating programs.