如何处理结对编程问题?

时间:2023-01-31 03:28:47

Some members of the team are having problems programming together. Different gender, different culture, different age. How to deal with those problems? - Do not pair them together, or - Pair them together and let them come to a "golden middle"

团队的一些成员在编程时遇到问题。不同性别,不同文化,不同年龄。如何处理这些问题? - 不要将它们配对在一起,或者 - 将它们组合在一起,让它们进入“黄金中间”

9 个解决方案

#1


17  

Pair programming is based on the idea that the interaction of two programmers adds value. If this is not true, change the pairs... let them choose. Programming should be fun!

结对编程基于两个程序员的交互增加价值的想法。如果不是这样,请更改对...让他们选择。编程应该很有趣!

#2


9  

How about rotating the pairs every week or every sprint so that if there are issues between a couple of pairs they don't feel like it has to be that way forever. I think if there is a specific time frame that you have to work with someone you do not get along with it makes it easier to "suck it up" and hopefully you won't lose any great people that way.

如何在每周或每个冲刺中旋转对子,这样如果两对之间存在问题,他们就不会觉得必须永远这样。我认为如果有一个特定的时间框架,你必须与一个你不相处的人合作,这会让你更容易“吮吸它”,并希望你不会失去任何伟大的人。

If after a few rotations you notice a specific individual that nobody is enjoying it may be appropriate to focus on adjusting the way that individual interacts with the team or if it continues perpetually removing them from the team all together.

如果经过几次轮换后你注意到一个没人在享受的特定个人,可能适合专注于调整个人与团队交互的方式,或者是否继续永久地将他们从团队中移除。

#3


6  

Reassess your hiring practices and make sure that you select for team oriented employees.

重新评估您的招聘实践,并确保您选择面向团队的员工。

Failing that, breath mints.

如果做不到这一点,请小心翼翼。

-Adam

#4


4  

What exactly are they having problems with? Do they not get along, not understand each other? Are they at different levels of programming experience?

他们到底有什么问题?他们不相处,不相互理解?他们处于不同级别的编程经验吗?

It may help if you have a team member that can act as a "mediator" of sorts. Somebody who's successfully done pair-programming in the past and can help the two through their first few times together.

如果您的团队成员可以充当各种“调解员”,这可能会有所帮助。过去成功完成配对编程的人可以在前几次一起帮助他们。

#5


1  

The first step to resolving conflicts is to recognize that people are different. Even the most mild mannered programmer's patience can be tried in pair programming, it can be very stressful. Some people withdraw when they are confronted by conflict, others get aggressive.

解决冲突的第一步是认识到人与众不同。即使是最温和的有礼貌的程序员的耐心也可以在结对编程中尝试,它可能会非常紧张。有些人在遇到冲突时退出,有些人则咄咄逼人。

The best way of approaching pair programming, in my experience, is to have a detailed discussion of what it is you want to accomplish for the session, before you lay hands on code. This will put both of your minds on the same track. When you disagree on something, stop coding, discuss it away from the computer, try to find common ground and most importantly don't dismiss any ideas your partner may have. Take breaks; don't work for 2 hours straight, try to stand up or go for a break every 45 minutes or so.

根据我的经验,接近结对编程的最佳方法是在你开始编写代码之前详细讨论你想要为会话完成什么。这将使你的双方都处于同一轨道上。如果你不同意某些事情,请停止编码,与计算机讨论,尝试找到共同点,最重要的是不要忽视你的伴侣可能有的任何想法。休息一下;不要连续工作2小时,尝试站起来或每45分钟左右休息一下。

#6


1  

Talk about pairing troubles as a group, and make sure the group is aware of different pairings that aren't working. That way, the group can help ensure that your pairs aren't avoiding each other. If you keep a disfunctional pair separate, they will always be disfunctional.

谈论将问题配对成一组,并确保该组了解不同的配对。这样,该小组可以帮助确保您的配对不会相互避开。如果你将一对功能障碍分开,他们将永远失去功能。

Get the pair to open lines of communication; try to get both sides to do new things. Assuming both people are genuinely good developers, they both have much to learn from one another. Try to alter their attitude from teacher to student.

