What do you think are the personality traits that contribute to being a good mathematician?
Flexibility. A willingness to change course when you see that things should go a different way. The ability to backtrack, and go forward and follow different paths and then come back to where you were.Dr Amie Wilkinson
This happens in code, too. When we explore a solution, we need to try one path, then come back and try another. This makes git incredibly valuable, with local branches and reverts.
I see Rod doing this often, when he works on exploring the design space of an API. (Rod is famous for creating the Spring framework for Java.)
If we are rushed, backing up can feel like wasting time. We push forward in directions that are slower. Worse, once someone else is using the API, it takes coordination to change it. That slows all of us down forever.
Yesterday Llewellyn Falco talked about how we tend to be prudent with money, leaving ourselves slack and valuing more-money-in-the-future more than less-money-now.
The multiplier of how much more money we require in the future is called the future discount. If you don’t think you’ll be alive in a month, or that you’ll really get any money at all then, your future discount is zero.
Under pressure, under scarcity, there is a psychological effect that reduces the future discount to zero. Saving money feels utterly pointless. Current needs are too pressing.
Llewellyn pointed out that while developers are prudent with money, they believe in the future, we often aren’t with time. We would not budget every dollar we have for a trip and leave no slack for surprises. But we do with sprints, and then we get under pressure and our future discount invisibly drops to zero and we can’t even think about future us or future whole-company who is stuck with the first design we thought to because backing up is just not an option.
Plow forward slower and slower, because we don’t believe in the future. Or step back and try a few things. Take a breath, take a walk, and maybe you’ll spot a smoother path.