![]() |
|
| Daemon News Ezine | BSD News | BSD Mall | BSD Support Forum | BSD Advocacy | BSD Updates |
Are we having fun yet?Greg Lehey <grog@lemis.com>I'm obviously not the only person interested in the aspects of project management that I discussed two months ago: I had quite a bit of feedback. Ville-Pertti Keinonen writes: In a commercial environment it's easy to designate someone as the lead developer in a project and this person can be guaranteed to work on the project full-time. Even though FreeBSD does have an ``authority'' in place (the core team), it remains problematic to assign someone with the responsibility for something that they are ultimately working on in their spare time and utilizing their limited spare energy. David Beck wrote: To my opinion the need for the project management is a direct consequence of the FreeBSD kernel architecture. I believe that a different design where each part of the system would be more independent could be of great help. One example is the microkernel architecture. I also believe that this could be even better with a more revolutionary approach. That's an interesting idea, but it's obviously not practical at this stage. Any project manager must work within the constraints of the project. I also think that, while different source structure might simplify the problem, it won't remove it. Mark Pickersgill wrote: I'd agree with your comment regarding developers no longer being able to work on whatever and however they like. I have seen many open-source projects fall-over in an un-maintained heap simply because to fix things that someone else had done in an incorrect or bizzare way would require a fair amount of effort. There's a lot of interesting stuff in this message, which I have already trimmed significantly for publication. Much of it, of course, is unattainable: one of the issues he didn't mention was that the core team and the project as a whole needs to buy these ideas, and I don't see that happening. Still, it's possible that some of these ideas could help. FreeBSD Core team againThe really interesting thing that happened in the last two months was something else, though, which I hadn't expected: two members resigned from the FreeBSD Core team. Since one had left last year, we were down to six members, and that meant that we needed an early election. As this article goes to press, voting has just started for the new elections. Twenty-four candidates are standing for nine positions. At least nobody can complain that there's a lack of interest: last time round there were only seventeen. Let's take a look at the issues surrounding the election. How to have funThe big problem seems to be the conception that FreeBSD is no fun any more. To quote Jordan Hubbard's resignation message, written on 29 April: Finally, it also bears noting that while being part of the FreeBSD project is many things, it should always be "fun" to at least some degree for its participants or there's really not much point in being involved. A little over a week later, Mike Smith also resigned from the core team. While his resignation message was not made available outside the FreeBSD project, the subject line summed it up: ``It's not fun anymore''. What does this mean? Should being on a core team be fun? Two years ago I observed that the BSDs are anarchies: nobody's in control. At the time, I stated that they seem to be working. Maybe that's changing. An anarchy works when everybody is in agreement: you don't need an arbiter to make decisions. That's easy in a small group. You shouldn't need anybody in charge of a group of five people. By the time they get to be fifty, things aren't quite as easy, but with a bit of goodwill and mutual respect it can still work. The trouble is that the FreeBSD team now has over 300 developers. Not everybody knows everybody, and there's a tendency to subgroup. That's what I see happening in the FreeBSD project at the moment. That can lead to tensions, of course, if there's nobody in charge. Who makes the decisions?When the projects were first formed, the role of the Core Team was pretty clear: provide a direction for the project. As a result, the members of the team were primarily the most active developers. As time went on, and the subject matter became more complicated (see the BSD Project Management article), it became more difficult for the core teams to maintain an architectural overview. More and more it was left to individual developers to decide on features. There are obvious problems with this approach:
What is the FreeBSD project, anyway?A more fundamental question is: what is the FreeBSD project? Currently the core team is elected by the developers. That's only part of the picture, though:
Imagine a company run only by the engineers. I've seen them. They didn't last very long. So if the FreeBSD project can survive in that manner, what's the big difference from a commercial company? There are a number of obvious differences, of course, but I can't see any that makes it a good idea to have the engineers run the project. That's a historical carry-over from the days when the engineers were the project. But engineers don't always make good managers, and once management enters the scene, the rules change. Commercial interest isn't the key: size is. Volunteer associations face the same issues. I'm currently the secretary of the Australian UNIX User's Group, and we have as much of a formalized management as any company. Without it we couldn't survive. Even with it things aren't easy. Given this background, I can see three basic future scenarios for the FreeBSD project:
Which is it going to be? I have no better idea than anybody else. More than ever before, I don't know where the project is going. We'll see in about a month's time. But is it fun?Getting back to the issue of having fun: yes, I've had a lot of fun in the FreeBSD project, and I agree that it's been more trying lately. But why? I've had lots of fun in large commercial organizations as well, so that's not the real issue. My take is that the problem is simply a matter of expectations: we're facing problems we haven't seen before, and we don't want to. It's not that we can't deal with the problems, it's that we don't want to have to deal with them. Yes, a larger project will require more rules, but that doesn't mean that it'll be less fun as long as people adhere to them. The problem I'm seeing at the moment is that we don't have the rules. One of the first things that the next core team should do is to ensure that enough sensible and intelligible rules are put in place. What does this have to do with NetBSD and OpenBSD?The last couple of months I've been talking specifically about FreeBSD. When I started these articles nearly four years ago, I promised I wouldn't do that too often. Obviously I think the issue is important, but these articles are supposed to be about all kinds of BSD. I think that the issues we're seeing here have a direct relevance to the other BSDs. It happened in FreeBSD first because of the size of the developer community; we can expect to see similar issues in the NetBSD community when it reaches a similar size. OpenBSD may be an exception, however: the project is much more directly controlled by Theo de Raadt. Last time I checked, he had been responsible for over 30% of all commits to the OpenBSD tree, so he's also the obvious choice for management. But Theo's dominance of the project also limits the size it can become. Maybe OpenBSD will succeed as an example of the second alternative I mention above. |