Influence of Personality on Programming Styles an Empirical Study

Influence of Personality on Programming Styles an Empirical Study

Zahra Karimi (University of Isfahan, Iran), Ahmad Baraani-Dastjerdi (University of Isfahan, Isfahan, Iran & Sheikhbahaee University, Iran), Nasser Ghasem-Aghaee (University of Isfahan, Iran & Sheikhbahaee University, Iran) and Stefan Wagner (University of Stuttgart, Germany)
DOI: 10.4018/978-1-5225-0159-6.ch060
OnDemand PDF Download:
$37.50

Abstract

Each programmer tend to his or her own style in programming and human factors may explain these differences in style which has considerable influence on tooling, processes and productivity. The objective of this paper is to study the influence of a previously un-investigated factor, personality, on programming styles. The authors did a survey study on 68 programmers in the University of Stuttgart. Programming experience, attitude towards programming, five personality factors, and programming styles were measured via self-assessed survey. The authors did statistical analysis to investigate links between human factors and programming styles. They found that programming experience is the most influential factor in programming styles but personality is more evident in different programming styles. They conclude that programming styles are a matter of personal preferences and help reveal the influence of personality in programming. Further research is needed to explore new programming styles, measure them and investigate the influence of personality on them.
Chapter Preview
Top

1. 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.

Complete Chapter List

Search this Book:
Reset