PAIR PROGRAMMING IN INFORMATION TECHNOLOGY

QUESTION

Write a 12-15 page (A4) report (not including the cover pages, Appendices and reference list)

The report should cover the following content:

• An Abstract

• Introduction

oBackground, motivation, roadmap for rest of report

• Description of the practice

oWhat aspects of software development does the practice address (e.g. qualityassurance)

oHow is the practice implemented –the process steps etc.

oSummary of claimed benefits/drawbacks

oHow are the benefits usually measured (metrics)?

• Research Question

• Research Method

oInclude description of SLR

oYour protocol in detail, including the selection criteria, search strings, data capture

form, changes made after the pilot review of the protocol.

• Summary of Results

oThe number of articles retrieved/selected

oThe summary of the data selected from each selected article

• Analysis of Results

oHow results show Strength of evidence

oAny limitations, anomalies

oWhat this means

• Recommendation and Conclusion

oWhat you did, what you found, what it means.

oLimitations of your research.

oSuggested future research

• Reflections on the use of a Systematic Literature Review as a research method

• References

• Bibliography

• Appendices

SOLUTION

 

 

 

 


1. Abstract

 

The pair programming is just like flying or piloting a plane. The pilots work together in coherence with each other single mindedly, approving the other partner’s thoughts, having trust and confidence over the decision made by the other partner. The partners should have a good understanding of each other. Similar is the case with pair programming where the partners sit together before a computer, and one of the partners is typing while the other one is giving his meaningful reviews of the code being written by the other partner.

 

2. Introduction

 

2.1 Background

 

You might have heard about a feedback system. What does a feedback analysis do? The feedback system meant to review a work done by a person or a group and gives them inputs which are on the basis of the critical analysis of their work. The feedback system continuously strives to provide an analysis which the person or the group can utilize to find their mistakes and improve the whole system. The feedback system should applied in such a way that a constructive review come out. It should be applied at different points of time as such the review should not call for the scrapping the whole system to create a new work. The pair programming is a similar system.

 

2.2 Overview and Roadmap

 

The pair programming calls for a work done by two programmers sitting together, to complete a workin a pair, such a waythat the one is one person is programming and the other person analyses the work done by the first person, finds the bugs in the work and alerts the first person of the same. With programming in pair, it becomes easier for the programmer to focus all his energy on the tactical aspects of the work. The strategy of the programming, the future outlay and the improvements are all done by the observer. The observer and the programmer would switch their role when required. Thus an efficient and better work comes out of the two people. There can be found many statistical evidences which prove the pair work has been very helpful to develop codes which are strategic and bug-free.

 

Even the programmers have felt more confident when assigned a work in pairs. They work in a continuous collaboration with each other, discussing the algorithm, making a design, coding and testing it as the work progresses. Many surveys have established the fact, that pair programming improves the productivity and the standards of the codes done by helping each other in a group. Even many programmers admit that they have enjoyed their jobs more than when asked to complete their work alone.

 

 

We have till now discussed the benefits of pair programming, while some of the people in the software industry would not agree to the concept of pair programming. They would point out that this reduces the work efficiency as the two people are assigned to do a single job. It is said that pair programming reduces the efficiency by 15%, but the same survey points out that pair programming ahs also reduced the errors and the bugs in the programs by 15%.

Thus was a brief introduction about pair programming, we would hereafter analyse the pros and cons of the software development strategy.

 

In this report we have takenthe path of systematic literature review we have gone through a process of reviewing the pair programming practice through the Systematic review of the literature which are available in online libraries. We have followed the iterative process of collecting the data and producing the review of the same .Then, we went through the process of answering the basic questions of interest and the summarised them altogather.

3. Description of the practice

3.1Terms and terminologies

 

In pair programming the person sitting at the computer, typing through the keyboard or plotting the design of software development is called the driver. While the other person who looks into the defects and guides the person on the computer through the coding aspects is called as Observer or the navigator. There are also other terms related to the time and the effort.

