Identifying Programmer Ability Using Peer Evaluation: An Exploratory Study Jeffrey C. Carver, University of Alabama Lorin Hochstein, USC Information Sciences Institute Jason Oslin, University of Alabama The Importance of Categorizing Programmer Ability • In Industry • In Research • In Teaching 2 How We Measure Ability • Professional vs. Novice • Years of Experience • Elaborate Evaluations 3 Is There A Better Way? • Peer evaluation • “We know a good programmer when we see one” • Subjective judgment as a predictor 4 Outline • Study Design • Data Analysis • Conclusions • Future Work 5 Our Study • Goal – Characterize peer assessment of programmer ability from the point of view of a researcher in the context of an undergraduate computer science course • Hypotheses – H1: Developers are able to accurately predict the programming ability of their peers – H2: Low-performers tend to over-estimate their ability 6 Test Environment Senior Level Programming Languages Course – Five individual assignments – Graded by the unbiased instructor – Student participation had no effect on grade 7 Data Collected • Subjective Data – Participant evaluation of self – Participant evaluation of peers – Post-study questionnaire • Objective Data – Grades on projects – “True” measure for this study 8 Collecting Subjective Data Sample data collection form 9 Coding the Grades • • • • • A = 5 Top 20% B=4 C=3 D=2 E = 1 Bottom 20% 10 Coding the Grades 11 A Look at the Data Set Ratees Raters 12 A Look at the Data Set 13 Evaluating Hypothesis 1 Actual Grade Developers are able to accurately predict the programming ability of their peers Mode Of Peer Ratings 14 Difference Between Mode and Actual Additional Observation Actual Grade 15 Evaluating Hypothesis 2 Low-performers tend to over-estimate their ability Actual Grade Self Rating 16 A Qualitative Analysis • Rating oneself • Compare my self perception to my peers’ perception of my ability • Confidence in rating peers 17 Threats to Validity • Construct – Are grades a valid indicator of ‘true’ ability? – Ceiling effect displayed by skew of grades? – Are we evaluating enough skill sets involved in software development? • Low number of ratings • What happens when we move beyond from classrooms to industry? 18 Future and Ongoing Work • Running the study again • Goals of future work – Characterize high-performers – Understand programming ability – Improve competent programmers 19