Scott Hanselman

Is Open Source a Crap Idea?

March 23, 2006 Comment on this post [12] Posted in DasBlog | Subversion | Bugs
Sponsored By

CSF427The graph at right is from a story in the Economist on Open Source. It illustrates, fairly effectively, that talking and doing are very different and that it's way easier to talk than do - or at least, it must be since so few people do and so many talk.

There are a number of choice tidbits in the article. This sure is true:

"The contributors are typically motivated less by altruism than by self-interest."

When I joined the DasBlog project after the 1.6 release, it was totally because DasBlog wasn't meeting my needs (scale, features, etc) and I thought it'd be easier to contribute than to jump to another engine. Omar has said before that he joined the team to be a better programmer.

As I worked on it more, I used DasBlog, selfishly, as a place to try out ideas and techniques that I would eventually put to use at work.

"Of the roughly 130,000 open-source projects on SourceForge.net, an online hub for open-source software projects, only a few hundred are active, and fewer still will ever lead to a useful product." 

Yikes. That's scathing; I wonder if it's true. SF seems a lot more active and vibrant than that to me, but I could be just seeing what I want to see. Only a few hundred active projects?

With all projects there's a lot of talk, and a lot of time pressure as everyone has a life. It's a little frustrating when folks submit a bug when they could submit a bug and a patch. CVS and Universal Diffs make this a lot easier, but I'm as guilty as the next guy. If it's not fantastically simple to post a patch and have it heard, who has the time to bother? Stuart has offered a number of patches to Subversion, and really struggled to get them into the final product - or even to be heard.

How easy should it be? Is "Right-Click | Make Patch" then "email patch" easy enough?

I'm sure there are (sadly) lots of folks who submitted bugs or asked for help but just happened to pick a bad week where Omar, myself, Tom or the rest of the team was busy with life.

Aside: I wonder if there are crucial patches to the Linux Kernel that didn't get in because Linus had a bad day when the patch was submitted?

It's very difficult to get folks to commit themselves to a project that pays them nothing. The hours are long, the tech support brutal, the users unforgiving and the bugs neverending.

If you work on a Open Source Project, why do you do it? When will you stop?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
March 23, 2006 14:53
All my work on open source projects has had an element of self-interest, it would be difficult to commit the time if there was no reward what-so-ever. Does that make be a bad person? Probably - but only as flawed as most folk.

I think Omar's reason for working on DasBlog is probably the best of all self-interest reasons. When working on Java projects, I tend to contribute to C# projects to keep my .NET skills up to date and vice-versa.

Equally, when you look at DasBlog you can tell that it has features in it that you find especially useful - that is fine. Adding the features that you want and sharing those with the wider world is a good thing, if everybody does the same then all the features everybody wants will eventually end up in the product...

I find it massively annoying when somebody takes the time to email me about a change they made to the code but doesn't bother to send it me so I can add it to the main code base. Yet I'm as guilty as anyone else of saying I was going to do something on a project that seemed really interesting then not getting the time. I've also had bad weeks were code had been sent to me and I've ignored it because I'm too busy with life.

I once had a manager that stated he wanted a distributed project I was working on to work more like an Open Source project - I had to tell him this was a crazy idea. Open Source projects are massively wasteful in terms of effort. As a developer I will often lurk on the mailing lists for a long time trying to get up to speed with the code before I dare ask a question or even still submit a patch.

Having said that, the power of the internet to bring all these personal project together is amazing. In the old days I remember working on little pet projects and they would live for a while when I was interested in them but would soon die and live on a floppy disk in the cupboard for a few years until that disk format became obsolete. Now these projects can live on. When one person looses interest another can take over the lead and the pet projects can grow and grow with the combined efforts of many interested people.

I think it is a fact of human nature that the majority of volunteer work has some element of self-interest, even if that self-interest is just that it makes you feel good. If you only contribute out of blatant raw self interest then you are still contributing in a way that others can benefit from and so you should give yourself a little pat on the back from time to time (as long as you keep yourself grounded as to the real reasons why you are doing what you are doing).
March 23, 2006 17:18
I started working on DotNetNuke because it mostly met my needs; once I added a few tweaks. In the early days, getting patches/features included was difficult because the project was a one man operation. It was becoming harder and harder to keep moving my enhancements forward with each release (Shaun was releasing a new version on average of once a month). With the community asking for more and more features, Shaun finally caved in and invited many of the most active members to join the team. What a brilliant move. In one fell swoop, it was now "our" problem to deal with all of the community complaints/requests.

My motives have never been altruistic. I joined because of my needs and stayed because I found it very rewarding. At the time I joined, I was the Director of Technology at a software company. I was no longer able to "touch" code. DotNetNuke allowed me to pursue this passion. Since that time, DotNetNuke has become my fulltime job. I couldn't be happier.

Having surfed through SourceForge, and having been active in OS myself, I do not find it unreasonable that only a small percentage of projects remain active. It takes a lot of energy to remain committed to a project for a long period of time. Out of 40 or so original Core Team members on DotNetNuke, only about 8 still remain. If you surf beyond the first couple of pages on sourceforge you see a vast wasteland of projects that weren't able to develop a robust community to continue providing new developers with fresh ideas to keep the project going. Look at DasBlog: what if you and Omar hadn't been willing to take up the development?
March 23, 2006 17:21
>> "Of the roughly 130,000 open-source projects on SourceForge.net, an online hub for open-source software projects, only a few hundred are active, and fewer still will ever lead to a useful product."

Depending on how those numbers are reached, I think they are accurate.

