Wednesday, July 8, 2009

LInuxTV and Developer Motivation

I didn't get anything done again last night. Spent a bit of time trying to get a Windows XP install running in VirtualBox so I could get the logic analyzer running. Watched more TV than I should have. Cleaned some of my apartment. I just can't seem to get the critical mass to dig in and start coding again.

I think part of the problem is I have strayed from what is really important to me personally. I don't mean that from an ideological standpoint - I still think tuner support under Linux is important. I mean from a practical standpoint - I have been spending all of my time lately working on DVB-T devices I have no use for and cards that other people own which I don't have any use for, and analog support for HVR-950q that I don't really have any use for. I have long ago passed the notion of "scratch your own itch".

More recently I was considering starting up a project to get analog support working in the dvb-usb framework (dib0700 devices in particular such as the Pinnacle PCTV 801e). However, I would have to overcome the realization that this means another solid month of development for something I don't really care much about personally, and several months after that doing support and isolating edge-cases raised by users as they start using the code.

I think I may have reached the point where this has stopped becoming interesting. Making the 950q work with analog was interesting because I had never done analog support for a bridge before. The notion of doing that again is unexciting. The same goes for isolating yet another analog bug in 950q with gstreamer or mplayer or (insert name of application here).

The eight or ten emails a day I receive from individual users could be seen as motivation since I know people are clamoring for fixes and new support. But it is also a burden.

This is not my job. I am not paid to do this. I do not benefit personally from making yet another device that I do not own work. Why am I doing it then?

Perhaps, just because I *can* do something does not mean that I *should*.

Alot of what I do requires an extraordinary amount of patience. Spending every night for a week in front of an analyzer dump or collection of USB traces trying to identify why something doesn't work can get monotonous. When I don't get the "instant gratification" of getting something to work with relatively little effort, I am constantly faced with the question: is spending the next week of my life debugging this one issue worth my trouble personally?

Perhaps I need to work on something easier which gives me more of the feeling of continuous progress.

Anyway, enough rambling for now...