Dave Neary gave me his speaking slot at OSiM USA. I have two challenges, make a talk to fit his title and abstract (although you can almost always safely ignore the abstract) and give a good talk in 20 minutes of time. Here are some thoughts I have. (The title of the talk is Increasing Ecosystem Collaboration through Open Source but I'll let Dave blog that talk.)
Open source software has proved that collaboration between individuals, regardless of geography, time and management structures, can work really well. The open source software model works:
- Self motivated. Open source software developers get things done. They don't need to be reminded of what's important or how much work they should be doing.
- No management. There are no managers in open source software. There are leaders but people don't work for a manager who tells them what they need to work on first. (A friend of mine once worked all weekend on a customer problem only to have his manager tell him on Monday that if he was going to work all weekend there were other things he should have been working on!)
- No time clock. Nobody cares if it took someone 10 minutes or 10 hours to write that patch. They just care if it works and when they can get it.
- No performance reviews. There's lots of peer review and lots of feedback – perhaps more than anyone wants – but there are no annual performance reviews tied to raises and promotions.
- Fast. While it may not always seem so, things get done very quickly in the open source model. Someone has a good idea and they just do it.
- Bad ideas die. On the other hand, bad ideas just die. Nobody keeps pushing for them – or if they do, they can't get other people to waste their time on it.
- Evolves. Ideas and projects in open source software evolve as the world changes and new people join the project. (And nobody is paying big money to keep it the same.)
- Work gets done. Even without anyone telling them how to do it and what to do, work just gets done.
- Communication is great. While it may not always be friendly, communication in an open source software project is great. Everyone knows who is doing what, what decisions have been made and everything is publicly disclosed and documented. In a completely virtual and global environment. If communication isn't great, the project usually doesn't last.
Some companies have figured out how to work well with open source software. Now we need companies to figure out how to work together in an open source way. While some companies have figured out how to work together, either through consortia or through their employees that work on the same open source software projects, others are still figuring out how to collaborate and still keep a competitive advantage. Open source enables companies to collaborate.
Take GNOME Mobile. Many companies are working together, producing very different products, all built on GNOME technologies that are being adapted to new mobile devices. They collaborate on the technologies. On their ideas. And avoid reinventing the wheel. Not only are they using existing GNOME technologies, but the changes they add to make it work well in a mobile environment (whether it's netbooks, scientific devices or phones) and can be used by others who share the burden of maintaining and developing it. Without losing their competitive edge.
So how can companies get involved and cooperate with other companies effectively?
- Join any consortia or group related to your project, like GNOME Mobile and the GNOME Foundation. This is a good first step as it enables you to meet all the players and often you can find friendly mentors and people to help. Sometimes this is as easy as joining a mailing list. Other times it means paying a membership fee or going to an in person meeting or a conference.
- Join the discussion. Join the mailing list, irc channel, comment on blogs. Listen and participate. Become part of the community. (You might want to do this before you officially join.)
- Hire developers or contract companies. Open source software works because lots of people work on it. You'll get a lot of good stuff for free, and people will be glad you are using it, but you'll want to have some technical resources to fix a particular bug, add a specific feature or adapt the open source technology for your product.
- Use the software! Use the open source software out there. By using it, asking questions, suggesting changes, you'll become part of the community.
- Let people know you are using it. Several of the products using GNOME Mobile technologies have never told us. We've "discovered" them. We'd be more than happy to work with them.
Any other things companies can do? (As people who have seen my more recent talks can attest, I use the ideas people leave in comments. Thanks!)