Article Preview
Top1. Introduction
Computer programming is a human task and individual differences are known to be present in it and have been identified in previous research. For example, programmers differ in their performance (Sackman, Erikson & Grant, 1968), in the way they make the judgments and take the decisions they do (Feldt, Angelis, Torkar & Samuelsson, 2010). Programmers also differ in how they generate and comprehend source code and, for example, in their work habits, the order in which they implement a system’s components, and their use of programming tools. In other words, “each programmer will exhibit her or his own programming style (Cox & Fisher, 2009).”
The influence of experience on programming styles has long been observed. Vessey(1985) showed that novice programmers are less systematic than experts and tend to finish with a fast and wrong solution. Von Mayrhauser & Vans (1997) indicated that programmers with domain knowledge tend to work top-down and programmers with language expertise tend to work bottom-up. Ko & Uttl (2003) observed that systematic programmers are more experienced and have more positive attitude than non-systematic ones. Fisher, Cox & Zhao (2006) reported that females more often use bottom-up programming than males.
Cox & Fisher (2009) claimed that personality may affect programming styles. They exemplified that since bottom-up style is more concrete and, therefore, less ambiguous than top-down style, neurotic programmers tend to use bottom-up and not top-down. In the same paper they explained a pilot study on the influence of personality on programming styles but they did not report the results and to the extent we know, there are no empirical studies on the influence of personality on programming styles.
In the present study, we make a first attempt to fill this gap and investigate the influence of personality on programming styles. Our main objective is to find out which personality characteristics (do not) use which programming styles. To do so, we did an empirical study and surveyed personality characteristics and programming styles of 68 volunteer student programmers in software engineering at the University of Stuttgart.
There are various models for describing personality characteristics in software psychology (Cruz, da Silva, Monteiro, Santos & Dos Santos, 2011). In this paper we focus on the Five-Factor Model which describes personality by five main factors: Openness to Experience, Conscientiousness, Extraversion, Agreeableness and Emotional Stability. This is a comprehensive and well-established model (Digman 1990) and recently has been used frequently in software psychology works (Cruz, da Silva, Monteiro, Santos & Dos Santos, 2011).
To measure programming styles, we used indicators in the literature and devised our own questionnaire. In addition to personality factors and programming styles, we also asked programmers about academic performance, prior programming experience, and their attitude towards programming. On the collected data, we did correlational analyses to see which factors affect programming styles.
In this paper, we report our results on the links between investigated human factors and programming styles. After explaining the background and related work in section 2, we describe the design of the empirical study in section 3. Then we present the statistical findings in section 4 and conclude the paper in section 5.