A design and development practice in which two or more people participate in one development effort, sharing a workstation or other medium presenting some view of the product. Roles are often exchanged and every member focuses on finding the best realization of the product objective.