


Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The concept of pair programming, a collaborative software development technique where two programmers work together on one computer. The advantages and disadvantages of this approach, including increased productivity, higher code quality, and team efficiency. It also addresses potential challenges, such as personal conflicts and time constraints.
Typology: Papers
1 / 4
This page cannot be seen from the preview
Don't miss anything!



Honda, Jason March 27, 2006 Pair Programming Pair programming is the idea where a team of two programmers have one computer between the two of them. This is an idea that came into light mostly after it was introduced with eXtreme Programming Software Design Methodology. It requires one programmer to sit at the computer and be the “driver,” and the other to sit next to them as the “navigator” helping out the driver. The two will switch periodically usually at half hour to one hour intervals or when one gets tired. Pair programming has many advantages and disadvantages. The disadvantages of programming are many but have little to do with actual performance. Since the pair is working so closely together, personal and professional conflicts can brew up quite a storm. Differences in ideas, can lead to better code, or with more stubborn people can bring the programming to a standstill. A lot of the problems are due to stubbornness or inflexibility of the programmers. They may not like working with other people which is a problem, or they may have different schedules that would be troublesome. This could potentially slow down the team of programmers as a team member might be less than cooperative. This would only be a problem for a short time as that person is taken off the team, or their habits are changed to work better in a team environment. Pairs or programmers must be a good team, where they are all knowledgeable in all things, yet specialized so that they can build off each other. Having an extremely knowledgeable person and a beginner would not be productive, as the beginner would have no critiques to give, and would slow the process down when they are programming.
They could also learn, which would be an advantage to be discussed later on in this paper. Problems also happen when someone or everyone in the group does not like to pair program. Quality of work can suffer when this happens. They may rush through work just to be done so they don’t have to pair program anymore, or they might work on their own at home or some other time so that when it comes time to pair program, they are already done. This stops all the advantages that pair programming is meant to introduce when this happens. In this case, pair programming is not working and is not going to be better than the standard way of programming. In the way pair programming is meant to be done this does not happen and would not be a disadvantage though. This of course most likely occurs in a small number of cases as studies have shown that most people that have tried pair programming have liked it. One of the major critiques is time. Where once two programmers could have worked simultaneously on their own; they can no longer do so with only one machine. In theory this would slow down the process by two times as much. Some of the advantages to be discussed will show why this is not the case. Most of the disadvantages, go away with time working in pairs, or are not applicable to a team that works well with pair programming. If you have a lot of these disadvantages and cannot rectify them, pair programming may not be the best solution. There are many advantages to pair programming. One of them is increased productivity. Before, working on your own computer, you might work for a little while and then take a break. In this setting that would not happen. When you are tired, you just switch places, so that programming is always occurring. This increases productivity
Many other advantages are also to be had from pair programming. More people are involved in all of the software so global knowledge goes up. Disruptions are less likely to occur with a pair than with only one programmer. The navigator can handle calls or other interruptions while the other keeps programming with minimal losses of productivity, compared to a total loss otherwise. ncreased levels of competence also come with pair programming. Working with other people cause programmers to be more honest about their abilities and could get rid of potentially weak team members. Working with other team members in this setting also teaches you a lot about things that you may not know, but your partner does. This will increase the overall level of knowledge of the group, which is a major advantage in creating quality work fast. The advantages, I believe, outweigh the disadvantages by a lot. At first glance you would think total work completed would go down a lot, but in reality it goes down only a little bit when you factor in less wasted time. Quality of work also goes way up, which cuts down on time later, fixing things and debugging. As a result pair programming wins. I also think that pair programming is not for all situations. All situations and groups of people may not be more productive then two individual programmers. If the situation is possible, it will work better though, cut down time, and produce much greater quality work. Pair programming has its disadvantages just like any way of working but also has a lot more advantages than other ways, making it a very attractive and productive way of programming.