Yes, I know there's a wiki entry about that subject, but I happen to think wikis are a horrible way to discuss stuff. I don't like them. If someone thinks what I say makes sense and is interested in adding this (or a synthesis thereof) to the wiki, be my guest.
I've been thinking a while about why we can't seem to be able to release within a reasonable time. What exactly is "a reasonable time" is, of course, open for discussion; but the time it takes us right now is way more than "reasonable". My take is that to find out what we should do better, we should have a look at our history and try to find out what's going wrong. From there, we should try and find solutions to those problems. We should also not be blind to the world around us: there are other Free Software-projects comparable to our own (the BSD's and Gentoo, but in a way also KDE and Gnome, although those are different) that do seem able to release; it would be healthy to compare their release processes with our own and try to find out where we could improve ours.
I have come up with the following:
... In other words, I think it all boils down to one important thing: communication. If there are clear channels as to how something must be communicated, those channels are usually used properly. But what we lack is the big picture; someone to manage all the available information about what's needed to release, and communicate that to the Developer body at large. A way for each and every one of us to better understand our role within the scheme of the Release. Act on problems if there are any. This is the Release Managers' job, you'd say, and I agree; but I feel that for some reason that isn't working out as it should1. The fact that there have been time bombs is one prove of this.
This brings me to what I think is the heart of the problem: People in Debian are working way too much separately, and aren't talking to eachother enough. If we have a look at the Gentoo project, we'll see that they have identified some teams within their developer body, who work closely together; they all define a team leader of sorts, and the team leaders have weekly IRC meetings to discuss problems and plan ahead. There's a documentation team, a base team, a desktop team, a Portage team, etc; this ensures problems are dealt with before they're going to be a problem.
I'm not sure applying that to Debian is a good idea, though; I don't want a hierarchical structure where there are leaders and followers. Besides, I don't think our constitution would allow it. Thus, we'll need something else.
Looking at the FreeBSD project, we can see that they send periodical status updates to their announcements mailinglist. We have something similar in our Release Updates, but there are two differences: first, our Release Updates are only being sent when a Release is supposed to be near; second, the Release Update is created by the Release Managers, who will obviously only talk about the things they know about. In contrast, the FreeBSD status updates are sent regardless of whether a release is near; and they are composed after a request for status updates that is sent to their developers. In other words, every FreeBSD developer can write a section for the status update.
I'm thinking it might be a good idea to try this once Sarge is out the door; if people are working on something big, something important, they should have a way to inform the Developer body about the fact that they are doing so. Using -devel-announce could be a way to do that, but people don't usually make announcements about stuff that isn't ready yet; and if we would do so, then -devel-announce would no longer be the low-traffic list it is supposed to be. Grouping status updates into one mail would be reasonable to keep developers updated and informed on what needs to be done before we can release and how much of it has been done already, without annoying the hell out of people by sending them mail every other day.
But will this be enough? I'm not sure.
One thing that seems also quite problematic is that the Release Managers aren't always as informed about the release themselves, either. I was stunned to learn around last september that about a month had passed without a release, and that even the Release Managers didn't know what we were waiting for. I think we should all agree that the Release Managers will need to know at all time what's going on to be able to properly do their job; and that they may have reasons to ask other people that they do something in a particular way, even if that is against their procedure -- for instance, Release Managers might have a reason to request ftpmasters that NEW-processing for some package is done as soon as possible, or that the build of some other package on some architecture is prioritized over other packages; all so that the release won't be delayed. Currently, Release Managers can (and do) ask this of other developers, but if those other developers decide that they're too lazy or that they disagree with the Release Manager's decision, they will simply not do it; and there's nothing the Release Manager can do about that.
Of course I'm not pointing any fingers, nor am I advocating that the Release Managers be given some extra powers that would allow them to overrule any developer's decision without paying any attention to that developer's wishes; I do think, however, that they should have the ability to do what's necessary to make the release happen; and that might require more than just the ability to edit britney's hints, or politely ask other developers to please do something for them.
Whoa, this post ended up way beyond what I intended it to be. Let's keep it at that; in summary, I think the best course of action would be to
Of course, that might not make any sense, be stupid, or things might already be (partially) done that way. I dunno, I'm not a Release Manager...
1That's not to say that the Release Managers aren't doing their job right, of course; please read on