让这对开放的沟通渠道;尽量让双方都做新事物。假设两个人都是真正优秀的开发人员,他们都有很多可以相互学习的东西。试着改变他们从老师到学生的态度。

#7


1  

I'd second muloh's question - what kinds of thing are they having problems with?

我是第二个问题 - 他们遇到什么问题?

In my experience these problems are often (but not always) a sign of underlying problems with the team structure / skills / relationships that need to be addressed if you want to get the best out of everybody involved.

根据我的经验,这些问题通常(但并非总是)是团队结构/技能/关系的潜在问题的一个标志,如果你想要让所有参与者发挥最大作用,需要解决这些问题。

Is Mary not getting along with Fred because Fred doesn't know enough about how sane folk work with databases? Is Fred not getting along with Jo because Jo doesn't bathe quite as regularly as they ought? Is Jo not getting along with Mary because Mary is a rude SOB? If so you can almost guarantee that Fred, Jo & Mary are also annoying the rest of the team in similar ways.

玛丽是不是和弗雷德相处的,因为弗雷德不太了解民众如何使用数据库?弗雷德与乔没有相处,因为乔不像他们应该那样经常洗澡吗? Jo和Mary没有相处,因为Mary是一个粗鲁的SOB?如果是这样,你几乎可以保证弗雷德,乔和玛丽也以类似的方式惹恼团队的其他成员。

Just coz one or two folk push the issue enough to avoid pairing doesn't mean the problems goes away. It may well be annoying other folk too - they may have alternate ways of coping. Like looking for alternate employment for example :-)

只要考虑一两个人推动问题就足以避免配对并不意味着问题就会消失。它也可能令其他人感到烦恼 - 他们可能有其他的应对方式。就像寻找替代就业例如:-)

If the team doesn't work well together it isn't a team.

如果团队不能很好地协同工作,那么这不是一个团队。

Out of curiosity - how long are your pairing sessions and how often do you switch pairs? I find that it's sometimes easier to deal with this sort of thing if folk are switching pairs on a regular basis - once or twice a day. That way everybody gets to share the relative pros and cons of everybody on the team - which can help everybody focus on solving some of the cons.

出于好奇 - 你的配对会有多长时间以及你多久换一次?我发现,如果民间定期切换对,每天一次或两次,有时候处理这​​种事情会更容易。这样每个人都可以分享团队中每个人的相对利弊 - 这可以帮助每个人集中精力解决一些缺点。

#8


0  

Another approach is to continually switch your pairs within the scrum. Have a timer which might be set for 1/2/3 hours. When the bell goes off, rotate your pairs. This has a few effects:

另一种方法是在Scrum中不断切换对子。有一个可能设置为1/2/3小时的计时器。当铃声响起时,旋转你的对。这有一些影响:

  • Two people don't get stuck pairing together for a long time
  • 两个人长时间不会被困在一起

  • Your developers will get to rotate through your current stories, getting familiar with each one and different areas of the code
  • 您的开发人员将轮流阅读您当前的故事,熟悉代码的每个和不同区域

  • If one of your dev's smells, you will only have to get through a short period of stink!
  • 如果你的一个开发者的气味,你只需要经历一段短暂的臭味!

#9


0  

Pairing is a critical practice for an agile team. To begin with, it is best to identify developers that are willing and able to work effectively in pairs. One company I am aware of does extreme interviewing. That is, they will interview candidates in pairs giving them a problem to solve. They are interested if the developers are ability to solve the problem but are interested in their collaboration skills. Only those that can work well with others are considered.

配对是敏捷团队的关键实践。首先,最好确定愿意并且能够成对有效工作的开发人员。我所知道的一家公司做了极端的面试。也就是说,他们会成对地面试候选人,给他们一个问题来解决。如果开发人员能够解决问题但对他们的协作技能感兴趣,他们会感兴趣。只考虑那些能与他人合作的人。

It is not a requirement that all pair like each other. What is important is that they are effective. Given that pairs rotate frequently (for each card or more frequently), personality is less of an issue. If someone is not across pairs, and after being coached is still a problem, he or she should be asked to leave the team.

