VL/HCC 2017 trip report: Programming and Play
By: Amy J. Ko
Tags: Computing Education, Programming, Software Development

Alan Blackwell, inside his own head, giving a remote keynote on his 20 year most influential paper, “Metacognitive theories of visual programming: what do we think we are doing?” So meta!

Back in the year 2000, when I was a sophomore in college, I had the good fortune of presenting my first research paper in Seattle, WA, at the IEEE Symposium on Visual Languages. It was a formative experience: I met my eventual Ph.D. advisor, Brad Myers; I networked with a community of people who shared my interests, and I became inspired to pursue a Ph.D.

While the conference originally had a strict focus on programming languages with a visual rather than purely textual syntax, over time, the community focused more broadly on interactive and human aspects of creating software, bringing together an eclectic mix of researchers from HCI, Software Engineering, and Programming Languages. Now, researchers who attend the conference think a lot about language design, tool design, and the psychology of programming, and try to envision new, more powerful and expressive ways of creating software (hence the broader name, the IEEE Symposium on Visual Languages and Human-Centered Computing).

This year’s conference was in Raleigh, North Carolina, a rapidly growing tech hub full of tasty food and great students. While I missed much of the first day and the closing session, the conference is small enough that I got to meet almost everyone and catch up on what I missed.

Ben Shapiro gave the opening keynote. One of the more compelling arguments he made is that we spend way too little time solving barriers to testing, debugging, and modification in educational environments like Scratch. Helping kids create isn’t just about providing block-based environments that avoid the usability problems of text-based parsers, but supporting the whole process. After all, most of the code that kids write is wrong at first, and so testing and debugging are an inherent part of the creative process.

The rest of the conference was full of compelling ideas, beyond the normal incremental tool contributions.

One of the first full talks I saw was Alan Blackwell, speaking on his 20 year most influential paper award. The original paper in 1996 was a critique of the theoretical foundations of visual languages. Most papers simply claimed that visual languages were better and would make people more productive, without basis. Some went slightly deeper, claiming that visual languages were more “natural” or “concrete.” Some went even further, claiming that visual languages would not even have to be learned. In hindsight, this seems like an obvious critique, but the paper really did lead to a rapid decline superlative arguments for visual languages. From Alan’s perspective, the major role of the VL/HCC conference and community is to resist the incrementalism and conservatism of the programming language research community, but do so in a scientifically-grounded way. However, Alan warned that if we proceed on design only by feature-by-feature controlled experiments, we risk overlooking the development of deeper theories of language design and better measures of things we think really matter in programming.

Jeff Stylos, a talented entertainer, reflecting on API usability during his most influential paper award talk.

The second most influential paper award (the 10 year award) was presented by one of my grad school friends, Jeff Stylos, who’s now at IBM Research. Jeff’s paper was about a system called Mica, which streamlined information seeking about API functionality such as usage rules and examples. Jeff talked about his motivations for the work stemming from just how much time he spent trying to understand how to use an API. This led to Mica, and the more general area of API usability research. It also anticipated a whole world of APIs and API search challenges. Jeff’s view was that API usability mostly hasn’t been solved, and is, in fact, worse, because of the massive scale of APIs being created, and the rapid pace at which they now evolve.

Mary Beth Kery, student of my former advisor Brad Myers, presented a compelling paper trying to define “exploratory programming,” a kind of programming in which requirements are not known in advance and emerge through the process of creation. The paper discussed several existing domains in which such programming occurs, including creative programming for interactive art, games, and music, data science, and in some cases, conventional software engineering. The paper also defined several fascinating dimensions of exploratory programming, including the need for low friction prototyping through code through divergence and backtracking and more explicit support of exploratory processes.

My collaborator and mentor Margaret Burnett presented a short paper (“Gender HCI and Microsoft: Highlights from a Longitudinal Study”) highlighting just some of her extensive efforts to disseminate GenderMag internally at Microsoft, an inspection method for finding inclusion issues in software design. What I found most interesting about the work is how even a relatively simple method was rapidly deconstructed and appropriated by Microsoft designers and engineers. This suggest that no matter how hard researchers try to produce integrated, carefully justified systems of ideas, those ideas will still be adopted in pieces to fit the context of use. That not only suggests that ideas in software engineering research need to be as modular as possible, but that the evidence we produce is modular as well, speaking to each part of an idea.

Titus Barik, a new researcher at Microsoft Research, presenting the most unique paper at the conference.

Titus Barik, inspired by the theme of the conference, wrote a unique empirical piece (“Expressions on the Nature and Significance of Programming and Play”), analyzing a large collection of Hacker News posts about programming and play. The paper presents a series of metaphors that programmers use to describe playful elements of programming, including programming as artistry, programming as a playground, programming as spontaneity. What I found most interesting about the work was that most of these ideas were isolated to programmers’ childhoods, where the programming they did in their adulthoods was decidedly non-playful. It made me wonder about the kinds of play that adult professionals build into their practices, and what role play has in fueling curiosity and motivation.

Justin Smith and his collaborators presented an interesting study of how spreadsheets facilitate but also break data pipelines by distributing the pipeline and data across an organization (“Spreadsheet Practices and Challenges in a Large Multinational Conglomerate”). This is a rare look into how the learnability of nearly ubiquitous programming platforms like spreadsheets pose organizational friction. The study made me wonder how we can reason about the tradeoffs between the learnability of programming languages and the broader implications of how they structure data and algorithms across people and teams.

A nice study of the Wordpress REST API (“A Study of the Effectiveness of Usage Examples in REST API Documentation“) found that its documentation is horrendous, and that this basically makes it impossible for developers to succeed at consuming RESTful services. It failed to indicate data types for inputs and outputs, failed to provide examples of request headers, methods, and bodies, and preconditions. This extends an increasingly diverse body of work on API usability and learnability, showing that documentation is often incomplete and unusable.

There was also a whole session on learning, bolstering the trend towards thinking about programming from a learning perspective. Chris Parnin presented his masters student Ian Drosos’s work on HappyFace, a system for measuring frustration through pain scales embedded in PythonTutor, finding that about 2% of users clicked on the pain scale, and that frustration was related mostly to errors. One of Caitlin Kelleher’s students Wint Yee Hnin presented a study of how students in middle school use help resources to learn, finding that during programming tasks, proactive help recommendations were accessed far more than documentation, tutorials, or other forms of assistance (this paper one the conference’s Best Paper award). An Yan, a UW School student that my former student Michael Lee and I collaborated with, presented our feasibility assessment of predicting dropout in coding tutorials. We found that features related to commitment were most predictive of staying engaged.

A few papers went beyond technical and tool issues in programming, investigating economic and social issues. Iftekhar Ahmed from Oregon State presented a paper, “A Case Study of Motivations for Corporate Contribution to FOSS,” finding that corporations fix a lot of bugs, but don’t report a lot of them. Chris Scaffidi presented an economic study of the effects of having spreadsheet programming expertise, finding a strong association between using spreadsheets and higher income, and programming and higher income (10% more income in particular), and that nearly all of the income differences are explained by self-reporting these skills at working with data computationally. Another interesting finding was that the number of developers in the United States hasn’t changed much since 10 years ago, still hovering at around 13 million people. Finally, Denae Ford, a rising star from NC State, leveraged ideas of social facilitation and peer parity to investigate women’s participation in Stack Overflow. She looked at signals of gender (primarily name), and investigated the effect of multiple women contributing to the same posts compared to mixed gender posts. Peer parity wasn’t related to reputation points or badges, but it was related to substantially sooner future contributions (almost a year earlier on average).

The conference dinner at The Bridge Club.

The conference banquet was at a cool event space, The Bridge Club, and was a wonderfully social event. I had great conversations about faculty hiring, job searches, post-doc positions, and the wide range of jobs available for Ph.D. students, following some of my recent writings on the subject. There was a strong representation from industry at the conference, including Google, IBM, and Microsoft Research, all interested in diverse issues related to APIs and programming environments.

While the community is small, it’s focus is still diffuse and evolving, and the rigor of the work only occasionally reaches the heights of more premier conferences such as ICSE, CHI, and ICER, VL/HCC still attracts a diverse and interdisciplinary group of senior researchers and aspiring students. As someone who loves to mentor, I always enjoy the stimulating conversations that a small conference like VL/HCC can offer that larger conferences can’t.