As you know, we are nearing the end of the 1.3 feature window. We would like to 
carefully vet any feature that lands in the last days of the window. If your 
feature is ready, stable and performant, please coordinate with the drivers 
team to land it. If you have concerns about the stability of the feature, and 
its not a committed feature, we suggest you postpone it to the 1.4 feature 
window, which is about to open.

Why?

We recently switched to a time-scoped release model. Each 3 months feature 
window is followed by a 3 months stabilization window, which overlaps with the 
subsequent feature window. For 1.2 it took us almost an entire 3 month cycle to 
stabilize the release because we landed a lot of features in the 1.2 feature 
window that weren't ready yet. That effort took away a lot of attention from 
the 1.3 release. We wanted to avoid that this time, hence the request to 
carefully vet all remaining 1.3 feature landings.

Why time-scoped releases? ("trains")

For those of you who have been with the project for a while, you probably 
remember (and dread) the 1.0 and 1.1 releases. It was quite a grind because we 
had a fixed timeline ("must be done by this date"), a fixed scope ("must do all 
of this"), and a fixed team ("only have this many people"). This is called the 
software engineering Trilemma, and its a pretty stressful experience for 
everyone.

We switched to time-scoped releases to avoid getting back into this situation. 
The product team is working hard to make sure that we only have very few 
must-have features for every release ("committed features"). The vast majority 
of features are "targeted". Features for both of these categories are chosen by 
each team. Instead of us telling you how much you have to get done, we ask you 
how much you think you can get done. And we are trying to give you room in case 
your feature ends up taking longer than you thought. We want you to go fast and 
not have to pad for the fear of deadlines. We ask you to get that list done if 
you can. If you have concerns about the stability of a targeted feature, you 
can punt it to the next release. This way we don't have to fix it under time 
pressure. Just do it in the next feature window. Once we are past the feature 
window and in the stabilization window, deadlines kick in. We can't slip the 
end of the stabilization window. So if something isn
 't stable, its much better to finish it in the next window, which buys you 
another 3 months without deadline pressure.

Similarly, if you get more stuff done than you thought, thats perfectly fine, 
too. Anything you land on trunk before the feature freeze that is stable and 
performant can ride the next train, whether it was planned for that train or 
not. The train model gives each team maximum flexibility and control over their 
work!

So far, for each release you delivered pretty much all committed and targeted 
features, and for 1.2 and 1.3 we actually landed many more features than we 
planned. Our feature velocity is really great. Lets make sure we can match it 
with solid stability and quality to reduce the time we have to work on 
stabilizing each branch.

Let me know if you have any questions!

Thanks,

Andreas
_______________________________________________
dev-b2g mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-b2g

Reply via email to