不要求所有对彼此相似。重要的是它们是有效的。鉴于对频繁地轮换(对于每张卡或更频繁地),个性不是问题。如果某人没有成对,并且在执教后仍然是一个问题,应该要求他或她离开球队。

#1


17  

Pair programming is based on the idea that the interaction of two programmers adds value. If this is not true, change the pairs... let them choose. Programming should be fun!

结对编程基于两个程序员的交互增加价值的想法。如果不是这样,请更改对...让他们选择。编程应该很有趣!

#2


9  

How about rotating the pairs every week or every sprint so that if there are issues between a couple of pairs they don't feel like it has to be that way forever. I think if there is a specific time frame that you have to work with someone you do not get along with it makes it easier to "suck it up" and hopefully you won't lose any great people that way.

如何在每周或每个冲刺中旋转对子,这样如果两对之间存在问题,他们就不会觉得必须永远这样。我认为如果有一个特定的时间框架,你必须与一个你不相处的人合作,这会让你更容易“吮吸它”,并希望你不会失去任何伟大的人。

If after a few rotations you notice a specific individual that nobody is enjoying it may be appropriate to focus on adjusting the way that individual interacts with the team or if it continues perpetually removing them from the team all together.

如果经过几次轮换后你注意到一个没人在享受的特定个人,可能适合专注于调整个人与团队交互的方式,或者是否继续永久地将他们从团队中移除。

#3


6  

Reassess your hiring practices and make sure that you select for team oriented employees.

重新评估您的招聘实践,并确保您选择面向团队的员工。

Failing that, breath mints.

如果做不到这一点,请小心翼翼。

-Adam

#4


4  

What exactly are they having problems with? Do they not get along, not understand each other? Are they at different levels of programming experience?

他们到底有什么问题?他们不相处,不相互理解?他们处于不同级别的编程经验吗?

It may help if you have a team member that can act as a "mediator" of sorts. Somebody who's successfully done pair-programming in the past and can help the two through their first few times together.

如果您的团队成员可以充当各种“调解员”,这可能会有所帮助。过去成功完成配对编程的人可以在前几次一起帮助他们。

#5


1  

The first step to resolving conflicts is to recognize that people are different. Even the most mild mannered programmer's patience can be tried in pair programming, it can be very stressful. Some people withdraw when they are confronted by conflict, others get aggressive.

解决冲突的第一步是认识到人与众不同。即使是最温和的有礼貌的程序员的耐心也可以在结对编程中尝试,它可能会非常紧张。有些人在遇到冲突时退出,有些人则咄咄逼人。

The best way of approaching pair programming, in my experience, is to have a detailed discussion of what it is you want to accomplish for the session, before you lay hands on code. This will put both of your minds on the same track. When you disagree on something, stop coding, discuss it away from the computer, try to find common ground and most importantly don't dismiss any ideas your partner may have. Take breaks; don't work for 2 hours straight, try to stand up or go for a break every 45 minutes or so.

根据我的经验,接近结对编程的最佳方法是在你开始编写代码之前详细讨论你想要为会话完成什么。这将使你的双方都处于同一轨道上。如果你不同意某些事情,请停止编码,与计算机讨论,尝试找到共同点,最重要的是不要忽视你的伴侣可能有的任何想法。休息一下;不要连续工作2小时,尝试站起来或每45分钟左右休息一下。

#6


1  

Talk about pairing troubles as a group, and make sure the group is aware of different pairings that aren't working. That way, the group can help ensure that your pairs aren't avoiding each other. If you keep a disfunctional pair separate, they will always be disfunctional.

谈论将问题配对成一组,并确保该组了解不同的配对。这样,该小组可以帮助确保您的配对不会相互避开。如果你将一对功能障碍分开,他们将永远失去功能。

Get the pair to open lines of communication; try to get both sides to do new things. Assuming both people are genuinely good developers, they both have much to learn from one another. Try to alter their attitude from teacher to student.

让这对开放的沟通渠道;尽量让双方都做新事物。假设两个人都是真正优秀的开发人员,他们都有很多可以相互学习的东西。试着改变他们从老师到学生的态度。

#7


1  

