On the last day of the Lang.NET Symposium, I sat through an interesting lecture on F# with Don Syme. Don Syme is a researcher at Microsoft Research’s Cambridge office. He and Andrew Kennedy previously researched and designed generics years before its eventual incorporation into the Whidbey version (2.0) of the .NET Framework. The research project was called Gyro. Don’s work was instantly credible because it was implemented on top of the CLR infrastructure.
Research Pipeline at Intel
I congratulated him on being able to navigate the research and development divide, and asked him how he was able to do it. Don said that he previously interned at Intel, which had an established notion of a research pipeline unlike Microsoft and trained researchers on the proper steps to facilitate research into development.
At Intel, researchers were more closely involved in development. They were required to make proposals and identify the stage of their research — prototype, design, development, so on... As each stage proceeded, more development resources would be allocated to it, roughly double the amount before. The researcher had to be associated with a group, and must be able name a number of development contacts. A critical success factor is the researcher ability to convince a development group to invest money and resources into the idea—to bring in important stakeholders.
The culture of integrating research and development at Intel is probably due to the founders, Robert Noyce, Gordon Moore and Andy Grove, all having doctoral degrees and conducting significant research. Robert Noyce coinvented the integrated circuit and, had he lived long enough, would have shared the 2000 Nobel Prize given to coinventor Kilby; compare that to Bill Gates’s intellectual accomplishments.
Because of his prior involvement in Intel, Don Syme successfully spearheaded generics into the CLR, and made sure the implementation of generics was of high-quality and completely orthogonal. As a result, generics introduced hardly any seams into the CLR. Underneath the execution engine, though, a single IL instruction may translate into substantial code as some features like generic virtual methods, generic interfaces, and generic static fields may use dictionary lookups rather than simple vtable dispatch.
Don also paved the way for additional research projects to migrate into development tools like LINQ, which was incubated in research as Comega. Future research projects, Spec# and Polyphonic C#, will probably migrate into the fourth iteration of .NET.
This happens to be why I feel optimistic about Google’s chances, given both top management and the founders of the company are researchers themselves. Google also institutes the now famous 20% time and embeds a researcher into each product team. The executives recognize the bottom-up nature of innovation as well as the limits that bounded rationality places on top-down management.
Update: Don Syme has a presentation on Tech Transfer at Microsoft.
Interestingly, Ken Moss who heads MSN Search now, used to be my first dev lead back in the days of Excel 95. He had one of the fastest ascents that I have seen at Microsoft.
Ironically, before he went to MSN, he forbid me to take work that I have done in my sparetime and communicate it to other members of my team. I wasn't allowed to have it tested or anything. It was one of a series of events that squelch my initiative and experimentation at Microsoft.
His focused, get-it-done attitude served him well at Microsoft, but contrasts greatly with the more research-oriented climate at Google, yet Google is more agile. I suspect, because of Ken Moss's leadership, that MSN culture is probably quite the opposite of Google.
Posted by: Wesner Moise | August 03, 2006 at 01:42 AM
"..Because of his prior involvement in Intel, Don Syme successfully spearheaded generics into the CLR, and made sure the implementation of generics was of high-quality and completely orthogonal"
How do you arrive at such a conclusion?
Posted by: abdul baruwa | August 03, 2006 at 05:23 AM
During his presentation on F#, Don Syme mentioned his work on Gyro. When the decision was made to integrate generics into the runtime, he stayed involved to ensure that the implementation was a high quality implementation across the board. Don Syme listed about twenty different areas that potentially could have fallen through the cracks with generics... serialization, reflection, etc, etc.. His job was to ensure perfect compliance.
Posted by: Wesner Moise | August 03, 2006 at 04:24 PM
One more thing: I am guessing that Intel has to be more research-intensive than Microsoft, because the nature of building a new, faster chip requires entirely new processes, new exotic materials, etc. Advancements in software, in contrast, typically doesn't require physical changes to the computer; it's all bits.
Posted by: Wes | August 07, 2006 at 11:30 AM