On stepping back from TweetSharp and thoughts on .Net OSS
Posted on Mon 24 May 2010 in General
See our joint open letter to the TweetSharp community here. What follows are my own personal thoughts regarding our decision.
As one of the two authors of TweetSharp, I've been fortunate enough to contribute to a project that, by any measure, is popular and well used. It's been downloaded thousands of times by developers and used in applications all over the world (and at least once from orbit on the ISS). We consistently see it recommended by other developers on Twitter and Stack Overflow and other forums where developers gather. This makes me feel happy, and proud of what we have accomplished.
Knowing that a large user base depended on our efforts, I personally felt a responsibility to deal with important issues quickly, to respond to new Twitter features and get them in the library as fast as possible, and to help new users get up to speed without too much difficulty.
Either because of the hands-on approach, or other factors, TweetSharp has begun to feel more like our product than anything else. No one but Daniel and me have contributed in a significant way eventually it began to feel more like a vendor/customer relationship than a community of users trying to build something together.
If you examine the commit history for the project, you'll see that most of my checkins happen between Midnight and 3am in my timezone, and on weekends. This is because I have a full-time job and a family, so my most productive time is late in the evening when everyone else is asleep and I can work without distraction. In the long-run, this kind of effort isn't sustainable. With user-streams, annotations, and who knows what other Twitter features coming on board in the next little while and beyond, the workload isn't going to diminish, and frankly, I can't continue working as much as I have on TweetSharp while maintaining my commitments to my job and my family, and I can't give up my family or my income to work on a product and give it away for free.
As such, Dan and I talked a lot and thought a lot about how to continue. Attempting to commercialize it either by selling support contracts or making it closed-source and selling licenses was discussed, as was trying to find an ongoing commercial sponsor that would allow one or both of us to continue on a full-time basis. Ultimately, we decided we'd let the community determine its fate.
I get the feeling, and I'll be delighted to be proven wrong, that your average .Net developer's interest in open source stops shortly after the price tag. Maybe we haven't done a good enough job making what we consider to be implicit (that open-source projects encourage and accept community contributions), explicit. (Maybe I should have dangled ridiculous carrots earlier and more often.) Or maybe .Net devs are so accustomed to being handed code and guidance from Microsoft and "the Internet" in general that they don't even bother to realize that behind a lot of libraries are one or two people giving up their spare time to make something useful.
Whether TweetSharp thrives or whithers on the vine will be up to its user base. Personally I'm happy to continue in a custodial role managing a steady stream of community contributions or, should some benefactor decide there's cause enough to fund the project's continuation that way, as a full-time developer on the project, but I hope I've seen my last 2:30am checkin for a while.