« API Usability | Main | Language Envy »

January 04, 2005

Looking Back in 2004

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.

Comments

If there's anything MS teaches, it's that shipping is a feature ;)

I think you partitioned incorrectly! If you had a 3rd partition for your /temp folder (and related) it would only fragment that partition - not the rest of the valuable data on the other partitions.

Why would you need to keep projects on separate partition? They ARE all in the source code control system, right? If so, you are always just one "Get latest version/Checkout" away from them anyway (and you DO keep sources on a different machine)?
As for your various supporting files, they can always be easily backed up, so no biggy there either.
Unless you are using 2 _drives_ so that system and swap are on one and projects and data on another in which case you might gain something. If it's only one drive, I wouldn't personally bother.

How's your project doing? I'm very curious
and, how can you live without no income?

Feel free not to answer this improper questions.

Best wishes for 2005!

How has your experience been with working on the Whidbey beta? In general do you think it is a good idea to use MS betas for development purposes? Are the features provided be C# 2.0 compelling enough to live with an unstable development environment?

The Whidbey beta 1 is very stable and usable. It's also what the Longhorn team is currently using for development. Internally and historically, Microsoft development uses beta versions (and alphas) of its own compilers, but each go through a testing and triage process before being released.

My only problem is that I am limited by Microsoft's shipping schedule and that some third-party libraries I use do not support VS beta at this point.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment