当前位置:网站首页>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 ?
边栏推荐
- Design of smoke temperature, humidity and formaldehyde monitoring based on single chip microcomputer
- Understanding of p-type problems, NP problems, NPC problems, and NP hard problems in natural computing
- 【科技1】
- Summary of SAP localized content in China
- 暴力递归到动态规划 01 (机器人移动)
- Mathematical modeling -- analytic hierarchy process model
- 深入C语言(1)——操作符与表达式
- 腾讯云使用pem登录
- Military product development process - transition phase
- Deep into C language (3) -- input and output stream of C
猜你喜欢
Ten thousand words detailed Google play online application standard package format AAB
Matlab learning -- structured programs and user-defined functions
(2022杭电多校三)1002-Boss Rush(状压DP+二分)
04 | background login: login method based on account and password (Part 1)
今晚7:30 | 连界、将门、百度、碧桂园创投四位大佬眼中的AI世界,是继续高深还是回归商业本质?...
Producer consumer model of concurrent model
Bingbing learning notes: operator overloading -- implementation of date class
Exness: dove resolution helped gold rebound, and the focus turned to U.S. GDP
How does DataGrid export and recover the entire database data, using a single SQL file
复现20字符短域名绕过以及xss相关知识点
随机推荐
安装抓包证书
无法一次粘贴多张图片
Photo scale correction tool: DxO viewpoint 3 direct mount version
力扣每日一题-第44天-205. 同构字符串
Bingbing learning notes: operator overloading -- implementation of date class
How dare you write a resume that is proficient in concurrent programming? Why do you use a two-way linked list in AQS?
Inclusion exclusion principle
Machine learning [numpy]
向日葵资深产品总监技术分享:“国民远控”如何在AD域环境下应用
Singleton mode (hungry and lazy)
Exness: dove resolution helped gold rebound, and the focus turned to U.S. GDP
Install the packet capturing certificate
(codeforce547)C-Mike and Foam(质因子+容斥原理)
AI_ Drug: VAE of molecular generation model (I)
Producer consumer model of concurrent model
1.5 nn. Module neural network (III)
Build redis environment under windows and Linux
for_each用法示例
实例搭建Flask服务(简易版)
深入C语言(4)——switch的定义与使用