Wednesday, March 26, 2008

Google Software Engineering Principles

1. All developers work out of a ~single source depot; shared infrastructure!
2. A developer can fix bugs anywhere in the source tree.
3. Building a product takes 3 commands ("get, config, make")
4. Uniform coding style guidelines across company
5. Code reviews mandatory for all checkins
6. Pervasive unit testing, written by developers
7. Unit tests run continuously, email sent on failure
8. Powerful tools, shared company-wide
9. Rapid project cycles; developers change projects often; 20% time
10. Peer-driven review process; flat management structure
11. Transparency into projects, code, process, ideas, etc.
12. Dozens of offices around world => hire best people regardless of location
(via Chris Masse).

A long time ago in galaxies far away (once upon a time, we called them Salomon Brothers and JPMorgan), I was involved in this process. This post is more for me than for my most of my readers. Thanks for the indulgence.

No comments:

Post a Comment