I find many good projects on SF that I would use... but it has been 1 year, or 6 months or such between releases. Often you can't tell if there is any activity or not. The "news" pages aren't updated, the repository doesn't appear to have much activity, and there are no new releases. Not even recent bug fixes.

Depending on the project, I may use it, or move on to a competitor. Depends on my needs, and the competitors offers.
March 23, 2006 18:19
Another developer and I recently started a project at Source Forge to which we have code available in the Subversion trunk; however we have yet to make a release yet. Our purpose for creating the project was to provide something we didn't see available yet for free, only variants of this product are available through enterprise integration vendors.
March 23, 2006 21:55
Most of the time when I do a search on sourceforge, I get a listing and over 90% of the projects have no files. Many developers are eager to post their "intensions" on sourceforge to start something but then nothing happens. The dates on these projects go back to 1+ years. It seems to me these developers get excited to start a project but then they lose interest quickly.

My suggestion is start a project on sourceforge when you actually started working on code and post some code so people know that you're genuinely are working on it instead of soliciting help without showing anything.

At least sourceforge now lists projects by activity. It used
to be a waste of my time to do a search and most of the projects have no activity. I emailed them long time ago that there needs to be a search function for projects that have files. They listened.

I wish .NET had a lot more open source projects like php.

Abdu
March 24, 2006 19:06
I see it as a cross between evolution and motivation. The projects that survive and thrive are the ones that are unique, filled a specific niche or ignited the imagination (Ruby on Rails). The cream rises to the top, so to speak.

I can also see were a developer is hot on an idea, puts some code together and publishes it. The project grows and becomes popular but then the developer/creator gets bored with it and wants to find something New and Exciting to work on. In this case who will take ownership?
March 25, 2006 0:40
I wrote a response on my blog. I think it's dependent on a lot of factors. For something like DasBlog and Subtext, we're not out to make a product that competes with other products (speaking for myself), but something that meets our own needs and that we enjoy using.

In part, it's all about managing personal expectations. Part of me wants to catch up and surpass TypePad and WordPress. The more pragmatic (and controlling) part realizes that I'll be happy to plug away adding features I think are cool and using it as a platform to improve my coding skills.
March 26, 2006 2:34
Personally I think you're absolutely in the moral right to contribute to open source for "selfish" reasons. The whole deal behind open source is that it's generally created by people who need to scratch an itch. You do it for yourself, and then publish it in case anyone else has the same need. That's not only acceptable, that's the way things are supposed to work.

Of course, this doesn't always produce great software. For example, you'll never find open source tax software, because no one wants to take the time to make it. That's drudgery from start to finish. We'd all rather pay $50 or whatever and use TurboTax. (Actually I use the free version so can't say about that :)

But it's interesting Scott that you cite Apache as your example of a "crap idea". Unless you are really biased, you can see the Apache is a pretty good web server. It's one of (the?) most popular web servers out there. So despite the flaw that there are more people that talk then contribute, it still produces a good product. I think that's evidence that open source is not, in general, a "crap idea."

Of course, open source is not a silver bullet. What inevitably happens in an open source project is that even if its code is stellar, the documentation is left to rot. So if there's a bug or any problems, you have to really get into the guts of what's going on and work it out yourself.

Regarding both that issue and the problem of too many people talking and not enough patching, I definitely think the cost of contributing has an impact there. If you look at the cost of contributing to open source (learning CVS, subversion, the build process, patching tools) you see that it's pretty high. Compare to the cost of contributing to, say, Wikipedia, and you can see part of the reason why Wikipedia does so well. There's a lot the open source community could do to lower the hurdle of contributing, but I believe the group think is "if they're smart enough to write code, they should know how to make a patch." But of course if you look at incentives in the open source land, no one has an incentive to lower this hurdle by himself, when he has the more immediate concern of getting work done on his own project. So, predictably, it doesn't happen.

My point about all this is that no, open source is not a crap idea, but it isn't trying to rival proprietary software, and it never was. This is something a lot of people don't understand. It's filling a different market, and it has completely different market forces behind it. It's not easy to explain to people who have only been working for dollars their whole lives. It's not perfect, but it does produce useful software much of the time.

(P.S. For people who have only ever worked in proprietary software, you should know that open source != free software. Free software is this (IMHO) nuts concept that no software should ever be owned by anyone. There's a lot of open source guys (like me) that really have nothing to do with "the free software movement.")
March 26, 2006 6:25
Peter - Excellent points.

However, one thing - I checked my post twice and I don't see anywhere where I cite Apache as a crap idea. The chart isn't mine, and only shows that the Apache Foundation and their projects have a lot of folks talking. Just making sure you don't get my ideas twisted.
March 26, 2006 8:15
Scott, my apologies. Actually I realized my error just after posting but I didn't see a way to edit my comments. I hestiated to post a whole followup correction, since I thought your posting of the image might be an endorsement of the idea, and spelling that all out would just be hairy. Thanks for clarifying.
March 31, 2006 3:25
I don't see why it is scathing about there being a "few hundred" very useful software projects that are free to use. What does is matter what the total number of projects are? There are far fewer successful companies that the multitude that have gone out of business -- that life, open or proprietary.

I should point out that the following qualities from the article are no less present in proprietary software:

- "it lacks ways of ensuring quality"

- "still working out better ways to handle intellectual property."

- One of the advantages to traditional proprietary businesses is that anyone can can start one; the drawback is that sometimes just about anyone does.

Your overarching insight is that humans are generally lazy and inefficient -- welcome to Planet Earth.
April 03, 2006 16:12
A comment on the graph. As a CTO I often contribute to the Open Source debate without classifying myself as a coder. I'm careful to keep my mind open and not make statements outside of my expertise for which I cannot cite a reliable source.

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.