Microsoft OSS Community – Too Much Duplication of Effort?

Just thinking out loud :)

I was about to leave a comment for Jeremy telling him I would love to work on an OSS Project in the Microsoft Community, but that it seems a bit more difficult than it has to be to

  • Find a project that could use the help – perhaps more than others
  • Find projects with a need that matches my skills and/or interests
  • Determine which projects really stand a chance of being successful and truly fill a need versus those that are just pet projects and/or will end up fading away.

Duplication of Effort

One of the things that I have noticed in the Microsoft OSS Community ( and this may not be unique to this community ) is the duplication of effort. This duplication of effort is no doubt slowing the overall progress of all projects, but it also makes it dang confusing and sometimes utterly impossible to know what niche a project fulfills, the amount of community support around it, how it overlaps and differentiates itself with similar projects, etc.

Where should I be spending my time if I volunteer and what should I be using for my projects?

  • NUnit or MBUnit?
  • StructureMap, Spring.NET, or Windsor?
  • NHibernate, Gentle, IBatis, Retina?
  • dasBlog or SubText?
  • log4net or NLog?

The list goes on and I have only touched a few. It feels a shame to have what seems like competing projects when perhaps as a community we could pool our efforts and come out with a suite of tools / applications that are recommended in a certain context.

If we were to get more organized and channel our efforts on projects, OSS will advance quicker and meet more of our needs, and it will be easier to know as an end user just when to use them. We can better focus our blogging as a means of marketing and education of those tools as well as develop larger communities around the tools to offer support and assistance.

As a developer, I just want to use my time as wisely as possible, knowing that any time I volunteer to something I love and enjoy is being directed at a community supported project / need that will last overnight. As a user, I want to have a better understanding of what OSS I should be using in my current application.

I know there are no guarantees in the OSS community, but a little more organization / focus on our efforts may increase participation and fuel innovation and progress. I know I have about 1 day a week I could devote to a project, but where to spend it?

Like I said, really just thinking out loud as to what could be – right or wrong :) My goal is not to add red tape to the community but perhaps get more bang for the buck by focusing efforts a bit.

This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

13 Responses to Microsoft OSS Community – Too Much Duplication of Effort?

  1. hi david, if you can start building an OSS project for CSS refactoring this will difinetely an original one! I have this very nice idea but I dont know yet how to implement as I have very little knowledge of Perl/RegEx for parsing CSS.

    it is a tool that would remove repetiions/commons on the CSS rules and create a neat and nice arrangement and groupings.

    hehe just wishfull thinking 😉

  2. dhayden says:

    Good point. I think there is value in both. I have several personal projects that I work on that I really just enjoy doing myself – the challenge, the experience, the new learnings, etc. I plan to keep some for myself as well as put some into the OSS Community.

    It doesn’t have to be an either / or situation, and certainly everyone should have their pet projects :) What would be the fun of not having those.

    Again, I was really just thinking out loud. I see so many duplicated projects and compare that with so many people that wished there were not only more OSS projects but more mature projects and was thinking of ways that may help. Certainly less duplication and more focus on current projects would help, but everything has tradeoffs.

    After all this good feedback and conversation via the comments, I can see that duplication is natural, good, and things are good just as they are :)

  3. SirMike says:

    Sorry, I misunderstood you then.
    But as I said – people start projects just for learning. It’s always better to have your own project where you are lead programmer / manager than joining mature existing project and be only regular developer who must do what’s planned.

  4. dhayden says:


    I think if you read my comments above you realize that I am not suggesting create another monopoly. You did read the handful of replies where I said I wasn’t trying to stifle competition, right?

    My goal… my only goal… was to suggest that rather than starting a new OSS project, one might want to look around and see if it would be just a duplication of several other projects already started. If it didn’t offer any fresh ideas, concepts, or programming differences, perhaps a better approach would be to help out a current project – allowing it to come to fruition quicker.

    That’s all I was trying to say. I am not trying to suggest some anti-capitalism type of scenario. My intentions were good, but the way I conveyed it in writing could have used more work :)

  5. SirMike says:

    I must say that I’m a little bit shocked by your opinion. It sounds like “let’s create another monopoly”. More people in one project doesn’t mean that it will grow faster. Managing big team is not an easy work. The bigger team is, the better project manager and more work is required.
    IMHO, for rather small projects like log4net there is no necessary to have more than 3-4 developers and a few occasional contributors.
    Personally, I don’t treat OSS very seriously because working hard (24h/7d) for free is impossible. I see it more like learning to write a good code than creating very powerful tools in a short time.

  6. dhayden says:

    Yep. I definitely agree that variety is the spice of life and I think multiple implementations are great.

    My only thought was that perhaps a bit more working together on projects as opposed to always running out and starting a new one that is not much more than a duplication, may advance the tools a bit faster.

    But, yeah. I learn so much from the open source community by looking at different people’s code and implementations that I would never want to stifle the creativity, etc. It makes software development exciting.

  7. ChilliCoder says:

    I do think variety is great. Guess as humans we are proned to have different opinions and approaches to resolve the same problem. In this industry may look as it make things more difficult (Why use NHibernate this week and IBatis next one?) but it’s just at the beginning, there after you have few more decisions to do and then keep on that one. Besides, to look around and find how the other one solved the problem, doesn’t hurt anyone, even if the other one uses Java, Ruby or whatever.

  8. hammett says:

    Overabundance? I bet the java guys start a new web framework per week! 😀

  9. dhayden says:

    You guys are right. I didn’t mean to sound anti-competition but that is how it came out :(

    Thanks for setting me straight. I wavered for a moment this Sunday evening…

  10. Philip says:

    I don’t think there is any more duplication of OSS projects in the .NET community versus Java or LAMP (if anything you could argue that there is much more duplication in Java).

    Some degree of duplication is healthy and useful. Competition is a good thing (even with open source projects).

  11. dhayden says:

    I definitely agree that competition is a good thing and I don’t want to stifle that. It just seems like there is an overabundance of duplicated effort and wouldn’t it be nice if we channeled our efforts a bit. I think tools would progress much faster and be more focused on actual needs.

    I think in the end those projects and people that do pool together and work together – like the Castle Project – end up winning. Or, people just go with Microsoft or other big companies by default for fear of here today gone tomorrow projects. Or, open source people band together and start a business and you end up paying for what used to be free.

    Like I said, I am just thinking out loud and I struggled with my thoughts hoping someone could put more prose to what I am suggesting. But in the end, it may just be a bad idea and/or not feasible anyway.

  12. David, I think that this kind of problem – if ever competition represents one – comes after the problem of competing with Microsoft when developing an OS project.

  13. jmiller says:

    I’d argue with you that a bit of diversity and competition is a good thing. Looking at some of the tools you mention, some of them are simply more applicable to different types of projects. The .Net world can certainly use more than one type of persistence framework for example. I wouldn’t say that very many of them are perfectly interchangeable.

    And yes, thanks for remembering to mention StructureMap;)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>