I had a very interesting conversation with my father at the weekend. He's the Technology Integration Director for a large Consultancy in the UK. Over the few years that I've been an 'advocate' of Open Source software, he's always been chipping in with little bits of development/contribution that his company has done. However, he's also come across some stumbling blocks which are preventing them from contributing more. I'll go through them in this post. Please provide comments, and advice, where applicable.
- FSF neo-free'rs - The first thing that put him off contributing are all those who slate and bash the big IT companies for things they've done in the past. There are articles there claiming that the big companies will only contribute to open source projects for their own ends, and they'll mess up the licensing and make unrealistic demands .etc and basically poison the code. This type of person is also very much against anything that isn't 100% free software. "Open Source, it's just a fad. FSF and free software is where it's at."
The annoying thing about this type of person is that they're often technically gifted, produce a very "professional looking website/blog" and can SEO so their site is the first to be reached. They have these gifts, and are using them destructively, rather than constructively.
SOLUTION : IGNORE
- The second problem he came across are company email addresses. After doing some work using a fairly popular open source CMS, his company wanted to contribute back to the projects, and submitted some patches. Those that were submitted by someone using their company address were ignored, yet those submitted using personal email addresses and gmail accounts were accepted, and thanked for by the team.
How can we change the culture of Open Source so that the project teams start to look favourably on "BIG COMPANY" contributions to Open Source Software. I welcome the new developers to the Open Source Software table. They're exactly what we need to start progressing. Companies aren't going to recommend Open Source if they're knocked down by the developers all the time. These are the channels through which more and more people are going to be using open source. Embrace them, don't piss them off! :)
- Sponsorship - supposing the company would want to sponsor some open source development or a particular conference. What's the best thing to sponsor? It's such a murky and political world for a n00b, that sponsoring a project takes time to understand developer opinion of doing so. Will the sponsorship look like a take-over attempt of that project/conference, or a way to exert undue political influence. It's hard work.
- Changing the landscape drastically.
Most projects mosey along and don't really have much in the way of development 'spikes;' that is, a short period whereby contributions go up massively, and then get cut off almost as fast as they appeared. However, with the input of a commercial group of developers working full time on a particular project until it fits their needs, this is something that could quite clearly happen. Imagine if you're a developer working on something that you'd like to move from point a to c... and then some external well-meaning development group subtly changes the direction of the project within a few weeks. This isn't forking (and that may well be the only solution to the problem, which is a pain).. this is when a small design decision is made which has a massive effect on something else. How can commercial development groups be sure that when they jump on a project, they stick to the groups development architecture, whilst also fulfilling their own needs. Especially when that development group may be completely non-commercial.
Anyhow, there is a list of things that have bugged me since the weekend. I'd love to know people opinons, as to whether it's something that needs proactively addressing, or something that is engrained in the Open Source culture that we simply have to leave to evolve.
What recommendations would you make to a large commercial organisation wanting to use/contribute to your project?