My mental model for how I should finish Project Serpent is that I shouldn’t bother too much with forcing myself to work on it when I don’t feel like it, because that will just make me miserable. My ultimate goal is to develop the ability to finish projects that I can exercise for the rest of my life, so it’s pretty important that whatever procedure I end up with is not one that tends to make me miserable. So according to this model, I should wait until I am in the mood for programming, and only then should I program.
This actually worked pretty well for about a week after I started working for pay. After that, my programming moods seemed to slow down significantly — I haven’t felt up to programming in a week or two at this point. And so I’ve done no work.
While waiting until I can program without stress would seem to be the ideal strategy if it would get me to my goal… it’s clear at this point that completionism is more difficult than that. If I actually want to finish this, it will take some discipline: I’m going to need to force myself to start working even when I don’t feel like it, at least sometimes.
I would love to instantly become my ideal self, who can be perfectly comfortable at all times and still produce interesting, finished things. But that’s not an option. The only way forward is incremental improvement, and it seems that the most productive incremental improvement is to learn to finish things, even if it hurts.