For the most part I have been out of pocket from the .Net community over the last 6 months due to new obligations I have taken on. These new obligations have given me the opportunity to explore other communities outside of .Net such as Java, Python and Ruby. All these groups have their quirks but the some things they do have is an expressive community that welcomes innovation and alternative view points. Where as the .Net community I feel my view points and belief structure are contrary to the majority, so I don’t *feel* part of community so much as I *feel* a part of a small rebel faction (which is kind of thrilling in a StarWars kind of way).
As a community we strive to make better software for our fellow developer. To make our lives simpler and more productive. As a community we believe in open source software for the betterment of the community. Which brings me to my issue.
I may get flamed for this but maybe I just need to get my hand slapped to settle me down.
As you may know Jimmy Bogard and I have a an open source BDD framework named NBehave. Jimmy, mainly has been working on this off and on and we have learned a great deal about BDD in that time frame. We have experimented with various ideas that have been cultivated in the BDD community and are striving for best practices. There are directions that we would like to take the framework but we have not had time to move it in a certain direction just yet. As an Open Source project we would love additional contributors to help us with the project and just get the community more involved, after all that is what open source is all about.
The key concept here is community. If you have an idea that is similar to a project that is in an alpha state, shouldn’t you simply contribute to the project to help grow the idea? As a fledgling community should we not galvanize on concepts to bring greater acceptance to the masses? Or are we mainly focused on becoming the new Rock Star programmer?
Now the context of the issue. I came across a post today on BDD. Looks very similar to this post but instead of anonymous delegates it uses lambdas. Cool idea and one that we are planning on implementing, oh wait we have that already. hmmmm??
One of my issues with open source development revolves around the very nature of this context. Why as a community do we insist on reinventing the wheel? Take for instance unit test frameworks in general. There is NUnit, MbUnit, xUnit and I am sure I am missing others. The point is they all pretty much do the same thing, just a little differently. Was there a fall out between developers on a certain concept? Where they started at the same time and grew up in separate camps? I don’t know.
There is nothing wrong with a little competition to spark innovation, I am all for that. But as a community should we at least communicate with one another to talk about concepts around frameworks that are so similar in nature? If you have conflicting view points on a particular direction then by all means create a new project but if the view points are the same then galvanize with the other projects to help strengthen the concepts and ideas around which the tool is being built, this will only strengthen the community.
I am not the type of person to be married to my code. I believe in dating it. It’s ok if you want to change it, enhance it or delete it. I don’t really care. What I do care about is the concept and principles upon which the tool is meant to serve. I am not in this industry for the notoriety or the prestige. I simply want to create good software with the help of the community. I love conversing with other developers on ideas or concepts. This is what truly drives me.
I want to go on the record, that I do not think that the authors of StoryQ had ANY ill intentions or malice towards NBehave or other BDD frameworks. I am simply saying, why couldn’t the authors have contacted myself or Jimmy to help make NBehave better. The dialog would only have helped to strengthen view points and concepts.
BTW I have contacted Jimmy on any of this so if you have flame don’t send it his way.