Sorry, I haven’t been writing very much lately. I was a bit in the doldrums.
In October, I lost much of my drive for writing software after developing my product for so long. Developing software started to feel very much work. That month was, so far, my least productive month. I guess that I needed a break and found myself preoccupied with the election. I made some election predictions that turned out to be wrong, which led me to start questioning some of my assumptions in developing software.
I think that my software product is too big—a common problem, mentioned by Eric Sink in his MSDN entrepreneurship article and which afflicts many a developer-entrepreneur. A telling sign is probably the number of doctoral papers (in postscript format) on my file system. Apparently, I have been spending a lot of my time during software research instead of software development.
I have read about a number of shareware developers who started and shipped their product after a few weeks, three months or maybe six months, and seem to be doing well. It makes me feel like the two years I have invested in software development was inefficient. It’s not hard for me to build a fairly simple utility in a few days and release it out to world. How hard is it to build a popup killer?
On the other hand, companies with revenues over tens of millions of dollars and based primarily on one product often develop their software over a course of few years. MathCAD was developed in the garage by two engineers over the course of a year and a half. Microsoft Visio appeared to take two years. There are many others I could name. Netscape was pulled off in six months, but, in reality, it was designed by the same developers who built the original Mosaic.
I also spent some time visiting my parents and siblings in the New York from Seattle. My passion seems to be coming back. For now, I am just trying to have fun (not worry too much about schedules, since the worry seems to induce paralysis) while planning a little more and being more pragmatic.
For 2005, I did a few things:
- Backed all my files and produced a snapshot of my system on the last day of 2004.
- Reformatted my hard drive and reinstalled Windows. I divided my drive into two partitions—one for system and application files, and another for documents and projects. If I ever need to reinstall my OS, I will only need to reformat just one partition.
- I set up my new development environment to run in Limited User Account (LUA) in preparation for the new security infrastructure in Longhorn and to aid in Windows Logo compliance.
- I tried out the December CTP, hoping the post-ZBB (Zero Bug Bounce) release would be very stable and that the benefit of Edit and Continue introduced in C# would outweigh the costs of any bugs I uncover. Big mistake. The CTPs are often unusuable in many areas, because they do not undergo a rigorous testing and triage process. I lost a few precious days on this one.