Microsoft’s Top Toolmaker

REDMOND, Wash., Jan. 29, 2001 — The growing sophistication of computer technology presents challenges for more than just consumers who are uncertain about how often to upgrade their PCs. It has hardware and software developers scrambling to reach higher plateaus with every new product they release. The introduction of ever-faster processors, more memory and other hardware advances has been matched by increasingly advanced software. But todays software is much harder to develop. No longer can a few programmers bang out a new product in a fortnight. It takes large teams weeks and months to create the tens of millions of lines of code now required. This complexity increases the probability of errors, or
creeping into the final product.

Amitabh Srivastava

Thats why groundbreaking researchers like Amitabh Srivastava are so vital to Microsoft. Srivastava helped the company create the Programmer Productivity Research Center ( PPRC ), which he now directs. In the two years since the centers inception, Srivastava and his team have created innovative tools that can understand and control other programs. These tools and other technologies are allowing Microsoft to create software more easily and catch bugs long before the software makes it to the users computer.

Microsoft honored Srivastava last week for his work by adding him to a rarified group: the companys Distinguished Engineers . He is only the 17 th Microsoft employee to receive this designation.
“Since joining Microsoft Research four years ago, Amitabh has worked tirelessly to create tools and technologies that can improve the performance and quality of Microsoft software,”
said Rick Rashid, senior vice president and head of Microsoft Research ( MSR ).
“Through his efforts and that of his team, Microsoft has become one of the leaders in the field of automated software analysis, performance tuning and testing.”

Srivastava sat down with PressPass recently to talk about this honor and the importance of the work he is doing at the PPRC.

PressPass: How does it feel to receive the designation of Distinguished Engineer?

Srivastava: I feel very honored by the recognition. My team and I have been on a crusade to make tools that improve the production of software for almost four years. Although there is plenty of work still to do, we have made some massive strides. It feels good to know our efforts are being recognized.

Whats also nice about this designation is that it doesnt require me to change what I am doing. I dont have to take on additional management duties. I get a distinguished position without giving up any time to do what I do best, which is work with my colleagues to create tools.

PressPass: What attracted you to the area of computer research that you now pursue?

Srivastava: While working on LISt Processing, or LISP, machines in the early 1980s, I noticed how a good programming environment could tremendously improve programmer productivity. When I moved to traditional environments, where the C and C++ programming languages were used, there were few of the software tools I had become used to with LISP. Other developers and I experienced the pain of how difficult it was to write high-quality software. I began thinking,
“If I had sophisticated tools, I could do my job better.”

PressPass: What brought you to Microsoft?

Srivastava: I came to Microsoft because I wanted my tools to have the most impact on software development. The researchers on my team get to come up with new ideas for tools, test those ideas by applying them to real products and then determine if our ideas have succeeded. For a research group, its a great place to be.

I used to work for Digital Equipment Corp. at the Western Research Lab in Palo Alto, which also was a great place to work. I was able to do a lot of innovative work in tools there, including development of ATOM, a
“meta tool”
that helps programmers build other tools and knows how and where to place testing probes into a program. Based on my technology, Digital spun a company off called TracePoint. I was the chief technical officer and vice president of engineering for this startup company. However, Digital had little software for me to test my tools and other ideas.

PressPass: Why did Microsoft Research create the Programmer Productivity Research Center?

Srivastava: Soon after I came to Microsoft in 1997, I was leading a group that was basically focusing on improving software performance. There were numerous small groups that existed around Microsoft, even in the product areas, that were focusing on different aspects of software development. There was nobody focusing on the whole issue of productivity, taking the global view and trying to attack the whole problem. When we created the PPRC in 1999, we consolidated these efforts, so we could make one coordinated and concentrated effort. We also wanted to build tools that work in the production environment and get the ideas of MSR researchers into the software production environment as fast as possible. Microsofts renewed focus on producing high-quality software has given the PPRCs mission added importance, especially as the company has moved into making more enterprise-scale software. This has further increased the need for very high-performing and reliable products.

PressPass: Why are tools needed to create good software?

Srivastava: Software programming has become incredibly complex. As recently as 10 years ago, people were writing programs with a few hundred thousand lines of code. A small team of developers could handle this. Now, you are dealing with programs that include tens of millions of lines of code, and you have several thousand people working on it. This added complexity also complicates testing of software for bugs. Lets say a tester spends two weeks looking for bugs, and then programmers make a few changes to the program. The testers often must spend another two weeks testing the entire program again. Tools can help testers pinpoint the changes and optimize their testing resources.

