{"id":359282,"date":"2017-01-30T10:24:21","date_gmt":"2017-01-30T18:24:21","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?p=359282"},"modified":"2020-08-27T16:03:51","modified_gmt":"2020-08-27T23:03:51","slug":"microsoft-research-and-the-industrial-research-cycle","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/research\/blog\/microsoft-research-and-the-industrial-research-cycle\/","title":{"rendered":"Microsoft Research and the industrial research cycle"},"content":{"rendered":"

By <\/em>Thomas Ball<\/em><\/a>, Research Manager, <\/em>Research in Software Engineering<\/em><\/a> (RiSE) group, Microsoft Research<\/em><\/p>\n

The industrial research cycle<\/h2>\n

\"ThomasHere is what I have told new hires of Microsoft Research<\/a> (MSR) since I became a manager some 14 years ago:<\/p>\n

MSR gives you the freedom to explore and expand the bounds of scientific knowledge, as in academia, but with the added challenge to align your scientific pursuits with company problems and to drive for impact on Microsoft, especially as you grow in seniority at the company.<\/em><\/p><\/blockquote>\n

This statement is still as true today as it was when I joined MSR 17 years ago and reflects MSR\u2019s associated goals of advancing scientific frontiers and<\/em> positively impacting the company.<\/p>\n

\"\"I use the model of \u201cThe Industrial Research Cycle\u201d to explain how MSR works. Researchers have the freedom to select problems and to explore<\/em> in their discipline (the left side of the cycle) to advance science. They also have the responsibility and opportunity, once sufficient exploration has taken place, to focus<\/em> their attention on an area that they believe can produce impact for the company (the right side). Ideally, the problems\/solutions that one explores on the left side of the cycle eventually drive impact on the right side. And the experience one gains from the right side not only validates the science at scale, it also pushes exploration in new directions in the next phase. A researcher will go around the cycle many times during their career.<\/p>\n

\"ResearchImpact over time<\/h2>\n

It is difficult to simultaneously explore and focus, and to do both well! Instead, one needs to engage in phases of exploration and focus over years.<\/p>\n

I use the \u201cImpact\u201d diagram to explain the different forms\/shapes of impact. The x-axis measures the level of scientific impact. The y-axis measures the level of Microsoft impact (see box). \u00a0One\u2019s impact is measured by the area under the curve. The shape of one\u2019s impact curve changes over time, both as one goes around the industrial research cycle and as one grows in seniority at the company.<\/p>\n

During an exploration phase, the shape of one\u2019s impact curve generally is horizontal because the primary audience is the scientific community. During a focus phase, the shape of one\u2019s curve is generally vertical, building on the foundation.<\/p>\n

\"SomeAs one grows in seniority in the company, the expectations for focusing on Microsoft impact increase. On the other hand, junior researchers enjoy more freedom to explore. Fresh Ph.D. hires at MSR still have much work to do to establish themselves as recognized experts in their fields. While some may indeed engage with product teams early in their career, we do not expect junior researchers to jump right in to address problems of the company.<\/p>\n

While we encourage our researchers to actively publish, MSR does not emphasize quantity of publications. Quality is our top priority.<\/p>\n

\"ThePipelines and partners<\/h2>\n

MSR invests in scientific efforts that may not have immediate impact on Microsoft but that will build a new muscle\/capability for the company in the long run. I use the \u201cThe long term play\u201d diagram to show that a coordinated and long-term effort often is needed to turn scientific results into company impact.<\/p>\n

Below are three examples showing the path to impact, which requires working closely with partners over the long term, building relationships and trust, and changing company culture through new ways of approaching a problem.<\/p>\n

Automated defect detection and driver quality<\/h3>\n

In late 1999, Sriram Rajamani<\/a> and I started the SLAM<\/a> project at MSR to investigate new approaches for automatically finding code defects in device drivers. When the Windows Driver Quality was formed in 2002, Byron Cook, Jakob Lichtenberg and Vladimir Levin came into the team to deliver a tool called Static Driver Verifier (SDV), based on the SLAM engine. The first version of SDV was delivered with Windows in 2004. During the last decade, SDV\u2019s underlying analysis engine has been improved\/replaced by MSR three times (see papers on SLAM2<\/a>, YOGI<\/a> and Corral<\/a>) by different sets of researchers working closely with the Driver Quality team, including Ella Bounimova<\/a>, Aditya Nori<\/a>, Rahul Kumar<\/a>, Shaz Qadeer<\/a>, Akash Lal<\/a> and Shuvendu Lahiri<\/a>.<\/p>\n

From empirical software engineering to tools for software engineers<\/h3>\n

In 2004, I hired Nachi Nagappan<\/a> into MSR to spearhead Empirical Software Engineering<\/a> research at Redmond. For five years, Nachi and colleagues Brendan Murphy<\/a>, Jacek Czerwonka<\/a>, Christian Bird<\/a> and Thomas Zimmermann<\/a> studied key issues affecting software quality and developer productivity, through analysis of product version histories, bug databases and other data sources.<\/p>\n

To scale such analyses across the company, Wolfram Schulte joined with Nachi, Brendan and Jacek to create CODEMINE<\/a>, a data analytics platform for collecting and analyzing Microsoft software engineering process data. This project started around 2009 (codenamed SWEPT) and culminated around 2013, giving insight into software engineering problems across Microsoft product groups. CODEMINE was essential to making a case for the formation of a new team called Tools for Software Engineers<\/a>, which is moving the company to a cloud-based software engineering infrastructure.<\/p>\n

Computer science education<\/h3>\n

More recently, the Touch Develop project (www.touchdevelop.com<\/a>) started in MSR in 2011 to make it possible to program scripts for<\/em> smartphones on<\/em> smartphones. An unexpected use of Touch Develop was in K-12 computer science education\u2014 teachers found that children were engaged by scripting their smartphones to react to environmental stimuli.<\/p>\n

This turned into a project with the BBC to create a small physical computing device with an easy-to-use coding platform (built on Touch Develop). One million of these devices, called micro:bits<\/a>, were delivered in 2016, enough for every fifth grade student in the UK to receive one. Because of the BBC micro:bit, Microsoft is now investing in a new programming platform<\/a> for CS education.<\/p>\n

Organizing for big impact on big problems<\/h2>\n

Today, we find a handful of companies developing planetary-scale distributed systems. Amazon, Facebook, Google and Microsoft all have built such systems, and are engaged in optimizing them for performance, reliability, availability, security and privacy. Microsoft Azure is one such system, which provides compute, storage and networking services, and interacts with an ever-growing number of mobile devices and IoT endpoints.<\/p>\n

Optimizing every level of the stack, from the hardware assets, to the low-level operating system code, to the user-facing services, is key to its success, and affords opportunities for researchers across a wide range of disciplines, including those in systems, formal methods, software engineering and programming languages.<\/p>\n

Here are four new, larger-scale projects related to the cloud that the RiSE group is deeply involved in:<\/p>\n