Google has long had a policy of “release early, iterate often.” However, the different product lines have very different update schedules. While Google Android gets a major update a couple times a year, the search engine gets more than one update to its algorithm each day. Residing somewhere in the middle is Google Chrome, which updates often enough that they don’t feel the need to even tell users when it happens (lest they bug them with incessant feature notifications). To help explain the company philosophy, Googler Anthony Laforge has created this slide show.
The slide show goes over various areas of the Google Chrome team’s outlook. Here are a few major points covered:
- Chrome is treated more as an online web service than it is a piece of offline software, which is why there aren’t typical release rollouts.
- The objective of the consistent “flow” of Chrome updates is to allow users to get stability without any additional effort.
- The Chrome team works on a centralized “trunk,” rather than adding feature “branches” that could require weeks of debugging for real integration (about three months to merge roughly 500 patches). This adds greater stability and the opportunity to release more frequent updates.
- While the original release pattern was a 12 to 13 week release cycle (which, due to early procedures, was rarely hit), the current pattern is based on a six week release cycle.
- To stay consistent with the release cycle, Chrome cuts its scope to a narrow, doable focus; however, Googlers can work on larger projects “under a flag” so that they can carry it from cycle to cycle.
- All Google Chrome features are designed to be disabled with a single patch, in case things go terribly wrong.
The full slide show is well worth looking at. Beyond giving some insights into how Chrome works, it teaches some valuable lessons on managing large software engineering projects.