Motivation-driven development

One thing I've been noticing recently is that certain kinds of work get much harder as it gets later in the day. Mostly these are things that require a lot of thinking, but also things that are not particularly enjoyable at the time despite being beneficial in the long run. These kinds of tasks seem to require a particular level of motivation that it's easy to run out of.

For some reason, however, it's very tempting to leave those things until later. It's not even necessarily that they're unpleasant; it kind of feels like you need to work up to them, like it would be too much of a jump to go from nothing to immediately working on a big complex problem or something you aren't expecting to enjoy that much.

However, I'm beginning to think that feeling has no actual basis. When I do the most challenging stuff first I almost invariably feel better about everything else after it. I know that the most difficult thing is already in hand, so the rest starts to seem much more manageable and predictable. What's more, as I start getting tired, it's great to have the easiest and simplest things left to do because I know I have less motivation available.

In software it seems common to crown systems for prioritising work as "X-driven-development", for values of X like test or or behaviour. I like to think of this as motivation-driven development. However, I'm not arguing for doing the most motivating work early, but rather the work that requires the most motivation. I think that in many situations it's the most scarce - and important - resource you have.