The effect of programming team structures on programming tasks | Synapse