This week, I have been attending the Large Synoptic Survey Telescope (LSST) All-Hands Meeting in Tucson, Arizona. During a session on software best practices, I heard a talk by Rob Pike on software development practices at Google. He described how 15,000 developers work on the same body of code, but what really piqued my interest was when he said that Google doesn’t use code branching – all code is instead committed at the “tip.”
How is this made to work? Well, one feature of the process is automated testing, usually done in the cloud. Google has available tools for tracking dependencies and then running automated testing. But perhaps the most crucial part of the process is code review before code is checked into the repository. And the most important part of the review is “writeability.” While developers have latitude in choice of language, the company provides a strict set of code guidelines, and adherence to them is expected. The net result of these reviews, conducted usually by small teams of engineers, is a (very nearly) uniform body of well annotated code. New projects are reviewed incrementally. While the process may appear to be top-heavy, it has the huge payoff of producing quality code: Rob’s view is that the effort repays itself.
Google uses the Rietveld Code Review Tool to keep track of all issues and comments, and to keep track of differences between versions of the code (it has a “diff” tool built in). Learn more about this tool.The screenshots below show the tool in action: