Date of Original Version
Abstract or Table of Contents
Abstract: "Software created by end users often lacks key quality attributes that professional programmers try to ensure through the use of abstraction. Yet to date, large-scale studies of end users have not examined end user software usage at a level which is sufficiently fine-grained to determine the extent to which they create abstractions. To address this, we deployed an online survey to Information Week subscribers to ask about not only software usage but also feature usage related to abstraction creation. Most respondents did create abstractions. Moreover, through factor analysis, we found that features fell into three clusters -- when users had a propensity to use one feature, then they also had a propensity to use other features in the same cluster. These clusters corresponded to macro features, linked data structure features, and imperative features. For each of the three factors, we created a scale and used it to categorize users into two bins -- those with a high propensity to use features associated with that scale, and those with a low propensity. Compared to users with a low propensity to use imperative features, users with a high propensity to use imperative features were more likely to report testing and documenting. Propensity to use linked structure features was less strongly related to these practices. These findings represent a step toward a more complete map of end users' skills."