Home > Software Quality News > How Google developed the Chrome Web browser
Software Quality News:
EMAIL THIS
QUESTION & ANSWER

How Google developed the Chrome Web browser

By Colleen Frye, News Writer
01 Oct 2008 | SearchSoftwareQuality.com

Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google

Google's Darin Fisher, a software engineer on the Chrome project, talks about how the Web browser was developed and tested. As you might suspect, agility, speed, and testing were all critical.

Google's ChromeTell me about the development process you followed for Chrome?
Darin Fisher: Some might say certain elements seem like agile programming, but we didn't specifically say let's use this methodology; we just said we'd do what seems right.

My background is working on browsers; I had worked on Firefox. Aspects [of the process] derived from what other Google teams do, like the policy of reviewing all patches before they're committed. Also the approach of doing design documents for complex feature work; it's a great communications tool and something Google does commonly. But by and large, we developed a lot of our own approach to things. Google typically builds server applications or websites, so a Web browser is a different beast.

Was the development team distributed?
Fisher: The new JavaScript engine [V8] was developed in Demark. There are some folks in other offices, but [development] was largely centered here [in Mountain View, Calif.] for the browser.

Did you subdivide the development work?
Fisher: We tried to not overly subdivide. For the core browser we wanted the approach that the engineers should own the whole feature from top to bottom and be able to move around the project where they were most interested in working. We had a flat structure, with subteam meetings. If what you were working on aligned with that meeting, you could go. People could self-select for things they were interested in. We don't have layers of management at Google or on the Chrome project. It works because people are keen to take on personal responsibility for the things they do.

Google's Chrome project
at a glance
Development time: Two years
Size of team: Google will not disclose
Development tools: Visual Studio 2005, Python for scripting, Rational PurifyPlus, and a host of open source tools
Language: C++
Primary communications tools: wikis, whiteboards
How did the team determine which features to include?

Fisher: When it came to requirements, a lot of the process involved brainstorming meetings with the team and we talked about features. We also had an open mail list internally at Google where people said what would be cool. Then a smaller team went through and generated a living document, a beta roadmap, that said here's a set of features we know we've got to do. It included not only requirements for the browser, but a few things that would make it a compelling beta product. We tried to keep the features very focused and minimal. We're adverse to feature creep. Then we shared the list with the whole team, and people would self-select for what they wanted to work on.

Did you set time frames or milestones?
Fisher: We oriented things around quarters, so the living document was revised each quarter; say this quarter we're focusing on this subset, etc. It was helpful to drive the product forward, and to make sure the product very early on was usable by anybody at Google so we'd have continuous feedback. They were getting a new build every week automatically. In the early days we may have been missing features, but we had a browser users could use, which was essential to success. We had a growing base of internal users, and as it became more feature rich we tried to maintain quality and make sure it was always a stable, usable, dog-foodable product, which was a key element to our methodology.

How did the team go about testing Chrome?
Fisher: We were very focused on automated testing. The engineers write automated tests for all work. We have a variety of frameworks for unit testing; others are testing the whole systems and various things in between. The cool thing was wide-scale testing. We'd take the build and run it against a large number of websites. Automated test was essential to go fast.

What does the new browser mean for Web application developers?
Fisher: What's very important is we tried our best to not introduce a new rendering engine. We used WebKit which is the same rendering engine inside Safari, so if you built Web applications with Safari they will work in Chrome. We also wanted to make improvements, and we focused on performance. If you could go faster, you can do more stuff. So for Web developers looking to find a faster JavaScript engine, V8 is very impressive. The point of V8 is to show the great the potential in the space -- that JavaScript can be faster. So for Web app developers, if you have a faster JavaScript you could depend on doing more in JavaScript, which is exciting to us because Google is building a lot of applications.

How did you address Web application security?
Fisher: We have a security team at Google that's done a lot of work on Chrome. They use a host of scanning tools, bug testers, etc. And Chrome has a sandbox technology to provide an extra layer of protection. It was important that the sandbox was robust, so a lot of [Google] people focused on trying to break out of the sandbox. There is way more to security than protecting against malware, so we tried to do due diligence to exercise the product.


Tags: Software project management methods and approachesAutomated software testingAgile software developmentVIEW ALL TAGS

Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Software project management methods and approaches
Five roles test managers play in agile development: Tutorial, part one
Budget-friendly Web app performance testing, monitoring tips
IBM strengthens ALM line, as Micro Focus buys competitors Borland, part of Compuware
Extending application lifecycle management to the enterprise
Agile software development tutorial: Agile project management, tools
Agile and waterfall neck and neck as business side fails to engage
Software testing metrics for a medium-sized project
How project managers can recover from worst case scenarios
How Covad made the switch to a distributed agile development process
Developing the best IT project response strategy

Automated software testing
Exploring mobile layout testing, emulators and goals
Liz Andrews, Marketing Manager, Altova
What are the top free and not-free automated test tools?
Creating strong QA and testing strategies in a changing world
Six software test planning tips for better QA testing ROI
Evaluating the benefits of automated software testing
Testers: Time to gear up for mobile software testing
How to choose the best software test automation tool for your team
When to use manual vs. automated software testing tools
Open source QA tool for automated Web application testing

Agile software development
Agile development growing, but problems remain
Agile, IBM tools boost Merge Healthcare's software quality
Agile development reshaping requirements
Agile software development tutorial: How to transition to agile
Agile software development tutorial: Pros and cons of agile
Agile software development tutorial: Agile requirements gathering
Agile software development tutorial: Agile project management, tools
Agile software development tutorial: Agile testing
Reporter's Notebook: Jack Vaughan on agile methodology
Best practices for moving testers from waterfall to agile development

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
collaboration diagram  (SearchSoftwareQuality.com)
Gantt chart  (SearchSoftwareQuality.com)
PERT chart  (SearchSoftwareQuality.com)
rapid application development  (SearchSoftwareQuality.com)
Software Process Improvement and Capability dEtermination  (SearchSoftwareQuality.com)
work breakdown structure  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary




Software Development Methods - Extreme Programming, Agile Programming, Scrum
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts