Team programming
In software engineering, team programming is a method of managing computer software projects which involves the assignment of two or more programmers to work collaboratively on an individual sub-task within that programming project. Although traditional software development has nearly always involved multiple 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.
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).
Pair programming
In "pair programming", responsibility for the resulting product is equally shared between two programmers who work on their assigned sub-task together. Benefits of this approach include the ability for deficiencies in knowledge and ability in specific areas to be compensated for by the other programmer; in addition, the shared responsibility is thought to increase incentives for meeting project deadlines and quality targets.