The Human Interactions in Programming (HIP) team in Microsoft Research applies human- centered research techniques to builds tools that improve the software development process. The joke goes, “we build tools as if software were made by people … working together.” As a human-centered effort, we draw from various research fields including human-computer interaction, information visualization, computer-supported cooperative work, and social computing. The central tenet of these fields is that one needs to understand the user in order to design tools to support them. To this end we have initiated a series of investigations to understand software development at Microsoft. Our research builds on a rich history of research into professional software development practices [1, 2, 4, 5, 6, and 7]. This document describes the process we used, what we learned, and directions for future user research.

METHODOLOGY
We performed two surveys and several face-to-face interviews of developers at Microsoft during the summer of 2005. The first survey contained 205 questions asking how developers spend their time, what tools they use, and the severity of various problems they face. We deployed it to 1000 architects, software developers and software test developers randomly selected from the Microsoft address book by job title. We received 157 responses, though the data presented here includes only the 104 responses from the developers.

Next we performed semi-structured interviews with six software development leads and five software developers drawn from our survey respondents. Each was done by two interviewers, who took copious notes. Each interview lasted about an hour. Most were recorded on audio. To find the themes latent in the notes we transcribed them onto 800 3×5” cards and did a massive card sort exercise.

Download pdf Software Development at Microsoft Observed