The term Solo programmer is used to identify the programmer who does the individual work, without any external help to complete his job.

 

The term elapsed time is used to denote the total time spent by the pair programming team to complete the coding work. The term effort is used to identify the total efforts applied by the programmers to complete the job.

 

3.2 Different aspects and objectives of Pair programming

 

There are different aspects of pair programming which need to be dealt with carrying out the programming job in pairs. These aspects can be also viewed as the objectives or the goals of pair programming. The major objectives of pair programming are:

 

1. The Productivity of the team work.

2. The efforts applied

3.  Identification of the bugs or defects.

4.Quality or the standards of the work.

5. Flow of knowledge

6.Working Conditions

7.  Application of efforts.

 

The above objectives of pair programming are basically the objectives which you can find in every team work. The team work become easier if the programmers know each other and have worked together in some different projects. In an industrial scenario, most of the programmers know each other due to their interaction they had in their previous projects. They know each other’s working styles and standards and this makes working together a fun. There is a previous knowledge of the other person’s behaviour and they work comfortably in the team.

This improves the productivity at the work which is our primary objective to fulfil. In a pair programming the coders share their understanding about the project and in this way their misconceptions are done away. The programmers would collaborate with each other, every possible knowledge they have regarding the project. This reduces the efforts of the each member of the team. This is not the advantage in case of Solo programming, where the every aspect of the project or the module is taken care by a single individual.   The task there in solo programming becomes difficult and the programmers become stressed due to the work. While opposite is the case with pair programming where the programmers would discuss with each other about every aspect of programming. The driver is only concerned about the programming techniques drives freely where the bugs and the design aspects are caught by the navigator or observer.

3.3 Advantages of pair Programming

 

There are some obvious advantages of Pair programming which are discussed in this part of the report. In pair programming the team mates always strive to make up to the expectations of each other. This has a certain bearing on the minds of each of the partners, which makes partners to increase the efforts and hence increase the productivity of the team.

Sometimes there may be certain problems which require a thought process; in pair programming the partners have the advantage of thinking together, discussing the best outputs, taking the advantage of each others experiences as well. There builds up a confidence between the partners about the quality work done by each other. This again reduces the time and the effort required in a particular job. They share a certain level of trust on each other. This improves the working conditions and eases the work pressure.

 

The best advantage in pair programming is the effort saved in post-debugging the work done by pair programming. As has been pointed out earlier also, the observer is continuously takes care of the programming methods, algorithms, strategy and the standard practices used by the driver. Thus, saves the time and effort in re-doing the work again. The reviews may lift the standards of the work.

 

The quality of the work improves as result of the lesser number of bugs in the codes. The client gets a better solution; design issues are also resolved in a better way. The coding technologies today not only emphasize on the problem-solving techniques but also on the comprehensibility, atomicity and the extensibility of the code. A solo programmer cannot provide these benefits as it would require a lot of effort and time. Thus, gives us the advantage of the pair programming.

Another benefit of a pair programming is that if new programmer is hired and inducted with an old employee as a team. The new person would learn much faster than sitting on his desk reading the documents about a project and the standards of the company while coding. Thus, improves the productivity of the new person, by utilising pair programming.

3.4 The Disadvantages of Pair Programming

 

It’s true that in pair programming where one partner is “watching over the shoulder” there are less chances of being caught with defects and bugs. The pre-delivery bugs and the defects are lesser but the fact is that the chances of post-delivery bugs increase. This is because of the increased dependency on the peer review increases the chances of bugs coming into picture.

The pair programming is attribute which is like a social nature and it takes time for a new person in such a system to learn the skills of pair, so it is already evident from the fact that Pair programming is less productive in short run.

Some even feel that doing the practice of pair programming, causes the underutilization of the resources. It has been also felt that complex programming did not favor the practicing pair programming.

 

 

 

3.5 Summary of claimed Benefits and Disadvantages

 

