Specialization, Generalization, and Effectiveness in Software Teams: Clinical Metaphors