Acceptance criteria for habit routines:
- Invoked: Are there specific, unambiguous internal or external triggers that will invoke the method? Establish a clear if …
then or when … then condition tied to already present habits or cues that will call the new habit . - Defined: Does each step in the method call a specific submethod already present in your brain’s behavioral library? (If not, write the submethod(s) to meet these criteria.)
- Sequential: Is each step in correct time order?
- Finite: Are there a bounded number of steps with none implying infinite loops or baseless recursion?
- Resourced (processor): Is each step small enough so that even when your brain is fatigued/willpower depleted, it will not throw an exception when evaluating the cost of executing the step?
- Resourced (peripherals): Is the environment set up (another method meeting these acceptance criteria established) to make sure that required resources (ex: exercise equipment) is easily at hand so that “hardware not found” exceptions are not raised?
- Exception-handled: Are likely failure conditions (event interrupt raises another routine higher in the processing queue, not enough time time, environment not prepared) trapped? Write clear if … then conditions for fall-back behavior.
Discussion
As soon as a step requires additional thought in deciding when or how to do it, it becomes a potential obstacle. Likewise, if a step exceeds my current emotional processing capacity (fatigue-induced willpower depletion) or level of skill, it provides an off-ramp that crashes the program. Core dump.
This is the point that James Clear makes evident in his popularizations of micro-habits, 1% better, and habit stacking. The steps to building habits have to be so clear, concrete, and easy that they can be executed without deliberation. As your brain builds subroutines to handle them, complexity can be added. But you can’t start there.
So the metaphor is habit formation as computer programming. Routines must be executable without further analysis.