Sunday, March 10, 2013

Of the Essence

My last post talked about a new feature I've added to Solitaire Till Dawn, and so did another earlier post. Recently someone posted a comment to the effect that he, and many others, have been waiting a long time for me to get Solitaire Till Dawn finally ready for distribution, and that he doesn't want new features; he just wants a working version as quickly as possible.

I've been expecting some feedback like that, and I'm only surprised that it didn't come sooner, and in greater quantity, and louder. Because I totally understand: you all just want to play some solitaire. That's the only reason you're interested in Solitaire Till Dawn, the only reason you pay attention to my ramblings, the only reason you come to this blog. Come on, Holzgrafe, just finish it up already!

So now seems like a good time to explain a few things. You have all shown tremendous good will toward me and my project, and I want to stay on your collective good side while we're all still waiting and working toward a hopeful happy conclusion.

The first thing to say is that I'm still not free to spend much time on software development. I am still in the middle of moving house, and that process still has a ways to go. There have also been some medical issues in my family: nothing life-threatening, but they took a lot of time and attention, and to some degree are still on-going. The combination has been devastating to my ability to sit and concentrate on software.

And that's the next thing to say: time to sit and concentrate, for hours on end, is critical to software development. This is something that almost no one other than software engineers seems to understand. In fact, when I retired from my day job last November, it was largely because new management did not understand this, and could not be made to understand it. They were convinced that software development got done in meetings. (Here I originally wrote a long rant about all the things they changed that reduced the engineering department's ability to actually get anything done; but then I decided to take mercy on you all, and deleted it.)

I had hoped that, by retiring, I would finally be able to devote big chunks of my time to Solitaire Till Dawn development, but so far that has not happened. The move is one reason: I can't afford to be retired and still live in one of the most expensive places on earth, so I must move, and soon. The health issues are another reason. So for the past four months, not much has gotten done on solitaire, I'm afraid.

And yet I somehow found time to add a couple of new features. How did that happen, and why wasn't I just working on finishing the original feature set instead?

One reason is that bit about having long periods of uninterrupted time to work. The job of debugging an almost-finished product absolutely requires that kind of time. Every bug has to be discovered, then studied until I know how to reproduce it, then studied until I understand it. Then I have to devise a fix (that doesn't break something else), implement the fix, then spend more hours testing to be sure that the fix really works, really fixes all manifestations of the bug in all circumstances, and really doesn't break something else. This kind of sustained effort can't be done in 5-minute pieces, or even one-hour pieces.

Some new features are like this, too. It can take weeks to add some features. But in other cases, a new feature may be able to go in fairly easily and quickly, and without interfering with other things. That's been the case with the last couple of features I've added, so I didn't feel too bad about using small bits of time for them.

It's also true that I need to keep my own interest up. Not everything about software development is fun, even though I do enjoy most of the process. Tossing in a nifty new feature once in a while makes me feel good. This way, I have not just spent five years re-creating something old; I can honestly say that the new version will be better than ever before. That keeps me happy and motivated to do the boring, difficult stuff... when I can find the time.