Does Google do "research"?(matt-welsh.blogspot.com) |
Does Google do "research"?(matt-welsh.blogspot.com) |
1) Creating a culture where writing unit tests, fixing bugs and the like are not viewed dirty work or an overhead, something that scientists (or even engineers) are above
2) At the mean time, being a place where creation of new technology (even if not strictly related to the primary product i.e., not just information retrieval algorithms) is not viewed as "academic" or a risk to be avoided at all costs.
There are companies which do (1) well and companies that do (2) well; they have created wealth and made products I enjoy and use. Only a handful managed to do both: they changed far more than their industry.
As you say, the emphasis on unit tests is amazing and something not found in a lot of professional companies. When you tell someone you haven't committed your code yet because you're writing unit tests they don't tell you to hurry - it's not considered something you can rush.
Additionally some of the research that has come out of Google Research [2] is stunning and I suggest if people are interested they can keep tabs on new publications via their feed [3]. A lot of their tools and products really are pushing the boundaries of the field they're in, both in complexity and scale, so the "reports from the front line" offer a unique insight.
[1] - http://googletesting.blogspot.com/2008/08/tott-100-and-count... [2] - http://research.google.com/pubs/papers.html [3] - http://research.google.com/pubs/atom.xml
However, I also 100% agree that having pure "research labs" is not effective: in many cases some great idea from research arm are just forgotten.
Clayton Christensen wrote a few books on this topic (and I am a very big fan of Clayton Christensen's work).
I would like to also mention that Google is not the only company which has this approach: it seems to me that majority of companies in Silicon Valley operate like this (I don't think Facebook has "research labs", but they do invent things).
Google's 20% Time could be considered "research" or R&D not constrained by business requirements. 20% Time seems like a clever way to harness engineers' downtime for work that may benefit the company.
But none of the Google engineers I've met had a 20% Time project. They said product teams (like Android) had much less flexibility for 20% Time than people working on google.com properties.
1. I agree with Google's approach. Microsoft spends $10 billion a year on R&D yet I can't think of a revolutionary product they've come up with (Kinect was bought from the outside)
2. I notice the word "patent" is never mentioned in this piece. A big reason companies like Microsoft and Intel have research labs is to patent protect themselves in the future (wasn't there an article on HN just a few days ago that mentioned Google's anemic patent portfolio?)
Both are good goals. But if you ask a researcher from MS how important it is to get in a future version of Windows, they may well shrug their shoulders. Their feeling is if they can advance technology then all boats rise, which is good for Microsoft.
I must say when I'm actually doing research, and not just dev work for product Version Next, I don't want to do unit tests and a whole bunch of other cruft. My code isn't meant to be shipped to customers. Its meant to test a hypothesis.
http://research.microsoft.com/en-us/um/people/ablake/
Most recently they have built the machine learning technology inside the Xbox Kinect human motion tracking system.
But yes, maps/earth, docs, voice, etc. were acquisitions.