当前位置:网站首页>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 ?
边栏推荐
- How to deploy sentinel cluster of redis
- C language programming | exchange binary odd and even bits (macro Implementation)
- How to judge stun protocol
- Naive Bayes -- continuous data
- Easy to use remote sensing data set download website~~~
- Various minor problems of jupyter notebook, configuration environment, code completion, remote connection, etc
- C obtains JSON format data asynchronously from the web address
- (2022杭电多校三)1011-Link is as bear(思维+线性基)
- Environment configuration stepping pit during colab use
- Does domestic ERP have a chance to beat sap?
猜你喜欢

VISO fast rendering convolution block

Various minor problems of jupyter notebook, configuration environment, code completion, remote connection, etc

Mathematical modeling -- analytic hierarchy process model

Instance setup flask service (simple version)

Redis之sentinel哨兵集群怎么部署

Pp-yoloe details

Example analysis of while, repeat and loop loops in MySQL process control

How to deploy sentinel cluster of redis

(2022 Hangdian multi school III) 1011 link is as bear (thinking + linear basis)

容斥原理
随机推荐
How to deploy sentinel cluster of redis
Practical application cases of digital Twins - smart energy
web-uploader不能多文件上传
Does domestic ERP have a chance to beat sap?
ROS - create workspace
Microcomputer principle operation
(newcoder 15079) irrelevant (inclusion exclusion principle)
How to solve the time zone problem in MySQL timestamp
04 | background login: login method based on account and password (Part 1)
How close can QA be to business code Direct exposure of defects through codediff
Mathematical modeling -- analytic hierarchy process model
MOS tube - rapid recovery application notes (II) [parameters and applications]
CUDA GDB prompt: /tmp/tmpxft**** cudafe1.stub. c: No such file or directory.
Pp-yoloe details
Various minor problems of jupyter notebook, configuration environment, code completion, remote connection, etc
Rdkit: introduce smiles code, smart code and Morgan fingerprint (ECFP)
Reproduce 20 character short domain name bypass and XSS related knowledge points
three.js 第五十四用如何给shader传递结构体数组
Matlab learning - accumulation of small knowledge points
实例搭建Flask服务(简易版)