Mozilla is now embarking on a new development and release model for its flagship Firefox open source Web browser. The model will meld both fast-moving Agile and more traditional "waterfall" development methodologies in an attempt to more quickly iterate new features while maintaining backwards compatibility, security and overall code quality.
With the new model, the Firefox 3.6.x Web browser, which was released yesterday, will become Mozilla's stable branch and will receive both bug and feature updates. Prior to Firefox 3.6, Mozilla provided stability and security updates only on the released branch (i.e., Firefox 3.5.7), while it provided new features only on new major releases (such as Firefox 3.5).
"What I don't think is controversial is the fact that we need to get quicker at delivering features to our users," Mozilla's director of Firefox, Mike Beltzner, told InternetNews.com. "The only way we know how to release a new feature now is through a major release like a Firefox 3.7 or 3.8. There are costs to releasing things that way in terms of time and add-on compatibility, and it gives us a natural limit to the speed we can do things."
The solution is an effort that Mozilla has codenamed "Lorentz," and it marks a fundamental shift in how Firefox includes new features.
Beltzner noted that the thinking behind the approach is that instead of taking a lot of time to package a whole bunch of new features into a release that will be named Firefox 3.7, why not try a new process that gets the job done sooner?
Beltzner added that by splitting development up through the Lorentz approach, major releases will now come laterbut on the other hand, new features can be delivered faster to users.
Additionally, the Lorentz approach will see new features included in Firefox 3.6.x that will not break any APIs or cause incompatibility with add-ons, he said. There was a six-month development cycle between Firefox 3.5 and 3.6, and add-on developers needed to update their code in order to work with the new Firefox 3.6 browser as well.
"We had never considered breaking out our feature development into individual pieces, which could be delivered incrementally and throughout a stability and security cycle, while reserving the deeper changes that break API compatibility and change interaction methods for major releases," Beltzner said.
If the new approach sounds familiar, that's because Unix and Linux development has attempted similar kinds of release variations for iterating new features while maintaining backwards compatibility. HP-UX, for example, is currently on its HP-UX 11iv3 release, which receives updates several times a year that add incremental new functionality. The Linux 2.6.x kernel gets new releases approximately every three months, which include new features as well.
Beltzner also said he's not worried that the new Lorentz approach will keep Firefox stuck on a 3.6.x branch without moving to a major release.
"It's deep within Mozilla's culture to keep rewriting the code," Beltzner said. "We've been revising and updating and evolving the Mozilla codebase continuously over the last ten years."
Agile and Waterfall Development at Mozilla
The new development and release model taking hold at Mozilla is typical of the