User:Dolske/ImprovingEngineeringProcess

From MozillaWiki
Jump to: navigation, search

As the Mozilla project grows in size and complexity, there is a need to improve the software engineering practices to ensure the product's standards meet and exceed expectations. Issues such as security, quality, and localization must be managed by a team, and a more formal process to deal with these issues will help ensure that they are caught early, and caught consistently.

It's instructive to look at the engineering practices of other well-managed software projects, and use them as a basis for a new Mozilla process. Considered here is Sun Microsystems' Solaris OS, which has a long history and well-established process.

Overview

Sun has recently been working to transition Solaris to an open-source model via OpenSolaris. This effort has also included making much of their engineering process public, so there's a lot of public documentation to learn from.

This graphic shows the general process by which most software is managed technically. (Business-level process is not discussed here.)

Sdf-plc-flow-2005.gif

An engineer would first write a "one pager" giving an overview of the new piece of software. Depending on the scope, the one-pager may be automatically approved, given a lightweight fasttrack review, or an in-depth full review. Next, the engineer would develop the software. When complete (or nearly so), any deviations from what was originally approved must go through the ARC before checking in the software.