Wednesday 20 April 2011

Open Source Software - my mullings

I spent 8 years running an open source software project - so I kind of have an idea what its like. Maybe I don't - maybe I just know what its like running an OSS project that is small.

I pushed some software OSS because, at the time (and this was back in 2002), I felt the best competitors at the time were buggy, and feature poor. I thought people would benefit from my software, and I think some people did.
I had some big people using it at some point - Xerox and Maersk were the biggest I think.
But mostly, it was fairly small companies, just looking to solve a problem they had, like me.
I wrote a Java connection pool - it was going against the main competitor, Apache's DBCP, and a few other OSS offerings like C3PO. You get what you take, and you take what you can get. Some people preferred mine, and some people preferred others.

So its cool for a while - you get people interested in your project, and thats great. You do some bug fixes, you feel good - you feel like you're part of the community. Jetbrains gave me an OSS IntelliJ license because I was OSS. Cool - part of the solution, not the problem.

But after a few years, you get a bit bored - most developer's I've met do.
I wound download my OSS a few months ago (well, say wound down - I just switched off the site - bad I know). But why did I do it ?

There were a couple of reasons -
1) To me, no-one ever seemed to contribute. I used to get a few "here's a bugfix" emails, and that was cool - and I appreciated them wholeheartedly - but on the whole I was contacted by hundreds of people over the years that would seem angry that "x" wasn't implemented or "y" had fricked over their site.
Now I worked hard to fix the critical bugs - I remember even taking a day off as holiday from my work position to fix a particularly bad bug (no - I wasn't supported by my workplace to work on the project, even though they were using it in their key systems).
After 8 years, 3 bug fixes from external sources makes you think "this is all take, no give".
2) I got better at coding. I started to get ashamed of the lack of unit tests, and shoddy coding. I wanted to retire it because I no longer respected the code.
3) DBCP caught up ! Its now, I believe, better (in the main sense that its better supported and no longer barfs under load (they had threading issues)).
4) I've moved on from Java ... I no longer see Java as a relevant language.

I've had a few emails since saying "where's it gone ?" and I've given them the source code ... but to be honest, I don't think my little project would be missed.

Which brings me on from the navel gazing to the real point ... I've been using a lot of not-well-known OSS lately, and I'm not really chuffed about the quality of it (which was one of the main reasons I got out of my own OSS offering).
I get that its great that you're giving out to the community - I did it too - but in 2011, is it OK to ship OSS software that isn't tested ? I'm going to go with no.

A lot of these guys are just people out there trying to give to the community, and I do respect it. It just feels there is no-where to when they don't know. Or when they get bored, like I did.

How do we (as a community) write quality OSS when the demand is small (but probably important to those using it) ?

Maybe there's an answer out there, maybe not.