According to Williams and Kessler, pair programming is an intensive programming collaboration where two programmers design, code and test software collaboratively at one computer. In contrast to the Solo programming the pair programming gives a code with fewer defects and also promises a better design. The programmers who have worked alone for long would be sceptical to the idea of pair programming and resist it. However, the pair programming increases the chances of sharing of knowledge and makes the task of programming enjoyable.

 

The increased flow of knowledge among the team members decreases the chances of the teammates to be highly critical of each others work. The pair programming allows people to understand the project work easily and with little effort as compared to the solo programming.

 

4.Systematic Review Method

4.1 Introduction

In Oder to find out the various research options and objectives available to us to get out the possible results which give a coherent andclear understanding of the topic in the question we followed the method of Systematic Review Method. The systematic review method is a process of accessing the materials available in the various libraries with extensive and comprehensible strategies which might be based on several stages to produce a clear result. The systematic review method follows the following method, which we followed iteratively:

  • Identify the various parameters which we are looking for the report, on the basis of which we prepare a report of the review process.
  • Formulate the questions for the research which would yield the results for the review.
  • The identification of the resources and the literature for the review.
  • Collecting the relevant data for our study.
  • Evidence synthesis and write- up.
  • Interpretation of the results

 

This process is followed iteratively to reach to the results of the question formulated. This process has been

Shown in a flowchart below:

 

Figure:1 Shows the iterative method of literature review.

 

 

4.2 Research Questions

 

1. How strong isthe empirical evidence for the success of Pair programming?

2. What are ways to achieve the success of Pair Programming?

4.3 Identifying the Relevant literature

In order to find out the relevant literature for the study we created the appropriate search keywords to select the comprehensible literature from the online libraries.

We followed the following strategy to get the results:

  1. The important terms which we needed to find out in the research question
  2. The list of keywords were prepared
  3. we searched the keywords with the relevant substitutes and the appropriate alternative
  4. Using mix up of the keywords with the Boolean equivalents of the “And” and Or operations.

We then used the following libraries to help us in the process:

  1. ACM Digital library
  2. Current Contents
  3. IEEExplore
  4. Google Scholar
  5. Direct Science

4.4 Selection of the Primary Studies

We studied the population of the students who were interested in the pair programming. We did not include in our work the studies or the reports which were not based on the empirical evidences and the papers suggesting the development methods of Agile/XP Computing.

4.5 Quality Assessment and data Extraction

In producing the results were equally focussed about the quality of results involved in the research works. Based on the studies of the research works available in the online libraries we built up our review document and produced the data extracted from them.

5. Finding Answers to the research questions

5.1 Empirical Evidences for the Success of Pair programming

 

The Extreme Programming (XP) has got a phenomenal success from using the concept of pair programming. The programmers at Ford motors were trying to build vehicle cost and profit system and had spent four unsuccessful years of trying the Waterfall model. But the team from XP completed this project in less than a year.

XP believes that the best way to write a code is pair the two programmers and let them seat side by side a computer, pushing the keyboard and monitor back and forth, both being able to concentrate on a piece of code. This is an art which has to be developed with time. There can be many obstacles in the path of contributing to the success of pair programming. Like if the experience of one partner is more than the other, there could be an awkward feeling at first, because one might be contributing more than the other. Still the practice should be continued, as it takes long to learn the skills of working as pair programmers.

 

5.2Achieving Pair Programming

 

The real question goes as how are we going to make two different programmers a pair of successful and efficient pair programmer. The answer lies in the soul of the practises of Pair Programming. The success of pair programming lies on the attitude of the partners involved in teaming up for the project. The basic features of which are outlined as below:

  • Sharing: The programmers involved in pair programming create a single design, code, algorithm etc. Thus its upon the programmers to share everything. They should be working as a coherent, intelligent bodies working with a particular vision or goal in mind. They should work as if doing things with single mind. They should understand each other’s point of view. They should be cooperative; while one is doing the programs the other one is reviewing the same. There should be no blaming on each other, saying that there is a bug in your program, rather accepting a bug as a fault of each other.

 

  • Active participation: While one partner is typing the code, the other person should be contributing to the design. He should be taking part in reviewing the program with an active interest. He should be as much interested in the partner typing the code. He should look into the program and think how the particular line code would lead to the solution and would there be some better way of writing the code. He should be continuously letting the driver know about his view on the way the program is going on.

 

  • No blaming: The partners should not be involved in the blame game of shifting the blame of a particular defect on the other partner. They should take the responsibilities equally.

 

  • Constructive criticism: Thepartners should not be hyper critical of each other. They should help out each other with a positive focus on improving the code. There should be a trust and confidence among the partners.

 

