Scientists, engineers and technical managers often work in teams. The ability to work as part of a team contributes importantly to organizational productivity. Yet despite a strong tradition of theory and research on groups, little is known about the acquisition of teamwork skills, especially in technical domains. This research investigates how technical students and professionals learn teamwork in software development. A theoretical framework for examining individual and group change in coordination behavior and teamwork skills is developed. Then, studies of the development of teamwork skills in student software development teams are conducted. The research examines the effect of students' experience on changes in team structure and communication, and of how patterns of team coordination are associated with team performance and with individual performance and cognitive learning. The analysis is then extended to actual organizations with studies of changes in patterns of coordination and learning in software development teams in two organizations. Two field studies are conducted: (1) a cross-sectional study of how coordination patterns in teams are associated with cognitions and attitudes about teamwork, and (2) a longitudinal study of socialization for teamwork, examining the influence of experienced group members on changes in the coordination behaviors, cognitions, and attitudes of novices.