注:本文译自Microsoft Research and the industrial research cycle,点击网址便可查看。程序员
https://www.microsoft.com/en-us/research/blog/microsoft-research-and-the-industrial-research-cycle算法
大约14年前我升任经理时,曾经对微软研究院的新进员工这样说:spring
微软研究院不只为你提供了如学术界同样充分探索和增进科学知识的自由,同时还有额外的要求,这就是将你的科学追求与公司的问题结合起来、致力推进微软的发展,这一要求也会随着你的年资增加而提升。数据库
这个说法至今仍然是成立的;一如我17年前加入微软研究院时那样,这也反映了微软研究院在推动科学前沿研究的同时也要给公司带来正向推进的双重使命。编程
我借用“产业研究周期”模型来解释微软研究院的运做方式。研究人员能够自由地选择研究问题,并在各自学科(周期的左侧)探索,以推动科技的进步。同时,他们也有责任和机会在进行了充分探索的前提下将本身的注意力集中在他们认为可能对公司(周期右侧)产生影响的领域。在理想状况下,他们对科学研究问题的解决方案的探索最终会影响到公司的技术应用。他们从公司实践领域得到的经验不只会用于验证科学知识,还会在下一阶段推进科学新方向的探索。一名研究人员在其职业生涯中将沿着这个周期作许屡次往复。安全
探索与专一很难兼顾,更难以俱佳!相反,人们须要在某些阶段进行探索,而在此后的多年间作到专一。网络
我借用“影响力”图来解释影响的不一样形式。x轴表示科学影响的水平。y轴表示对微软影响的程度(参见上图)。我的影响以曲线之下的面积来表示。我的影响曲线的形状随着时间推移而变化,既取决于他在产业研究周期中所处的阶段,也取决于他在公司内的资历增加。app
在探索阶段,我的影响曲线的形状通常是水平的,这是由于他的主要受众还局限于科学界。在专一阶段,我的曲线的形状一般是垂直的,并创建在先前探索阶段的基础之上。机器学习
随着我的在公司的年资增加,公司自己对于他专一于微软影响力的指望也在提升。另外一方面,初级研究人员享有更多的探索自由。微软研究院新招聘的博士生仍有许多工做要作,才能在本身的领域创建起公认专家的声誉。虽然有些人可能确实在职业生涯的早期阶段就开始与产品团队互动,但咱们并不要求初级研究人员直接着手为公司解决问题。异步
咱们鼓励研究人员积极著述,但微软研究院并不强调发表数量。质量是咱们的首要目标。
微软研究院在科研上的投资可能不会当即对微软产生影响,但从长远来看将为公司培养新的力量/能力。我借用“长期做战”示意图来讲明,要将科学结果转化为公司影响力离不开协调而长期的努力。
我用如下三个例子说明发挥影响力的路径,这须要与合做伙伴长期共事、创建关系和信任,以及经过解决问题的新方案来改变公司文化。
1999年末,Sriram Rajamani和我在微软研究院创立SLAM项目,旨在探索自动发现设备驱动程序中代码缺陷的新方法。Windows驱动程序质量组终于在2002年成形时,Byron Cook、Jakob Lichtenberg和Vladimir Levin加入了团队,推出了一个基于SLAM引擎的静态驱动程序验证器(SDV)。SDV的第一个版本是在2004年与Windows一块儿交付的。在过去10年间,不一样梯队的微软研究院研究人员与驱动程序质量团队密切合做,对SDV的底层分析引擎改进/迭代了三次。
相关论文:
SLAM2: static driver verification with under 4% false alarms (http://dl.acm.org/citation.cfm?id=1998508 )
The Yogi Project: Software Property Checking via Static Analysis and Testing(http://rd.springer.com/chapter/10.1007/978-3-642-00768-2_17)
Powering the static driver verifier using corral(http://dl.acm.org/citation.cfm?id=2635894)
2004年,我聘请Nachi Nagappan进入微软研究院,在微软雷德蒙研究院带领实证软件工程(Empirical Software Engineering)研究。在5年时间内,Nachi及其同事Brendan Murphy、Jacek Czerwonka、Christian Bird和Thomas Zimmermann经过对产品版本历史、错误数据库和其余数据源的分析,研究了影响软件质量和开发人员生产力的关键问题。
为了将此类分析扩展到整个公司层面,Wolfram Schulte加入团队,并与Nachi、Brendan和Jacek一块儿建立了CODEMINE,这是一个用于收集和分析微软软件工程开发过程数据的数据分析平台。该项目于2009年先后启动(代号为SWEPT),并于2013年结束,它让咱们得以深刻了解微软各个产品组的软件工程开发问题。CODEMINE对于一个名为“软件工程师工具”的新团队的造成相当重要,而正是这个团队使公司转向了基于云的软件工程基础设施。
此后,微软研究院于2011年启动了Touch Develop项目(www.touchdevelop.com),力求实如今智能手机上编写智能手机脚本。Touch Develop出乎人们意料的运用是在K-12计算机科学教育方面——教师们发现,孩子们痴迷于对他们的智能手机编程,使之可以响应环境刺激。
它演变成了一个与BBC合做的项目,旨在建立一款带有易用编程平台(基于Touch Develop)的小型物理计算设备。总计100万台上述设备(名为micro:bit)于2016年交付,足够让英国的五年级学生人手一台。正是因为BBC micro:bit的成功,微软目前正投资开发一个用于计算机科学教育的全新编程平台。
从硬件资产到底层操做系统代码再到面向用户的服务逐级优化,这是成功的关键所在,并为研究人员提供了跨越多个领域的机会,这些领域包括系统、正规方法、软件工程和编程语言等。
下面是RiSE组深刻参与其中的四个与云计算相关的大规模新项目:
P语言正在改变着微软程序员承担构建大型异步系统任务的方式。P语言已经用于开发Windows中USB 3.0驱动程序以及微软Azure中的服务。
Everest项目(Project Everest)正在构建一个高性能、符合标准、通过验证的HTTPS完整生态系统实施,上到HTTPS API下至包括RSA和AES等在内的加密算法。
Parade项目(Project Parade)经过将运行时的依赖关系做为符号值来处理,实现了大量看似顺序性应用程序的并行化。这个项目的成果大幅度提高了目前流行的机器学习和大数据算法的性能。
Premonition项目旨在经过建立新技术,自主定位、收集和经过计算手段分析蚊子所携带的血源性病原体,在病原体爆发前检测到它们。
不管你处于探索阶段仍是专一阶段,微软研究院都将带你走上使人兴奋的旅程。若是你有兴趣加入咱们的旅程,请访问微软官网的求职页面。
英文网址>>https://www.microsoft.com/en-us/research/careers
中文网址 >> http://www.msra.cn/zh-cn/jobs/default.aspx