PressPass: How unique and innovative is the PPRC in the software development industry?

Srivastava: Research in software tools requires access to real software production environments. Without this, you can only publish papers and build prototypes. At the PPRC, we can — and do — take the tools and other technologies we develop the extra mile. We ensure they function in real production environments before we hand them over to production teams. If a tool doesnt work correctly, we keep refining it until it does. This approach is already making a big difference. For example, new tools created by the PPRC and used in the creation of Windows 2000 helped detect a large number of bugs during development. Now these tools are used in the production of virtually every new product at Microsoft. New tools we are now testing will allow programmers to ensure the accuracy of their code before they are checked into the build process. These tools will require product teams to change their development process. I wouldnt call this completely radical, but it changes the way things have been done for years.

PressPass: Why dont others — as you put it — go the

extra mile?

Srivastava : To go that extra mile, you need access to a lot of software to really test new ideas for tools. When I was at Digital, I could produce the tools, but I had limited software to test them on. At Microsoft, we have development environments that are among the most complex in the world. We can make new tools available to software developers when they are writing source code and creating new products. Then, we can look at the final product and determine if we succeeded. More academics are taking an interest in the performance and reliability of software, and we support this. We are trying to encourage people in the universities to focus on these problems.

PressPass: Do the tools the PPRC create do things other than catch bugs?

Srivastava: We are currently focusing on all aspects of producing high-quality and high-performance software. We have developed tools for analyzing program behavior and detecting performance bottlenecks. We also have tools that modify programs to take advantage of hardware characteristics, such as caches. We also have research projects that are looking at alternate techniques called
“model checking,”
which allows programmers to verify the correctness programs.

PressPass: Will the Microsoft .NET movement affect the need for tools?

Srivastava: The .NET environment is very dynamic, with computers constantly seeking information and sending it out. Its also heterogeneous — not all machines are PCs. In addition, its very distributed. One computer will run part of a program, while others will handle different functions. .NET also will change the way software is developed. Before, you developed software, tested it and then released it. In the .NET world, these steps will extend into the live environment. A lot of the tools that were internal to the development process will now have to exist in the
environment. What you need are tools that constantly monitor these systems and verify their actions against models of correct behavior, so they are automatically checking them and determining if the system is OK. If it is not behaving as intended, the tool can raise a flag.

A tool we created at the PPRC called Vulcan provides a framework to address some of the .NET challenges. It allows programmers to put probes into programs to understand the behavior. Most importantly, Vulcan can do this while a program is running. This is important in a .NET world because a business with 1,000 servers, for example, is not going to want to shut down its entire system to diagnose and fix a problem. Plus, you cant bring that problem back to Microsoft or your test lab. You cant reproduce it; its just too complicated. It has to be done right there. Vulcan allows you to sit on a remote machine, and you can put probes in programs on any machine.

PressPass: Are the tools the PPRC is developing addressing any of the other challenges presented by .NET?

Srivastava: With .NET, a lot of software distribution is going to happen over the Internet. So, two new problems come in: What is the size of the software we are transferring, and what is the bandwidth of the online connection through which the software travels to the user? We are trying to understand the tradeoffs between network bandwidth and how the software is used. This research has led to the development of tools that will reduce the time it takes to install and update software.

PressPass: How do you create an atmosphere that allows your researchers to work on the cutting edge?

Srivastava: Rick Rashid has already created much of this atmosphere. We hire bright people with a passion for the areas of research in which Microsoft has an interest. We provide them with an environment that encourages innovation and provides challenging problems. Then, we leave them alone. The whole idea is that if you give them access to all these things, they will come back and invent new solutions. Its also important to create an innovation pipeline, so when these new ideas come out they get down to the product teams.

PressPass: What does it feel like to know that virtually every product team at Microsoft uses the tools the PPRC creates?

Srivastava: It means a lot, because thats how I really measure the success of the PPRC. There are two stages of innovation. One is that you develop good ideas, and you get satisfaction from publishing papers at technical conferences. The second level of satisfaction you get is when you see your work impacting so many people. That is a key point: We want to ensure our work has really improved the lives of our developers and improved the product. It is a really good feeling when your tool has made an impact.

PressPass: Will the PPRCs work ever be done?

Srivastava: There is some job security in this field. Although we are beginning to get control of the number of bugs and problems in systems, the real solution would be to create software-programming models based on specifications. This would allow verification of code as it is being developed. There would be no bugs. Thats kind of like the
“Holy Grail.”
Were several years away from it, but once programmers can write code to specifications, well just move on to solving other software performance issues.

Related Posts