Open development and inner source for fun and profit #
Last in a row if interesting talks at Adobe Open Source Summit was on Open
Development/ Inner Source and how it benefits internal projects given by Michael
Marth. Note: He knows there’s subtle differences between inner source and open
development, but mentioned to use the terms interchangeably in his talk.
So what is inner source all about? Essentially: Use all the tools and processes
that already work for open source projects, just internally. (Company) public
mailing lists, documentation, chat software, issue trackers. Taken to it’s core
this is very simplistic though. The more interesting aspects are waiting when
looking at the people interaction patterns that emerge.
First off: The goal of making all interaction public and easy to follow for
anyone is to attract more contributors. The richest source of contributors can
be tapped into if your users are tech savvy as well. Being based on this
assumption inner source works best when dealing with infrastructure software, or
platform software where downstream users are developers themselves.
As a general rule of thumb: From 100 users, 10 will contribute, one will stick
around and become a long term committer. This translates into a lot of effort
for gaining additional hands for your project.
So - assuming what you want is a wildly successful open source project: You put
your code on Github (or whatever the code hosting site of the day is), start
some marketing effort - but still not magic happens, no stars, no unicorns,
maybe there’s 10 pull requests, but that’s about it. What happened?
Architecting a community around an open source project is a long term
investment: Over time you’ll end up training numerous newbies, help people
getting started and convince some of those to contribute back.
According to the speaker Michael Marth where that works best is for
infrastructure projects: Where users can be turned into contributors and where
projects can be turned into platform software that lasts for a decade and
longer. In his opinion what is key are two factors: Enabling distributed
decision making to let others participate, and a management style that lets the
community take their own decisions instead of having one entity control the
project. Usually what emerges from that is a distributed, peer-peer networked
organisational structure with distributed teams, no calls, no standups,
consensus based decision making.
In Michaels experience what works best it to adopt an open source working model
from the very start. His recommendation for projects coming from comercial
entities is to go to the Apache Software Foundation: There, proven principles
and rules have been identified already. In addition going there gives the
project much more credibility when it comes to convincing partners that
decisions are actually being made in a distributed fashion without being
controllable by one single entity. So telling a customer “We have to check this
with the community first” as an answer to a feature request becomes much more
credible.
The result of this approach are projects that under his guidance gained ten
times as many people contributing to the project outside of the original entity
than inside of it. The result Michael observed were partners that were much more
likely to stick with the technology by means of co-owning it. Partners were
participating in development. Also the project made for a lovely recruiting
pipeline filled with people already familiar with the technology.