Understanding commit heuristics
In Chapter 5, Remote Pair Programming Setup, I listed some of the heuristics I use for committing to source control. Let's first define what a heuristic is.
A heuristic is an approach to solving a problem by means of a method that might lead to a result, and that result is not necessarily optimal or ideal. Heuristics are useful where we cannot find a rational, best solution, and we rely more on observable traits of the system that, together with our past experience, generate one or more decisions. Heuristics are faster than rational, logical, provable (even mathematically probable) solutions, but don't always lead to a result. A heuristic is a shortcut to decision making; if you have taken that decision in the past in the same context, you will take the same decision now.
In knowledge work, we often take these types of shortcuts and decide based on previous experiences. The good side of heuristics is that you can take decisions really...