我在一家公司工作,我被迫与一个比我经验丰富6年的人一起编程。与此同时,我们在同一台PC上处理相同的代码,设计或其他问题。
缺点。
这消除了结果所有权的感觉。彼此的情绪开始影响两者。
优势。
良好的思想结果和公司的产出。
我想知道其他开发者如何应对这种情况。
答案 0 :(得分:17)
由于这些原因,关于结对编程应该没有什么教条和任务。我个人非常赞成这种做法,但我相信程序员和管理层应该理解“适当的化学”的要求,当一对不能很好地协同工作时,不应该有一点怨恨或判断
可以肯定的是,程序员应该在宣布人格冲突之前,充分尝试这个学科并认真地与特定的合作伙伴(足够长的时期,以及各种项目类型)合作。特定项目类型的特定项对也可能更好。
答案 1 :(得分:4)
我认为你想拥有一些东西,承担一个模块/模块组的责任并自己调用它?这真的取决于你的项目,也许坐下你的PL并谈论它将是一个好主意。这样他就可以承担一些责任,你仍然可以配对程序。
答案 2 :(得分:4)
总之 - 是的!
但我认为每个人一开始都觉得很难。
我认识XP的大多数优秀程序员都说“我老板强迫我配对”。你并不孤单!
制片人如果您想要更多的领导感,可以在团队中引入“故事制作人”角色。每个故事都有一个“制作人” - 负责确保特定故事完全完整的人(完全考虑,与客户一起清理,测试,部署和演示)。作为制作人可能意味着要敲定大量功能并感受掌管某些东西 - 即使你在迭代中每天都不工作。 Devs通过在故事卡上写下他们的名字来注册成为迭代开始时的制作人。
有积极的一面:
否定:
我记得想要配对节目,但我在最初几周仍感到很多恐惧。
直到今天,经过密集的一天配对后,我仍感到筋疲力尽 - 远远超过单独编码。
过了一段时间,你习惯了配对。有时候我发现自己想要用设计来讨论“走哪条路” - 那时我想念配对......我几乎转过身来,问一下这位曾在火车上编织过一次关于物体设计的奶奶曾经! ; - )
答案 3 :(得分:2)
结对编程,特别是在经常切换合作伙伴时,在敏捷团队的环境中设计,部分是为了增强集体所有权。这减少了知识的孤岛(换句话说:增加你的项目的“truck number”)并减少了这样的态度:“这部分代码很差,但这不是我的问题,因为我不拥有它”。另一方面,敏捷团队选择作为一个团队来配对程序,因为他们认为它最有效。
当程序员配对时,知识,技能和经验会在团队成员之间转移。这种转移往往是双向的,除非存在明显的不匹配,例如在您的情况下。然后它往往是单向的。这是敏捷团队经常切换对的原因之一。
强迫人们练习,即使是良好的练习,本身也是一个问题。如果你强迫程序员,这往往特别糟糕。
当然,在结对编程中,个性可能会导致摩擦。但是,如果人们无法成熟地解决问题,那么我认为这是一个人问题,而不是实践问题。仍有开发人员非常喜欢单独工作并“拥有”项目的一部分。要说服他们不这样做是很困难的。如果它无法解决,那么它要么变得虚弱,要么有人自愿离开,或者有人被释放。
答案 4 :(得分:1)
我认为从您的角度来看,主要优势在于有机会向经验丰富的人学习。
例外情况是,如果你的伴侣没有你的能力,尽管有更多年的“经验”。
答案 5 :(得分:1)
有几个因素会影响我的回答:
整个开发团队只是你们两个吗?如果是这样,那么最初这可能是一件好事,可以帮助你加快速度并防止其中一对编写大量代码而不让对方知道任何事情。我不确定我是否希望看到同一对这么多,以至于你应该被困在一起。
您是在开发新的开发还是修复错误?如果有新的发展,那么有几只眼睛看着代码就好了。另一方面,修复错误不一定最好通过一对来完成,除非它是一个非常复杂的错误。
您可以将此视为一种方法来练习您的耐心以及您对其他人的理解程度。与某人如此接近以至于你几乎可以完成他们的句子是非常有用的。
在我工作的地方,我们可以对新功能进行配对编程,这通常是件好事。团队中共有大约7名开发人员,因此可以进行一些配对和一些单人工作。甚至还有一些配对的昵称,这有助于给团队一些凝聚力和粘合力。通常情况下,这对配对故事,当故事完成时,除非有另一个想要做的故事,否则这对故事就会破裂。一般来说,我发现必须解释事情并让其他人看到我的火车或者我是否给出反馈是有用的,因为另一半有一个想法我可以测试并看看它有多好用。
答案 6 :(得分:0)
您可以很快解决问题。您可能会减少过程中的错误。究竟是什么问题?
你是否觉得你更有经验的合作伙伴在这个过程中占主导地位并且剥夺了你对结果的所有权的感觉?