In [[software engineering]], '''team programming''' is a method of managing [[software project|computer software]] projects[[Software development|development]] projects, which involves the assignment of two or more programmers to work collaboratively on an individual sub-task within thata larger programming project. Although traditional software development has nearly always involved multiple [[computer programmers|programmers]] working on separate parts of a computer system for any project of significant scope and scale -- a method of [[division of labour]] -- in techniques such as [[pair programming]] multiple programmers work collaboratively on the same piece of [[source code]] as opposed to being individually responsible for individual tasks.
This technique is frequently used in newer programming methodologies that are focused around [[object-oriented]] programming techniques, such as the [[Rational Unified Process]] and [[Extreme Programming]] (acronym "XP"), often in combination with design documentation methods such as [[Unified Modelling Language]] (UML).