25.05.15 - 28.05.15, Seminar 15222

Human-Centric Development of Software Tools

Diese Seminarbeschreibung wurde vor dem Seminar auf unseren Webseiten veröffentlicht und bei der Einladung zum Seminar verwendet.

Motivation

Software development has always been a human activity. From the 1940's, where a select few programmed a small number of mainframes, to today, where tens of millions of people worldwide create software for a wide range of purposes, human aspects of software development have only become more significant. Unusable software-development tools contribute cost, error, and complexity to the already expensive and failure-prone task of software development. Unusable environments for learning software development discourage badly-needed talents in the field. Progress on usefulness and usability of languages and tools for software development promises improvements in software quality, reliability, and developer productivity.

One might reasonably expect that these challenges would lead human factors in software development to be a core research topic. Unfortunately, this has not been the case. For example, we found that while 82 of 87 papers in ICSE 2012 (the major software-engineering conference) did some sort of empirical evaluation, at most 29% of those included human participants. Moreover, most evaluations only ever assess the feasibility of new tools, rarely considering their utility in practice.

In our experience, this is because of two critical obstacles: First, few computer scientists have training or experience conducting empirical studies with human participants. Second, research conferences on software tools and engineering lack reviewers with sufficient human-factors expertise. Reviewers often criticize human-factors results based on „common sense“, which can undersell the value of seemingly obvious results. Worse, reviewers often underestimate the soundness of an empirical design and reject methodologically sound studies with comments like „the results are too obvious“ or „the results have no practical relevance, because students were used as participants“. Preparing more computer-science researchers who develop software or design programming languages to conduct human-factors studies is a viable way to address both problems.

The overarching goal of this seminar is to raise the level of engagement and discourse about human factors in software engineering and programming languages. We will identify significant challenges and best practices in both the human-centered design and evaluation of programming languages and tools. We will identify opportunities to improve the quality of scientific discourse and progress on human aspects of software development. We will also identify opportunities to improve how we educate researchers about how to conduct sound human-centered evaluations in the context of software engineering.