Reference articles on history, science, culture and more
Encyclopedia

Team programming

Project management strategy

In software engineering, team programming is a project management strategy for coordinating task distribution in computer software development projects, which involves the assignment of two or more computer programmers to work collaboratively on an individual sub-task within a larger programming project. In general, the manner in which this term is used today refers to methods currently in vogue within the software development industry where multiple individuals work simultaneously on the same activity; in these systems, programmers are often grouped in pairs at the same computer workstation, one observing the other working on the software and alternating roles at time intervals.

01Traditional team management methods

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. Clearly, it is unreasonable to imagine that a single programmer could adequately complete all the required work for a complex system working entirely on their own within a viable timescale; and as development projects become more complex, specialised expertise becomes of paramount importance in aspects such as systems analysis, quality assurance, and technical challenges posed by individual components. Initially this tended to be an informal process, but with the rise of commercial software development as a viable industry, a more industrial and systematic approach became necessary.

Paper-oriented systems methodologies originally designed for undertaking governmental projects, such as the Structured Systems Analysis and Design Method (SSADM), assigned individual people to carry out individual tasks, and specified the role of designers as being clearly separate from that of the programmers in the waterfall software development model. This methodology also clearly separated each of the individual "life-cycle" stages through which a system development project progressed. The resulting "paper trail" for a systems development project could take so long to build that often parts of the analysis documentation, or sometimes its entirety, was out of date by the time of actual development, rendering them worse than useless.

French mob programming session
French mob programming session
Watch videos about Team programmingExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Team programming, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Images, from Wikimedia Commons:

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.