1

7 Quality Principles we can learn from the big Tech Companies – Google, Facebook, Microsoft

Recently I was working with an Code Quality expert group to think about how to improve the code and system quality and the underlying mindset in our company. Knowing that we are doing quite well in terms of quality, we challenged the way we are doing it anyway. One step was to gather informations about how leading tech companies (Google, Faceboo,k and Microsoft) approach quality. Out of these findings we collected from several blogs, articles and interviews with (former) employees of these companies we extracted 7 principles all of these companies seem to follow.

First I want to present some of the informations we collected:

  • Google
    • all developers work on the same source depot and use the same infrastructure
    • every developer can and is invited to fix bugs within the whole code base
    • company wide coding styleguides for almost every language; complying with the standard is mandatory
    • code reviews prior to each check in
    • highest possible test coverage, fast feedback on failures, direct communication on failures
    • developer productivity team that implements and provides tools for developers (such as guideline checks, analytic applications…)
    • developers often / regularly change between teams
  • Facebook
    • dev + ops make more then 50% of the whole staff
    • new developers have to pass a boot-camp-training: fixing bugs, workshops with senior stuff, etc. minimum of 10% fail!
    • every developer has access to live databases and other systems and is therefore responsible for those
    • every developer can check in code into the whole system without formally consulting a manager
    • monthly cross team meetings about progress, quality reports etc. Owned by teams, not managers.
    • every developer can build and suggest new features and field-test them
    • mandatory reviews before each check-in
    • push-block tests
    • SVN blaming, publicity shaming
  • Microsoft
    • “try lots of things to improve quality! Keep doing what works, stop doing what doesn’t.”
    • mandatory reviews before each check-in
    • standardized review check lists
    • highest possible test coverage
    • active usage of code analytic tools
    • active usage of work tags within code: TODO, REVIEW, BUG, UNDONE etc.
    • no features without technical specification challenged by senior stuff
    • Test first!
    • team owns coding styleguides
    • continual refactoring (make small from big)
    • periodic reviews of existing and legacy code with debbuging tools.

At the bottom line, thee following 7 principles are the common fundamentals of world class IT organizations:

  1. Company-wide coding guidelines

  2. Mandatory code reviews prior each check-in

  3. No check-in without complying with the coding guidelines: Automated checks

  4. Shared source depots and infrastructure: every employee can see and modify code of everybody else

  5. High responsibility of developers / strong developer centered culture

  6. Extreme high test coverage. Test always first!

  7. Active usage of quality metrics – transparency and feedback.

Which priniples do you follow in your organization? Do you agree with Google & Co.?

  1. [...] 7 Quality Principles we can learn from the big Tech Companies | The Codovation Blog – Out of these findings we collected from several blogs, articles and interviews with (former) employees of these companies we extracted 7 principles all of these companies seem to follow. [...]