Just read on Bruno’s blog TEN golden rules/principles that I couldn’t really agree more! From his visit to Google Zürich’s headquarters he managed to collect “TEN principles of Google Engineering/Software Development”:
- Single-source code repository for all Google code (G has a rather big repository, and all engineers have access to the source code)
- Developers can checkin fixes for any Google product (an “open-source” approach)
- You can build any Google product in three steps (get, configure, make)
- Uniform coding standards (how should code “look”) across the company
- Mandatory code reviews before checkin (if a developer fixes a bug in Gmail, the fix needs to be approved by the Gmail team)
- Pervasive unit testing (a “unit” is the smallest testable part of a program; unit testing validates that it works properly)
- Test run continuously, emails get sent (automatically) to developers if any failure is spotted
- Powerful tools that are shared companywide
- Rapid project-cycles, developers change projects often, and can devote 20% of their time to pursuing whatever idea/project they want (if it gets somewhere, Google will then throw some more engineers at it and turn it into a product or a feature)
- Peer-driven review process, flat management hierarchy
and as if this ten weren’t already some amazing good advice for anyone involved in development these days, Bruno also mentioned some other “TEN (amazingly simple) things Google has found to be true“:
- Focus on the USER and all else will follow.
- It’s best to do one thing really, really well.
- Fast is better than slow.
- Democracy on the web works.
- You don’t need to be at your desk to need an answer.
- You can make money without doing evil.
- There’s always more information out there.
- The need for information crosses all borders.
- You can be serious without a suit.
- Great just isn’t good enough.
Amazing, yet so powerful tips if you managed to put them to pratice wisely and effectively, no?