Slide 1

Slide 1 text

SE 2017 Hannover, 2017-02-22 Stefan Wagner Links between the personalities, styles and performance in computer programming

Slide 2

Slide 2 text

You can copy, share and change, film and photograph, blog, live-blog and tweet this presentation given that you attribute it to its author and respect the rights and licenses of its parts. based on slides by @SMEasterbrook und @ethanwhite

Slide 3

Slide 3 text

Developers differ in their performance, decision making and working habits.

Slide 4

Slide 4 text

Programmers use different programming styles.

Slide 5

Slide 5 text

There is a significant relation between personalities of programmers and their programming styles.

Slide 6

Slide 6 text

Idea and Design

Slide 7

Slide 7 text

The Big Five Personality Test 5 Closed-Minded Open to New Experiences Disorganised Conscientious Introverted Extraverted Disagreeable Agreeable Calm/Relaxed Nervous / High-Strung Openness to Experience Conscientiousness Extraversion Agreeableness Emotional Stability

Slide 8

Slide 8 text

Top-down & depth-first Top-down & breadth-first Bottom-up & depth-first Bottom-up & breadth-first Programming Styles

Slide 9

Slide 9 text

Programming Style: Top-Down & Depth-First find hypothesis modify model find hypothesis modify model modify code modify code test code test code mental model code run

Slide 10

Slide 10 text

Programming Style: Bottom-Up & Breadth-First mental model code run find hypothesis find hypothesis modify code test code modify model

Slide 11

Slide 11 text

Cox and Fisher’s Theory Task Situation Individual internal external Influence Programming Styles like personality like experience Programming Context’s Factors

Slide 12

Slide 12 text

Research Questions RQ 1: Which human factors affect certain programming styles? RQ 2: Which factors, human factors and programming styles affect performance?

Slide 13

Slide 13 text

Study Design Age Gender Programming Experience Attitude towards Programming Personality Factors Human Factors Programming Styles ? ? Programming Performance Programmer Quality (self-assessed) Project and Code Quality (Grade) Code Quality (Static Analysis Warnings)

Slide 14

Slide 14 text

Data Collection and Analysis Code Repository Developers Correlational and Regression Analysis Questionnaire Automatic Extraction

Slide 15

Slide 15 text

Human Factors and Styles

Slide 16

Slide 16 text

Programmers with more programming experience used the bottom-up style.

Slide 17

Slide 17 text

High Openness to Experience programmers used the breadth-first style more often than low Openness to Experience Programmers.

Slide 18

Slide 18 text

High Conscientiousness programmers used the depth-first style more often than Low Conscientiousness programmers.

Slide 19

Slide 19 text

Programmers with a positive attitude towards programming used depth-first, breadth-first and bottom-up styles.

Slide 20

Slide 20 text

Personality, Styles and Performance

Slide 21

Slide 21 text

Programmers who tended to use depth-first more often were better programmers than ones who did not tend to use depth-first.

Slide 22

Slide 22 text

Significant Correlations (All Positive) Programming Performance Number of Programming Languages (Experience) Age Academic Achievement Depth-First Programming Style Conscientiousness (Personality) Years at University (Experience) Large Revisions (Programming Style)

Slide 23

Slide 23 text

Limitations • Self-developed questionnaire to operationalise some styles • Self-assessed survey • Mainly students in second year of studies • Volunteer bias • Correlations do not need to be cause/effect

Slide 24

Slide 24 text

There is a significant relation between personalities of programmers and their programming styles.

Slide 25

Slide 25 text

Prof. Dr. Stefan Wagner e-mail [email protected] phone +49 (0) 711 685-88455 WWW www.iste.uni-stuttgart.de/se Twitter prof_wagnerst ORCID 0000-0002-5256-8429 arXiv http://arxiv.org/a/wagner_s_1 Institute of Software Technology Slides are available at www.stefan-wagner.biz. Joint work with Zahra Karimi, Ahmad Baraani-Dastjerdi, Nasser Ghasem-Aghaee

Slide 26

Slide 26 text

Pictures Used in this Slide Deck Programmer writing code with Unit Tests by Joonspoon under CC BY-SA 4.0 (https://commons.wikimedia.org/ wiki/File:Programmer_writing_code_with_Unit_Tests.jpg) Happy Programmers by Jesper Ronn-Jensen (https://flic.kr/p/oi9kA) Computer Work Hero (https://www.jisc.ac.uk/sites/default/files/computer-work-hero.jpg) Source code security plugin by Christiaan Colen under CC BY-SA 2.0 (https://www.flickr.com/photos/ 132889348@N07/20013034943)