当前位置:网站首页>Why do many programmers hate pair programming?
Why do many programmers hate pair programming?
2022-07-29 03:35:00 【Luo Zhaocheng CSDN】
Pair programming is a very popular agile development method in foreign countries , today Google The top two programmers Jeff Dean and Sanjay Ghemawat It's the people who are quite talked about in the world of pair programming . however , Some people like it, some people hate it , The author of this article Tylor Borgeson As a practitioner of pair programming , It analyzes its good and bad for us , And how to implement pair programming to better suit the current situation of the team .
author | Tylor Borgeson, Authorized by author
translator | Luo Zhao Cheng
original text | What they don’t say about Pair Programming
This article was first published in CSDN WeChat (ID:CSDNnews)
1. Write it at the front
This is me 「 Mainstream software development practices 」 The fifth part of the series , In this series of articles , My plan includes a series of methods for software engineers to improve software development by improving development processes and practices . I was there ThoughtWorks As a software consultant , Now I work in a large retail company in Germany , These methods have been studied and tested in my career .
Pair programming , Some people like , Some people hate , Some people have never tried , Some people use it every day .
Those who like pair programming think , Pair programming is conducive to the knowledge sharing of the team , Break the knowledge island among members . On the other hand , Pair programming (PP) It can promote the previous collaboration of the team , It can also speed up the integration of new members , Create value more quickly . There are also pair programming and CI/CD And trunk development can be well integrated .
But in the eyes of another group of people who don't like pair programming , But there is another view , They think that , Pairing programming will reduce efficiency , Especially when the experience gap between the two developers is large . They also think that , This way of working will make developers unable to concentrate . Everyone works in a different way , Work on the same computer , With great challenges .
I have discussed with these people respectively , But what I found was that , Those important issues in pair programming have not received much attention .
2. Double-edged sword
Pair programming is a double-edged sword , There are advantages and disadvantages .
Pair programming cannot solve all problems , But compared with other methods , It is an effective way to reduce the difficulty of work .
According to several correct postures of pair programming ( pilot - Driver mode , Ping Pong mode ), You can use pair programming to make the process very smooth .
If it's not the navigator - Driver mode , For people without keyboard and mouse , It is likely to become the real one in this pair “ Passenger ”.
In the team , When pairing with other members to complete challenging tasks , It can expand the knowledge sharing of the whole team , Enhance the collaboration ability of the whole team .
If every paired person in the team , It takes the same time to work , These will put pressure on the whole team , Cause incompatible pairing .
In pair programming , Take regular breaks , Tomato clock is recommended ( Take a break after concentrating on your work at the designated time ) Technology , That is, you can have a good rest , And can program efficiently .
Allow other colleagues to disturb , Use both members to disengage “ Work ”.
Pair programming for every task may bring pressure to the team .
If only for “ complex ” Tasks using pair programming , This will make most tasks look “ Not complicated ”.
3. Etiquette
We need to change from working alone with headphones to cooperating with others , This is a change in the way we work , Very difficult , This is also the most challenging part of pair programming .
essentially , It's the same with you from living alone to living with a roommate . You have to spend time learning how to make your teammates work efficiently , How to make him feel comfortable working with you . Of course , Your teammates will do the same thing . under these circumstances , For everything , May need you to make concessions , You need to compromise .
When you live with your roommate , There are some things you need to do , If you pay the rent on time , Cleaning, etc . In pair programming , Is the same , There are some rules that we need to follow :
Members in pair programming need to act in unison . Whatever you do , Make sure your teammates can fully understand ;
For mouse and keyboard control , You and your teammates should divide the time equally , Control half the time ;
Patience, , Strong patience ;
Have empathy , And trust your teammates . I believe he can handle the problem well with his ability and experience ;
Embrace the idea of a partner ;
Desire knowledge and happiness .
4. Pair programming is difficult
When working alone , At the end of the day , Take off the headset , It is completely different from the result of pair programming . Participate in one-day pair programming , occasionally , I'm really tired . But few people have discussed this part .
Pairing programming has many challenges , It takes us a lot of effort , He is like other skills . This is not a natural thing , We need to practice constantly .
Pair programming makes people feel like someone is staring at them at work .
Pair programming may rekindle programmers “ Impostor syndrome ”, Many things they can do, but they feel they can't do .
When there is a problem , You should turn your thoughts into words that others can understand , It's a very difficult task , It's like an exam .
For developers , about IDE The shortcut keys of may have different settings , Not only that , There are also differences in many tools . These differences will make developers , I feel very uncomfortable in the development process .
Ironically , Make programmers feel more comfortable in pair programming , We need to finish the work , Or when the tomato clock breaks , Communicate more , Mutual feedback . But most programmers are silent , And very introverted , The feedback and communication between them is not easy .
In short , The whole thing is not easy .
5. summary
The advantages of pair programming cannot be denied , It's well documented . But the problems of pair programming are rarely mentioned , But these are also very important .
Solemnly declare , I am a practitioner of pair programming . For me , Like a lot of people , We all evaluate the benefits of the challenge , Judge whether it is worth your efforts . But I also believe in , Like other challenges , When you're ready , When you know what you should do , Things will be easy .
We often talk about various challenges , We can use our wisdom to find a solution . We can benefit from it and reduce the challenges posed by the problems . for instance , We don't need to pair program every task , We can perform pair programming intermittently , Better suit your team's current situation .
Last , Share some excellent resources of pair programming :
https://martinfowler.com/articles/on-pair-programming.html
https://www.agilealliance.org/glossary/pairing/
https://stackify.com/pair-programming-advantages/
6. Series reading
1. Why continuous integration and deployment are important in development ?
2. Overestimated Test Driven Development ?
3. Why are programmers so “ Dislike ” Backbone development mode ?
4. Why don't programmers make blind efforts ?
边栏推荐
- (nowcoder22529C)dinner(容斥原理+排列组合)
- 力扣每日一题-第44天-205. 同构字符串
- Excel splicing database statement
- I.MX6U-驱动开发-2-LED驱动
- (newcoder 15079) irrelevant (inclusion exclusion principle)
- [technology 1]
- (newcoder 15079)无关(容斥原理)
- 机器学习【Numpy】
- Introduction to static routing and dynamic routing protocols OSPF and rip and static routing configuration commands
- mysql的timestamp存在的时区问题怎么解决
猜你喜欢

