How distribution affects the success of pair programming