当技能阻抗不匹配时,配对编程是否有效?

时间:2009-04-24 10:58:03

标签: language-agnostic pair-programming

例如,具有有限C#.NET经验的有经验的编码人员是否可以成功地与经验丰富的C#.NET编码器配对,其次要目标是使前者能够快速使用C#.NET?

16 个答案:

答案 0 :(得分:27)

绝对。分享知识是配对编程的重点之一(以及有一个人类型的有用动态以及另一个人的类型)。

根据我的经验,这是最有效的方式之一 - 并且允许经验较少的编码人员仍然有用地做出贡献(审查专家正在做什么并做出合理的评论/干预比做整个工作)。

答案 1 :(得分:7)

这取决于他们之间的个人化学反应。如果更有经验的程序员愿意并且能够分享他的知识,并让经验不足的程序员通过编写代码和讨论来参与开发,我会说这是一种非常有效的学习方式。

答案 2 :(得分:5)

是的,我发现良好的结对编程总是两种方式,它本质上是一种伪装成IT创新的社会工程。

答案 3 :(得分:4)

是的,这会有效。如果1)经验有限的程序员接受学习C#和2)其他程序员愿意教C#。

答案 4 :(得分:3)

当技能不匹配时,它确实变得更像师生关系。这不错,但可以浪费技术人员的时间。

然而,即使它不切实际或浪费,偶尔配对会议也非常有用!即使学生不堪重负或尴尬,有时候“学生”看看顶级人员如何工作和思考也是有用的。它有助于让他们了解高质量工作的问题/技能/方法。把它想象成一个访问研究实验室的高中生。专业科学家教授高中生是一种浪费,但是1小时的访问可以帮助学生集中注意力,让他们一睹最终的目标......

我记得为什么选择Emacs作为我的编辑。我碰巧坐在专家用户附近,从字面上粗暴地盯着他的肩膀,我看着他重新排列并快速导航代码。我只看了不到一分钟,我从未跟他说过......他甚至没有注意到我在看!但我感到很沮丧,并决定学习Emacs。十年后,我仍然没有那位专家那么多的技能,但我不会后悔改变编辑的决定,因为我瞥见了可能的事情。

答案 5 :(得分:2)

就我个人而言,我认为这样做会很好,并且是对编程的目标之一,但成功将取决于两位程序员。如果程序员1(一个学习C#)正在加入一些额外的时间来真正加快速度,程序员2(另一个)有耐心和教育它的愿望应该对两者都有好处。

答案 6 :(得分:1)

你当然可以做到这一点 - 我们过去已经做过了。但是你必须接受你将“代码质量”的好处与培训利益进行权衡。我担心没有免费训练,

答案 7 :(得分:1)

它在某种程度上起作用。通常它是一个引领另一个......所以在这个意义上它并不是很多结对编程。

这很大程度上取决于有经验的编码人员的教学技巧和其他编码人员快速学习的技能。

答案 8 :(得分:1)

是的,但只有当更好的人有耐心并且愿意教导而且更坏的人愿意学习时。我和那些不如我的人配对编程,这很乏味,但我认为他们从中学到了东西。我和那些比我更好的人配对,我当然也从中学到了东西。真的取决于人民。

答案 9 :(得分:1)

以下警告可能会有效:您必须切换合作伙伴

我实际上已经处于这种状况,如果差距很大,那么对于这两个成员来说,这可能会非常沉重。几小时后最好到switch partners,时间根据您的公差和间隙的大小而变化。如果该选项不可用,请混合一些独奏编程。

答案 10 :(得分:1)

有一种说法是团队的力量与其最薄弱的环节一样好。将最强的一个与最弱的一个配对传统上是最好的策略,因为从最强的学习中最弱的学习可能确保最多的学习。如果担心最强烈的不感兴趣,那么将最强者替换为真正最强的人。

答案 11 :(得分:0)

这完全取决于开发者的个性,没有硬性规定。

有一点可以肯定的是,与缺乏经验的开发人员合作时,经验丰富的开发人员的工作效率会降低。我个人认为配对编程时需要有很好的匹配能力。然而,这是让缺乏经验的开发人员加快速度的一种非常好的方式。

答案 12 :(得分:0)

虽然这是一个好主意,但实际上它可能没用。为了培训某人,您可以组织培训并指派可以提供帮助和指导的导师。导师可以从真实项目中分配工作并进行监控。

如果你想获得这个概念的好处,那么对编程应该在相对有经验的人之间进行。在我看来,与没有经验的人配对编程会导致生产力下降,并且不确定当有人经常检查他时,该人将会获得多少。分配任务并给予机会独立开发并随后进行审查将提供良好的自我学习。

答案 13 :(得分:0)

是的,但一开始可能并不清楚使其有效的方法。正在编程的任务应该是经验不足的程序员(我们称之为迈克尔)的任务。我也有迈克尔启动结对编程会话,以解释会话的目标是什么。这种方法将迈克尔置于司机座位上,更有经验的程序员(我们称之为Bill)将更多地发挥指导作用。

通常比尔会接受或提供更复杂的任务。这种方法允许 Michael 处理更适合其经验水平的任务。我建议首先关闭30分钟到一小时的间隔,这样迈克尔就可以习惯让别人控制的过程。您可以将这些关闭时间慢慢缩短为15分钟,或者对两位开发人员最有效。

答案 14 :(得分:0)

我认为你得到的最终结果取决于这样做的人。在这种情况下,你最终可能会领先另一个(另一个是注意理解第一个使用的语言特征)。

答案 15 :(得分:0)

这取决于我们谈论的技能阻抗不匹配

两位不同语言的优秀程序员可以快速成长,显然是以当前项目语言中的一位专家稍微放慢为代价。

如果差异太大(例如,老手和新手),相反,最好先采用其他方法,以避免产生高度适得其反的风险。

始终要注意极端对编程

enter image description here