Fri Dec 30 15:20:28 EST 2016

programmer psychology

Emotional cues that the approach is not right:

- overwhelm
- boredom

Eliminating the causes of these will often eliminate despair and so
create a boost in energy.

The two emptions indicate depletion of resources, and seem to be a
safety mechanism of the body to back off and rest, repair.

The resources are being depleted as a consequence of "too much":
Overwhelm is a consequence of loss of mental capacity after trying to
contain too much complexity, and boredom is a consequence of depleted
willpower, being forced to take a path that is "not right".

These seem to correspond to defeat due to too much actual, as of yet
unconquered complexity, and defeat by too much accidental, badly
handled complexity.


How to interpret mood queues?  What I've seen is that a lot of times
when fatigue and overwhelm enter the picture, the problem is that
there is no clear next step.

It is as if I uncounsciously know I'm deluding myself when assuming I
understand the problem.

The next step should be the right size, meaning that:
- the goal should be clear and verifiable
- it should be perceived as doable with current energy level

The last one is very important: if the problem is so big that it
involves a risk of getting very confused in the process, it is not
understood yet, and the next problem is actually to split the chosen
next problem into a couple of steps that implement an incremental

The danger for this is to invent incremental changes that are actually
side steps.  

The first one is also important: if it is hard to test, the problem is
actually to write the test first.


In theory, it should not be possible to be bored while programming, as
there is always a way to automate a problem that is simple and
repetitive.  So why does it persist?

It seems that boredom in context of programming always has an element
of accidental complexity: of being confronted with things that "should
have been handled better in the past".  This judgement reduces
motivation, and thus requires willpower which will eventually deplete.

In a high-energy state, it is usually possible to trade boredom for
overwhelm, e.g. keep eliminating boring work until the elimination
process iteself becomes overwhelming.


There seems to be only one problem: overwhelm.  The way to deal with
overwhelm is to accept it -- do not fight it as it does mean STOP.

Then increase allotted time or reduce the problem set.

After acceptance, there is calm resolve which can bring about a next
iteration of subdivision and possible backtracking.