get-state "Open Source Projects"

time to read 4 min | 668 words

Scott Hanselman posted about open source projects. He poses the question: "If you work on a Open Source Project, why do you do it? When will you stop?"

I literally has to stop and think about the number of open source projects I'm involved with. Right now it is:

  • Rhino Mocks - Under active development with a community that send patches when they run into problems. Really cool project. Started because I had too many problems with NMock and refactoring.
  • NHibernate Query Analyzer - Mostly done, not doing much with it for the last few months. Just this week I got the chance to use it several times, both to analyze what NHibernate is doing and for writing mapping for a project where the schema is highly not trivial. Started because I really like the ideas behind O/RM and I wanted to learn one in depth. At the beginning, it was merely a tool to let me poke into NHibernate, but it quickly grew to a general purpose tool for working with NHhibernate.
  • NHibernate Generics - Under active development, got several patches from users. Make it really nice to work with NHibernate in .Net 2.0. It got to the point where I use the collection I developed there in projects that has nothing to do with database at all. Started because I had a .Net 2.0 project and I really hate casting.
  • Brail (now part of Castle) - Under development, but sadly I don't get enough time to use it. Started because I wanted to play with Boo and Castle together.
  • Reflector.Boo - Not actively maintained, and no longer working against the recent build of Reflector. Started because I wanted to push Boo further, but I just lost interest after I pushed the first build out.
  • Boo.DesignByContract - Not actively maintained, mostly does with it needs to do. I lost interest and no longer have the time for it.
  • Castle - Great project, greater community. I'm involved in the following projects there:
    • Active Record - I like NHibernate, I hate XML. Active Record gives me the best of everything, and the firction to get it is approaching zero.
    • MonoRail - Started out because of Brail, but I really like the basic idea and the architecture is great.
    • Dynamic Proxy - Started because I needed to use it for Rhino Mocks.

In all cases, I had a "hidden motive" to work on open source stuff. I either wanted more features, wanted to learn the software or thought it was a cool hack that is worth trying. I stop when it has the features I want to or I lose interest. That doesn't mean that I don't work stuff that doesn't immediately benefit me, though. It needs to collide with stuff that I would like to do. And this mean that the reasons can range from "I got a couple of spare moments I can dedicate to this" to "I set this software free, but it come home begging and now I need to care and feed it."