Carnegie Mellon University
Programmers are People Too: Applying HCI to Software Developers
My Natural Programming Project is working on making programming languages and environments easier to learn, more effective, and less error prone. We are taking a human-centered approach, by first studying how people perform their tasks, and then designing languages and environments that take into account people's natural tendencies. We are designing new programming languages for people who are not professional programmers (sometimes called "end-user programmers") based on how people think about expressing algorithms and tasks. We also are working on improving programming environments and libraries for professional programmers. For example, by studying programmers working on every-day bugs, we found that they continuously are asking "Why" and "Why Not" questions, so we developed the "Whyline" debugging tool which allows programmers to directly ask these questions of their programs and get a visualization of the answers. The WhyLine increases productivity by about a factor of two. When reverse-engineering unfamiliar code, we saw that programmers frequently need to trace feasible execution paths, so we developed a new visualization tool to directly present this information. We studied the usability of APIs, such as the Java SDK and the SAP eSOA APIs, and discovered some common patterns that make programmers up to 10 times slower in finding and using the appropriate methods, so we developed new tools to compensate. This talk will provide an overview of our studies and resulting designs and tools, which benefit from applying both Software Engineering and Human-Computer Interaction approaches.
Brad A. Myers is a Professor in the Human-Computer Interaction Institute in the School of Computer Science at Carnegie Mellon University. He is an ACM Fellow, and a member of the CHI Academy, an honor bestowed on the principal leaders of the field. He is the principal investigator for the Natural Programming Project, and the Pebbles Handheld Computer Project and and previously led the Amulet and Garnet projects. He is the author or editor of over 400 publications, including the books "Creating User Interfaces by Demonstration" and "Languages for Developing User Interfaces," and he has been on the editorial board of five journals. He has been a consultant on user interface design and implementation to over 70 companies, and regularly teaches courses on user interface design and software. Myers received a PhD in computer science at the University of Toronto where he developed the Peridot UIMS. He received the MS and BSc degrees from the Massachusetts Institute of Technology during which time he was a research intern at Xerox PARC. From 1980 until 1983, he worked at PERQ Systems Corporation. His research interests include user interface development systems, user interfaces, handheld computers, programming environments, programming language design, programming by example, visual programming, interaction techniques, and window management. He is a Senior Member of the IEEE, and also belongs to SIGCHI, ACM, and the IEEE Computer Society.