Monday, July 9, 2007

10 Google Process Observations

I was watching a video of a tech talk on Google's MapReduce and there was one slide that had very little to to do with MapReduce itself, but I found very interesting. It was a list of 10 observations of the development process at Google:

  1. Devs work out of a ~single source depot; shared infrastructure!
  2. A dev can fix bugs anywhere in the source tree
  3. Building a product takes 3 commands ("get, config, make")
  4. Uniform coding style guidelines accross company
  5. Code reviews mandatory for all checkins
  6. Pervasive unit testing, written by devs; high dev/test ratio
  7. Unit tests run nightly, email sent on failure
  8. Powerful tools, shared company-wide.
  9. Rapid project cycles; devs change projects often; 20% time
  10. Peer-driven review process, flat management
I experienced or at least observed every single one of those points. It really sums up the working environment at Google well.

The source tree - mostly all visible to even interns, and all you can see can be modified. Building couldn't be easier - even the Makefile is auto-generated. Coding style is very strict. They emphasise unit testing a lot, espicially writing them before writing the code. Powerful tools - couldn't have described it better, MapReduce is one of many examples.

No comments:

Post a Comment