Pair programming: Difference between revisions

Content deleted Content added
m some ref cleanup tags should be AFTER </ref>, replaced: {{self-published inline|date=April 2016}}</ref> → </ref>{{self-published inline|date=April 2016}}
adding an image
Line 1:
{{short description|Collaborative technique for software development}}
[[File:Wocintech (microsoft) - 61 (25926639341).jpg|thumb|Pair programming]]
[[File:Pair programming 1.jpg|thumb|Two co-workers pair programming, 2007|upright=1.5]]'''Pair programming''' is an [[agile software development]] technique in which two [[computer programmer|programmers]] work together at one workstation. One, the ''driver'', writes [[Source code|code]] while the other, the ''observer'' or ''navigator'',<ref>{{cite conference |last1=Williams |first1=Laurie|author1-link=Laurie Williams (software engineer) |title=Integrating pair programming into a software development process |pages=27–36 |doi=10.1109/CSEE.2001.913816 |conference=14th Conference on Software Engineering Education and Training |date=February 19–20, 2001 |___location=Charlotte |isbn=0-7695-1059-0 |quote=One of the programmers, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects, and also thinks strategically about the direction of the work.}}</ref> [[code review|reviews]] each line of code as it is typed in. The two programmers switch roles frequently.
 
While reviewing, the observer also considers the "strategic" direction of the work, coming up with ideas for improvements and likely future problems to address. This is intended to free the driver to focus all of their attention on the "tactical" aspects of completing the current task, using the observer as a safety net and guide.
Line 25 ⟶ 26:
 
==Team-building and communication==
[[File:Pair programming 1.jpg|thumb|Two co-workers pair programming, 2007]]
Pair programming allows team members to share quickly, making them less likely to have agendas hidden from each other. This helps pair programmers learn to communicate more easily. "This raises the communication bandwidth and frequency within the project, increasing overall information flow within the team."<ref name="costs-benefits"/>