Mozilla Firefox Gets More 'Agile' with Lorentz

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 laterbut 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 growing popularity of the Agile software development methodology among developers.

Compared to the more traditional, highly structured and sequential "waterfall" approach to codingwhich remains very common throughout the industryAgile emphasizes iterative, short-timeframe development cycles.

That's exactly the approach Beltzner said the Firefox team is seeking: faster iterations that then get shipped out to users.

"I'd say our new approach is more Agile than the traditional model we've used," Beltzner said. "This is a sprint on a single task that is very tightly focused, and there is a set of goals which are required."

It's not necessarily a dramatic shift for Firefox, however, with the project's overall development never having been especially linear, Beltzner said. He noted that Firefox has long a number of different parallel development processes, many of which are Agile, although some are waterfall.

As an example, Beltzner said that the Lorentz effort as well as Mozilla's Tracemonkey JavaScript engine project are Agile on their own. That is, they are Agile, but separated from the main development path.

"There are some developers that work on their own bugs in a manner that is Agile," Beltzner said. "Then there are some Mozilla developers that work on technology trends in a more traditional, waterfall approach."

Among Mozilla's waterfall approach efforts, which includes longer-term projects that do not iterate as quickly, is the new Firefox layout improvements. Mozilla developers have been working on a technology called Compositor to improve Firefox layout.

"Really, we're not tied to any specific development model," Beltzner said. "We're tied to what is effective."