Steps towards an open development process
Dec 05, 2011
Genode is going to embrace an open and transparent development process.
Posted by Norman Feske at the Genode mailing list:
Over the past four years, the Genode OS Framework has seen rapid progress.
Skimming over the release notes of the past releases makes me very proud. It is
clear that the project's development is going stronger than ever. However, at
the same time, I recognise that progress on a technical level is only one part
of a successful Open-Source project. A certainly even more important part is
the participation of a diverse community. This is where our project is vastly
underdeveloped. By continuing the development at status quo, Genode will
continue to steadily improve but it will not be able to capture a significant
position in the operating-systems world. Instead, it will possibly remain a
curiosity. Therefore, we Genode developers regard the transition of our work to
an open and transparent development process as the next big challenge we want
to tackle.
Review of the situation
Even though Genode is an Open-Source project, its development has been pursued
largely behind the closed doors of our company Genode Labs. The planning of the
road map, most technical discussions, issue tracking, and revision management
are used to be done within the company. There had been two reasons for this
policy namely the preservation of exclusivity and the efficiency of
coordination.
Regarding the first reason, when we started our business, we desired to
preserve a certain degree of competitive advantage to ourselves by keeping some
information "protected" from the public eye. For example, revealing the
detailed history of the over 5000 source-code revisions of the project would
enable any outsider or competitor to deeply analyze the way of how our company
works. These concerns had been acknowledged by other startup companies with
statements in the line of "Open-Source has hurt our business".
The second reason is the way of how humans intuitively work together in a
non-distributed environment such as a our small company. Instead of discussing
technical matters on a mailing list, it appears to be much easier and
presumably more efficient to engage in face-to-face conversations. The writeup
of our releases notes at regular intervals served us as an instrument to
recapture the rationale behind our discussions and document it. This worked
exceedingly well. In comparison, discussing every detail on a mailing list
seems to be inconvenient.
Why do we desire a change?
The answer to this question can be put quite simply as "to make the project
relevant". But it goes deeper than that. First, we see ourself as Free-Software
AND Open-Source advocates. I wholeheartedly disagree with statements that
suggest that Open Source is incompatible with having a business. For us, the
contrary is true. Without Free and Open-Source Software, there would be no
Genode Labs. The great wealth of the GNU software stack forms the basis of all
the tools we use every day and it plays a significant role for our passion to
develop software. Furthermore, Genode would not be of much value without all
the great building blocks in the form of existing Open-Source code that we
reuse in our context. Hence, it is our personal desire to contribute to the
Free and Open-Source software world and to intensify the collaboration with
other projects with the same spirit.
We still see the preservation of a certain degree of exclusivity as important
for our dual-licensing business model. If we made Genode available under the
BSD license, there would be not point in pursuing this model. However, hiding
the development process from the public is not only poor-spirited but it
creates an artificial barrier for people who want to participate. The book
"Producing Open Source Software" (https://producingoss.com) by Karl Fogel was an
eye opener to us.
Regarding the efficiency of collaboration, I have to admit that the statement
above about how great the current way works is really not well-founded - simply
because we haven't tried the alternative to discuss everything in public, yet.
Obviously, we are risking to spoil our presumed efficiency by changing the mode
of collaboration. On the other hand, by documenting the process of solving each
problem in the form of public mailing-list postings, we give everyone the
chance to contribute to and to learn from our findings.
The next steps
We take the current release cycle as opportunity to execute our plan to open
the development process. Our coarse schedule is to migrate our internal issue
tracker to the public until mid of December. From this day on, all issues will
be tracked publicly. The place for all technical discussions will be the Genode
mailing list. Until mid of January, we will prepare a new public source-code
tree in the form of a Git repository that we will then use as mainline
development tree.
As a further change of policy, we plan to include all documentation as found on
the website in the mainline repository and remove the Wiki. This way,
contributions to the documentation will be handled in the same way as code
contributions.
I hope that our designated change is in the interest of all of you and I look
forward to see how it will impact the further progress of Genode.
Best regards
Norman