Identifying programmer ability using peer evaluation: an empirical investigation