No, I'm not Haiku's lead developer

Blog post by pulkomandy on Tue, 2020-01-21 12:14

I have not used this blog in a while, except for the monthly activity report. But it’s time for a clarification.

Lately, several people (some newcomers, some long time members of the community) have started contacting me by private messages (either by e-mail or IRC chat). Sometimes it was the right thing to do, there are parts of the code for which I’m indeed the best person to ask, and sometimes things are not to be discussed on public channels (for example, because it involves personal data that should stay private).

However, there are cases where contacting me is not the thing to do. It seems several people think that I am the lead developer of Haiku, or that my role is in any way special. I want to make it clear that this is not the case.

When I joined Haiku in 2009, the project had been going strong for 8 years already and was about to publish its first alpha release. What I found was a team where everyone could take part in technical or organizational discussions, and the decision would be taken by discussing the issues until a compromise would be found. This is how the project still works today, and I think it should stay that way.

This is probably a bit puzzling to people who don’t know about it. In any corporate organization, usually there is a boss at the top who will take decisions. Many open source projects also work like that, either because they are run by a company, or because they started as a single person work and other contributors joined only later.

But, for Haiku that is not the case. If you look at the early posts in the Haiku mailing list, you will see that the project started with a dozen or so persons already involved in the initial discussions. Each with their own interests and skills, they started to shape what Haiku (then named OpenBeOS) would be. They probably didn’t know they were embarking on a 20 year long trip.

This collective vision, sometimes referred to as the “Haiku Way”, is what holds the project together. It is, purposefully, not written down, because it’s a moving thing. Everytime an issue is raised or something is discussed on the mailing lists, the conclusion is making a slight change to the Haiku Way. Since all discussions happen in the open, everyone can read them and form their own opinion of what the Haiku Way is. They can then pick the parts most relevant to them and work on bringing these further, or they can challenge the parts they think are irrelevant.

This unusual organization is what made it possible for me to get really involved in Haiku, not just as a code contributor, but as someone who takes part into decisions and design and decides where Haiku is trying to go. And this is really important to me.

Year after year, people join and leave the project, or they can be more or less active depending on their available time (we all work on our free time besides a main job or ongoing studies). Yet, the input from everyone, newcomers or oldtimers, is relevant in these discussions. Newcomers can raise problems that people who have been using the OS for too long trained themselves to ignore, and conversely, people who have followed the project for a long time may remember past discussions and explain the rationale for some choices that are not obvious at first glance.

It’s important for me that Haiku remains a place that’s open to new ideas, and where everyone can question things, learn how we got where we are, and think about how we can get further. If I (or someone else) was the lead developer, such things would not exist. The lead developer would be the one in charge of picking the future direction, and would be free to ignore input from others. I am here because in this decision process, I keep learning about Haiku and refining and evolving my vision of it.

So, if you need some help, or if you have something to say about Haiku, please use the public channels (IRC, mailing lists, forums, etc). This is how Haiku continues to grow, and it gives everyone an opportunity to learn and share. And please also tell me when I’m not doing things right. It is worrying to me that people would think I am the lead developer. It means what I say is weighting too much in discussions, and this is not how I want things to be.