Last summer, I the nuts and bolts of control interface and random level construction and had basic support for starting and ending a game -- a "first-playable" in the loosest sense of the word. Before moving on to the next step, I wanted to focus on getting everything that worked in single-player working over the network for multiplayer. It was surprising how excruciating this task was, not for its complexity (though networking does seem make things more difficult), but rather because it's so invisible.
I eventually came to realize that it had something to do with a change in job feedback. Whether as an artist or designer, my job had previously been to communicate something each and every day, for 16 years or so. A year ago, it was to communicate big ideas to big teams for a big company. Now I faced months of code that would have little more impact on one's impression of the game than me saying "imagine that with another guy." The work was critical, and set the stage for things that have me loving life again -- and now I ensure that everything is network-friendly as I build it. The transition from short to long-term on-the-job rewards has been an interesting, unexpected, and rewarding journey of coding.