Simple code implementation of decision tree

Whole process record of yolov3 target detection

Multi level wavelet CNN for image restoration

Rdkit I: using rdkit to screen the structural characteristics of chemical small molecules

How to deploy sentinel cluster of redis

Realize multi-level linkage through recursion

(codeforce547) c-mike and foam
![LeetCode 1331 数组序号转换[Map] HERODING的LeetCode之路](/img/be/d429d0c437dc5ed7cb4448e223a83a.png)
LeetCode 1331 数组序号转换[Map] HERODING的LeetCode之路

CUDA GDB prompt: /tmp/tmpxft**** cudafe1.stub. c: No such file or directory.

(nowcoder22529c) diner (inclusion exclusion principle + permutation and combination)
随机推荐
Arm architecture and neural network
2 neural network toolbox NN
通过递归实现多级联动
后缀自动机(sam)板子 from jly
深入C语言(1)——操作符与表达式
Deep into C language (3) -- input and output stream of C
Makefile details
I.MX6U-驱动开发-2-LED驱动
Simple understanding of Poe and UPS Technology
Easy to use remote sensing data set download website~~~
HDU multi School Game 2 1011 DOS card
Introduction to JVM foundation I (memory structure)
腾讯云使用pem登录
Tencent cloud logs in with PEM
C language programming | exchange binary odd and even bits (macro Implementation)
机器学习【Numpy】
(2022杭电多校三)1002-Boss Rush(状压DP+二分)
Rdkit II: use rdkit screening to screen 2D pharmacophores of chemical small molecules
Rdkit: introduce smiles code, smart code and Morgan fingerprint (ECFP)
Environment configuration stepping pit during colab use