5. Conclusion and Future works

The pair programming is a practice of pairing two people for working on a code such that one of the actors is writing the code or putting a design while the other one is “watching over the shoulder” curiously guessing where is the line of code going, putting his thoughts before his partner to do away any bugs and defects which come up into the code. This is a practice which has resulted in many success stories, but requires a patience development of such a skill.

The practice of doing pair programming requires lot of time and hence is successful in scenarios in which long term development is required.

Our future works should involves finding out the basic evidences which can provide unambiguous report of how the pair programming methods help in producing the better results and the scenarios where the pair programming can be helpful as the pair programming had been found to be unsuccessful in the short run.

References

[1] All I Really Need to Know about Pair Programming I Learned In Kindergarten by Laurie Williams and Robert Kessler

[2] Anderson, A., Beattie, Ralph, Beck, Kent et al. (1998). Chrysler Goes to “Extremes”. Distributed Computing. October 1998: 24-28.

[3] Extreme Computing XP http://www.extremeprogramming.org/rules/pair.html

[4] The Art of Agile Development: Pair Programming by J. Shore

<jamesshore.com/Agile-Book/pair_programming.html>

[5] The Costs and the benefits of pair programming.

jacques.dsc.ufcg.edu.br/cursos/map/recursos/XPSardinia.pdf

[6]Agile Development Methods:

www.versionone.com/Agile101/Pair_Programming.aspUnited States

[7] Pair Programming (Pivotal Labs) pivotallabs.com/how/pair_programming

[8] What is Extreme Programming? xprogramming.com/book/whatisxp

[9] Pair Programming agilefaq.wordpress.com/category/pair-programming

[10] Doing Pair Programming Tests right www.higherorderlogic.com/…/doing-pair-programming-tests-right/

[11] Evaluating Pair programming with complexity Tests

ieeexplore.ieee.org/iel5/32/4052581/04052584.pdf?arnumber

[12]DeMarco, T., Lister, Timothy (1977). Peopleware. New York, Dorset House Publishers.

 

[13]Fulghum, R. (1988). All I Really Need to Know I Learned in Kindergarten. New York, Villard Books.

[14] Hargrove, R. (1998). Mastering the Art of Creative Collaboration, McGraw-Hill.

 

[15] Kraut, R. E., Streeter, Lynn A. (1995). “Coordination in Software Development.” Communications of the ACM March 1995(March 1995): 69-81.

 

[16] Nosek, J. T. (1998). The Case for Collaborative Programming. Communications of the ACM. March 1998: 105-108.

 

[17]Weinberg, G. M. (1998). The Psychology of Computer Programming Silver Anniversary Edition. New York, Dorset House Publishing.

 

[18] Weinberg, G. M. (1999). Egoless Programming. IEEE Software. January/February: 118-120.

 

[19] Williams, L. (1999). Pair Programming Questionnaire, from

http:\\limes.cs.utah.edu/questionnaire/questionnaire.htm. 1999.

KG01

“The presented piece of writing is a good example how the academic paper should be written. However, the text can’t be used as a part of your own and submitted to your professor – it will be considered as plagiarism. But you can order it from our service and receive complete high-quality custom paper.  Our service offers “Information technology”  essay sample that was written by professional writer. If you like one, you have an opportunity to buy a similar paper. Any of the academic papers will be written from scratch, according to all customers’ specifications, expectations and highest standards.”

Please  Click on the  below links to Chat Now  or fill the Order Form !
order-now-new                           chat-new (1)