Someone recently asked me a few question about corporate participation
in open source communities and I thought I'd share my thoughts on this
topic here.
Are there differences between an open source project done for a
corporation and one done for personal reasons?
There are many different ways to run an open source project, led by a
corporation or by someone else. Some projects that are run by
corporations have few outside contributors. This is often the case with
projects that require copyright assignment (i.e. contributors have to
assign their copyright to the corporation). These projects may not gain
all the benefits of a true open source community, such as outside
contributions or high levels of peer review. However, they may still be
very successful projects and may have high levels of quality.
Projects done by a corporation may have better planning and may have
more resources than other projects. When a corporation, especially a
large one, starts or becomes involves in a project it can also give
credibility to the project and attract a lot of interest to the project.
This means that projects done by corporations may have a bigger impact
and might also be more visible in terms of publicity.
How do corporations successfully utilize an open source
community?
Corporations can benefit from an open source community in many ways.
For example, they can often find people who will review their code or
make code contributions. If people become excited about what the
corporation does, they might also spread the word and create viral
marketing for the corporation. Establishing a community around one's
project is often also a good way to identify people to hire since you
already have experience working with them and know their capabilities.
How do open source communities successfully utilize their corporate
relationships?
Corporations can make several unique contributions. For example, large
corporations can use their name to attract attention to a project and
give it credibility. Furthermore, corporations have some capabilities
that personal contributors often don't have access. They may have
special testing equipment (such as servers with thousands of CPUs or
hard drives) or access to a testing lab where a professional usability
test can be done. Finally, corporations can sponsor developer
conferences, which are typically very effective means for the community
to come together and work on activities together.
It is important for projects to remember that corporations are not
charities and that they will invest in an open source project for a
reason. Therefore, they have to ensure that the corporation will get
tangible outcomes from their involvement or sponsorship, otherwise they
may not stay involved in the long run.
What are the risks for a corporation when working with an open
source community?
One risk is that the code (or other form of contribution) is not
accepted. However, this is a risk any contributor to a project faces.
Before making any sort of contribution, it is therefore important to
become familiar with the project and its culture. Every project has
their own "do's" and "don'ts" that have to be followed.
Another risk is that a corporation will invest in a community project
that later on is abandoned by the community. However, in this case, the
corporation could take the lead and continue to maintain the project.
What are the risks for an open source community when working with a
corporation?
One potential risk is that the corporation will assert too much control
over the project. It's important for projects to ensure that the
community as a whole has influence over the direction of a project
rather than one particular player.
Are certain certifications needed in order for someone
to participate in open source projects for a corporation?
Certifications are not needed to get involved in or start a project.
However, it is important to become familiar with the open source
community and the project one wants to contribute to. A good first step
is to read the book Producing Open Source Software by Karl Fogel which
is available online. As a next
step, the community in which someone wants to get involved in should be
studied, for example by reading the mailing list archives. This will
help to become familiar with the culture of a project as well as the
mechanisms to contribute to the project.
How do open source communities communicate and collaborate with
corporations?
In the best case, employees from corporations would interact in the
project like any other contributor. That is, they should use the
existing communication channels, such as mailing lists, IRC or developer
gatherings. Many companies are good at working "with the community" but
the ideal scenario is for a company to be part of the community and to
work "in the community", just like other contributors. This is the most
effective way for them to make changes to the code and project.
Of course, not every corporation will get involved in a project
directly. That's why it makes sense for projects to collaborate with
corporations in other ways. For example, projects can talk directly to
companies to get samples of their hardware in order to add support for
them in their software. Projects can also work directly with
corporations to find out how their project can better meet the needs of
enterprise users.