A short thought about the nature of communities and freedom has been bouncing around my head. Back in 2003 my wife and I took a few days to visit Boston. I’d made many trips there for work but typically only saw Logan airport and the ‘burbs. Boston has a lot more to offer than office parks.
We did the typical history walk through the city. Outside the Massachusetts State House is a statue of Mary Dyer who is remembered a Puritan turned Quaker who was hung for violating colonial law banning Quakers.
The sad irony in all of this is that the Puritan colony of Massachusetts was ostensibly started to preserve religious freedom. This sanctuary, however, seemingly applied only to Puritans and not to those of other faiths.
This was just a lesson to me that freedom for one class does not at all imply a respect of freedom for all or for all purposes. Tag that under “valuable_life_lesson”.
Remember this when evaluating open source communities. There is often a shared ethic of Free Software but sometimes that is all that is in common from one community to the next. One community might be open to new developers or alternate ideas and implementations. Others are relatively closed. Unlike denial of religious freedom, however, it is not possible to simply declare that all suppression of a community member’s freedom is repressive.
First of all… the right to modify a community codebase is not an expected freedom under any Free or Open Source software license that I’m aware of. Membership and the right contribution is a privilege extended by the respective communities under bylaws that rarely are documented but are there and should be respected.
Some communities do document their membership practices. Gentoo has an explicit membership process. Debian has a social contract the sets shared community expectations. Other communities have social processes that are part of the ambient structure of their world. You are advised to learn the implied procedures and policies if you intend to make progress and achieve you goals.
Secondly some degree of community control is likely to be seen as essential to the proper functioning of a FLOSS community. This is not some sort of hippie concert. Folks are making real software here. Linus Torvalds is jokingly referred to as the benevolent dictator… but his authority is real. Decisions need to be made and stuck to.
Sometimes, however, the decisions of the community leaders can and do cause division and frustration. Recently I was speaking with a commercial developer who had been working with a prominent open source distribution community for embedded devices. He expressed a high degree of frustration with this project and stated that there were “zealots” (his words) and this was keeping everything in a state of flux. His commercial project was, to a degree, hampered by this constant change and breakage. As his software stack expands from simply kernel and uClibc to graphics and windowing systems this breakage becomes more challenging.
I highly doubt this developer will be hung for his heretical statements. Nor are the members of this community anything like the Puritanical prosecutors of yore. I am also explicitly avoiding digging into the whole commercial vs. community supported argument. That’s for another day.
What I’m really trying to say is that when you evaluate a software base look at more than just code and the license. Try to understand the community that backs the project so that you can understand the operational dynamics of the community. How does it really work? Is the reality of this community going to serve your needs?
ShareThis