I'd second muloh's question - what kinds of thing are they having problems with?

我是第二个问题 - 他们遇到什么问题?

In my experience these problems are often (but not always) a sign of underlying problems with the team structure / skills / relationships that need to be addressed if you want to get the best out of everybody involved.

根据我的经验,这些问题通常(但并非总是)是团队结构/技能/关系的潜在问题的一个标志,如果你想要让所有参与者发挥最大作用,需要解决这些问题。

Is Mary not getting along with Fred because Fred doesn't know enough about how sane folk work with databases? Is Fred not getting along with Jo because Jo doesn't bathe quite as regularly as they ought? Is Jo not getting along with Mary because Mary is a rude SOB? If so you can almost guarantee that Fred, Jo & Mary are also annoying the rest of the team in similar ways.

玛丽是不是和弗雷德相处的,因为弗雷德不太了解民众如何使用数据库?弗雷德与乔没有相处,因为乔不像他们应该那样经常洗澡吗? Jo和Mary没有相处,因为Mary是一个粗鲁的SOB?如果是这样,你几乎可以保证弗雷德,乔和玛丽也以类似的方式惹恼团队的其他成员。

Just coz one or two folk push the issue enough to avoid pairing doesn't mean the problems goes away. It may well be annoying other folk too - they may have alternate ways of coping. Like looking for alternate employment for example :-)

只要考虑一两个人推动问题就足以避免配对并不意味着问题就会消失。它也可能令其他人感到烦恼 - 他们可能有其他的应对方式。就像寻找替代就业例如:-)

If the team doesn't work well together it isn't a team.

如果团队不能很好地协同工作,那么这不是一个团队。

Out of curiosity - how long are your pairing sessions and how often do you switch pairs? I find that it's sometimes easier to deal with this sort of thing if folk are switching pairs on a regular basis - once or twice a day. That way everybody gets to share the relative pros and cons of everybody on the team - which can help everybody focus on solving some of the cons.

出于好奇 - 你的配对会有多长时间以及你多久换一次?我发现,如果民间定期切换对,每天一次或两次,有时候处理这​​种事情会更容易。这样每个人都可以分享团队中每个人的相对利弊 - 这可以帮助每个人集中精力解决一些缺点。

#8


0  

Another approach is to continually switch your pairs within the scrum. Have a timer which might be set for 1/2/3 hours. When the bell goes off, rotate your pairs. This has a few effects:

另一种方法是在Scrum中不断切换对子。有一个可能设置为1/2/3小时的计时器。当铃声响起时,旋转你的对。这有一些影响:

  • Two people don't get stuck pairing together for a long time
  • 两个人长时间不会被困在一起

  • Your developers will get to rotate through your current stories, getting familiar with each one and different areas of the code
  • 您的开发人员将轮流阅读您当前的故事,熟悉代码的每个和不同区域

  • If one of your dev's smells, you will only have to get through a short period of stink!
  • 如果你的一个开发者的气味,你只需要经历一段短暂的臭味!

#9


0  

Pairing is a critical practice for an agile team. To begin with, it is best to identify developers that are willing and able to work effectively in pairs. One company I am aware of does extreme interviewing. That is, they will interview candidates in pairs giving them a problem to solve. They are interested if the developers are ability to solve the problem but are interested in their collaboration skills. Only those that can work well with others are considered.

配对是敏捷团队的关键实践。首先,最好确定愿意并且能够成对有效工作的开发人员。我所知道的一家公司做了极端的面试。也就是说,他们会成对地面试候选人,给他们一个问题来解决。如果开发人员能够解决问题但对他们的协作技能感兴趣,他们会感兴趣。只考虑那些能与他人合作的人。

It is not a requirement that all pair like each other. What is important is that they are effective. Given that pairs rotate frequently (for each card or more frequently), personality is less of an issue. If someone is not across pairs, and after being coached is still a problem, he or she should be asked to leave the team.

不要求所有对彼此相似。重要的是它们是有效的。鉴于对频繁地轮换(对于每张卡或更频繁地),个性不是问题。如果某人没有成对,并且在执教后仍然是一个问题,应该要求他或她离开球队。