Project summary - pair programming

xiaoxiao2021-03-06  44

In the project, we have implemented the programming and gain a certain success:

1. There is a good improvement in professional attitude. Due to the lack of single-in-one environment, two people's cooperation is more focused on work, and the professional attitude is the primary spirit of programmers, and the quality of the code is a key role. Employees talk about QQ, see news, not professional, work obligations, no matter what is wrong. Instead, the work change is active, and learning is also enthusiastic, and it is full of accomplishment. If there is a good corporate culture, for example, some cooperative sports, football, basketball, etc. can promote professional attitude improvement, and reach the effect of a group to drive individuals.

2, 1 1> 2. Confidential programming, every moment is a programmer in programming, how is efficiency, but is only 1 1> 1, but is it greater than 2? The answer is yes. First, a person's programming, average is difficult to achieve a work effect of 1> 80% × 1. However, when working with your companions, you must keep your thinking and have always concentrated, so you can reach 1> 80% × 1 personal effect, and there is a code review, so that the chance of error is reduced, reducing the generation of bugs. Also because two people's ideological collection can create many new programming algorithms or structural reuse. Therefore, it is sufficient to see the entire project, and this practice does greatly improve efficiency.

3, the software quality has a significant improvement.

1) The bad smell of the code is reduced. The first is the compliance of the code for the code. The bad habit of programming some people's coding (for example, not comment) is also integrated with each person's programming advantages. Second, the level of code, and grammar become beautiful. Some impatient code is not, some repeated code is not, the code to be reused, and the reconstructed code is refactored.

2) The program execution is improved. Conference programming is two people's mental labor, can learn from each other, study each other, so we are together, often try new coding methods to find the best way. And if there is an idea that two people feel feasible through communication, you can write test cases, and then write it; so, whether in solving problems, it is more better than before.

3) Reduce the generation of bugs. The generation of BUG is first in understanding, two people programming, need two people to understand, and two people should be discussed, forming consistent ideas, making it possible to reduce the risk of understanding errors. Secondly, the two programs are equivalent to having a code review, and the chances of error have been reduced. So the junction of the programming can effectively reduce the generation of bugs.

Of course, in the process of dealing with the programming, I have encountered some difficulties.

1. How to integrate the programming to the development process

Our team plus project managers and artists, a total of 6 people, can have 2 groups (excluding manager, art). The development process is as follows:

During the development phase description needs collection, the user uses an example model. Analyze function analysis, break down the system into modules, and define the functionality of the module; Design structural design, interface design, database design coding program. Including the writing test integration, function, black box test of white box test code.

So how to make a knot development, in those processes to develop teams?

1) We are in modules, ie a group of people responsible for design, and coding of a module.

2) Try to match the parallelism of the skills of character. And at different stages, targeted combinations can play a good role. For example, a rigorous, cautious person, with a person who likes to innovate. 3) Among the two, the status is equal, only experienced, no status is high

4) When working, the two must use a computer. There must be more than 4 hours a day, ie, work together for a long time.

5) The difficulty in the project is assigned to the tacit understanding and the experienced group is responsible.

6) Analysis of the design and signature by two people. (Must explain two people at the project seminar)

7) Before the encoding, the two must have a common idea.

8) write test before encoding, write to implement

9) The task is wrong or cannot be completed, and the two sides should be responsible for them.

10) When the two opinions are different, they can help solve the boss, it is best not to meet each other.

11) Each test, from the new combination of personnel, but cannot be responsible for testing the module you have written but write test documents.

12) Boss multi-point encouragement, the pair of people encourage each other, can have a common sense of honor, responsibility.

This is the situation in our project.

Module 1 Module 2 Module 3 ... Design

Zhang San, Li Si

Wang Wu, Wu Liu

Zhang San, Li Si

......

coding

Zhang San, Li Si

Wang Wu, Wu Liu

Zhang San, Li Si

......

First test

Zhang San, Wang Wu

Li Si, Wu Liu

Li Si, Wu Liu

......

Second test (regression test)

Wang Wu, Wu Liu

Zhang San, Li Si

Wang Wu, Wu Liu

......

After the project is completed, statistics are statistically compared to programming and non-commentary data.

Ending programming without using a knot on programming A project B project design

Two people 4.28 days / module (2 groups 15 days 7 modules)

One person 4.17 days / module (2 people 25 days 12 module) encoding

17.00K / two / day (1088K / 2 groups / 32 days)

8.16k / person / day (1372k / 4 people / 42 days) test

test

BUG number

13

61

Test day number

6 days

19 days

Number of regression

2 times

3 times

total

53 days

86 days

Note: The A project and the B project differ in size and complexity.

Analyze the previous table results

1) During the design phase, the pair programming is slower than the use of no use. Because, the two discussions are more, more ideas, more options, and more comprehensive design. Despite slow, the effect and quality are significantly better than the quality of the programming.

2) Coding phase, the pair programming is rapid programming than the use of no use. I want to be mainly reflected in two people to keep thinking, and the speed of encounter problems. And it is a gradually fusion process, the two fused, the coding is fast.

3) Test phase, the pair programming is fast programming than the use of no use. From the number of bugs, it is certain that the programming has improved the quality of the software. The test time is also shortened, thanks to the decrease in the number of bugs, the number of revised times is reduced and the number of regression is reduced.

2. The two people do not cooperate in the programming.

This problem is particularly annoying on the programming of the operation. It is very good to solve in the newcomer, and the employee in the company has reached a problem. I am used to singing, and there is always a person next to it. Also, in the character is not a problem, everyone is a certain cultural level, it is easy to fuse. But in life, it has reached a problem, such as some bad habits, individuality, etc. I have the following solutions 1) Creating united, harmonious, active environments, so that everyone will make more self-performance opportunities, so that everyone is full of confidence, brave, and courage to express their opinions.

2) More group activities, play basketball, have time to drink tea chat with you (never overtime). Do a collective movement, make it a common goal, and understand each other, pull into the distance. Chatting can easily joke, pointing out some bad habits.

3) A lot of encouragement rewards, so that they have a sense of honor, responsibility.

4) If you can't do it, just hurry! I have not used it).

3, the problem of two programming levels in the programming.

This is a lot of questions asking questions, I am very cattle, is it? Or or I am a newbie, can you pair? In fact, the connotation of programming is a sharing; a technology, experience, sharing of knowledge. By discussing, solving problems, to increase communication, exchange, to reduce misunderstanding and alienation. So this is not a problem, the problem is itself in sharing spirit, asking everyone to have no selfishness, ask everyone to help each other. Regardless of the rookie with rookie, or old birds and rookie, the old birds and old birds will not have problems. Although the problem of two programming levels is different, it is also the way to work differently. The two people are two people, more is innovation, one is a small, more is education, two rookies, it is more Singing, just like a horses of the river.

Finally, talk about the impact of company culture on programming. First of all, we must understand that it is not a company to make a pair programming. The pairing program is one of the core practices of XP, but many people are suspected of their attitudes and attitudes. I think the software company's corporate culture is a key factor on whether it can successfully perform the pairing program. If the following three questions are answering, you can try to implement a setup programming.

1. Is there a environment that can be able to speak freely, harmonious equality, relatively democratic?

2. Is there a atmosphere of mutual communication, mutual research, sharing code, sharing knowledge?

3. Is it committed to a common growth, open sharing learning organization?

转载请注明原文地址:https://www.9cbs.com/read-57342.html

New Post(0)