Hello,

I would like to start a discussion about our time-based release schedule. We have a discussion (that I personally find a little bit annoying and tedious) about release plan dates on every single release (the 4.4.0 discussion, is just another example). And we still often end up with none-optimal time-frames (4.4 might also be an example here -- not by itself, but the impact on 4.5 release timeline -- cf my latest reply on the other thread).

Given that we actually plan to have time-based releases, I think we should agree on a more fixed schedule, which allows us to project all release dates (including KIP/feature/code freeze) into the future and just be done with it. -- And even if we need an exception from the rule, we can easily get back on track on future release afterwards.

I was also looking into historic data, and while we overall don't do too bad to stay on track for 3 release per year, we had to pay the price of a few short release cycles to "shift back" (the previous 4.3 release is a good example of it), while we still did shift somewhat forward overall. These short releases cause even more pain IMHO.

To avoid problems with the holiday season end of the year, I would like to propose the following fixed release cadence (this is not my personal favorite, but let's start here):

1. KIP freeze is the second Wednesday of January, May, and September.
2. Feature freeze = KIP freeze + 3 weeks.
3. Code freeze = Feature freeze + 3 weeks.
4. Release target = Code freeze + 4 weeks.

While we never officially formalized the 3+3 weeks between KIP/feature and feature/code freeze dates (and we used shorter time windows in the past, ie, 2+2 weeks), 3+3 established itself since 4.0 release -- I am totally open for other time frames, but believe we should not go shorter than 2+2 weeks. I would also not make them longer than 3+3, as it would just give us the subjective impression that releases are closer to each other.

A 3+2 schedule would actually be my personal preference. For KIPs, giving only 2 weeks to complete them is tight, even for simple KIPs. And for bug-fixes, I would believe that 2 weeks are enough. Making it overall 5 week instead of 6, also helps to keep releases 1 week "further apart" from each other (not really, but we know how reality works, given our subjective nature).

The above schedule implies that we would have target release dates late March, July, and November. Even if we need more than 4 weeks after code freeze, we still have some head room in the November release before the holidays (we might hit Thanksgiving, but I think that's ok). For the KIP freeze in January, it should also give enough time after the holidays to complete KIPs and get them accepted (w/o being too close to the holidays, eg, "first Wednesday in January" would effectively mean, that KIPs must get voted before the holiday break).

If we want to take the holiday season into account even more, we could also make the timeline between "release 3" and "release 1 of the following year" two weeks longer, and the other two timelines 1 week shorter. This would give us the following KIP freeze deadlines:

 - third Wednesday of January
 - second Wednesday of May
 - first Wednesday of September

It also implies, that Thanksgiving would be less of an issue for "release 3". This schedule is what I would personally prefer, instead of an 100% equal distribution of our 52 weeks across all three releases.



For the upcoming 4.4 release, we should make it a 5-month cycle targeting October instead of September, and we would also have a slightly longer cycle for 4.6, which we should only start in January. However, starting with 4.6 we would enter the above proposed fixed timeline, putting us into a much better position going forward IMHO.


Looking forward to your thoughts on this idea.


-Matthias


Reply via email to