例如,C#.NET 经验有限的经验丰富的编码员能否成功地与经验丰富的 C#.NET 编码员配对,其次要目标是让前者跟上 C#.NET 的速度?
16 回答
绝对地。共享知识是结对编程的要点之一(还有一个有用的动态,即让一个人输入一段时间,另一个人在他们这样做时进行审查)。
以我的经验,这是最有效的方法之一 - 并且允许经验不足的编码人员仍然做出有用的贡献(与完成整个工作相比,审查专家正在做的事情并做出明智的评论/干预需要更少的经验) .
这取决于他们之间的个人化学反应。如果有经验的程序员愿意并且能够分享自己的知识,让经验不足的程序员通过写代码和讨论来参与开发,我会说这是一种非常有效的学习方式。
是的,我发现好的结对编程总是有两种方式,它本质上是一种伪装成 IT 创新的社会工程。
是的,这会起作用。如果 1) 经验有限的程序员愿意学习 C#,并且 2) 其他程序员愿意教 C#。
当技能不匹配程度很高时,它确实更像是一种师生关系。这还不错,但会浪费技术人员的时间。
但是,即使不切实际或浪费,偶尔进行一次结对会非常有用!即使学生不知所措或感到尴尬,有时对于“学生”来说,了解顶级人员如何工作和思考也是有用的。它有助于让他们了解高质量工作的问题/技能/方法。把它想象成一个参观研究实验室的高中生。专业科学家教高中生是一种浪费,但是 1 小时的访问可以帮助学生集中注意力,让他们一瞥最终目标......
我记得我为什么选择 Emacs 作为我的编辑器。我只是碰巧坐在一位专家用户旁边,我粗鲁地看着他的肩膀,看着他超级快速地重新排列和导航代码。我只看了不到一分钟,我从来没有和他说过话..他可能甚至没有注意到我在看!但我被吓坏了,决定学习 Emacs。十年后,我仍然没有那位专家那么熟练,但我并不后悔改变编辑的决定,因为我看到了可能发生的事情。
就个人而言,我认为这会很好,并且是结对编程的目标之一,但成功的程度将取决于两个程序员。如果程序员 1(学习 C# 的人)投入了一些额外的时间来真正加快速度,而程序员 2(另一个人)有耐心和渴望教它应该对双方都有好处。
你当然可以做到这一点——我们过去已经做到了。但是您必须接受在“代码质量”收益与培训收益之间进行权衡。恐怕没有免费的培训班。
它在某种程度上起作用。通常它是一个领先另一个......所以从这个意义上说它不是很多结对编程。
这在很大程度上取决于经验丰富的编码人员的教学技能和其他编码人员的快速学习技能。
是的,但前提是更好的人有耐心并愿意教书,而更差的人愿意学习。我与不如我的人结对编程,这很乏味,但我认为他们从中吸取了教训。我和比我优秀的人结对编程,我当然从中学到了东西。真的要看人。
它可以通过以下警告有效:您必须更换合作伙伴。
我实际上一直处于这种情况,如果差距很大,这对这对成员来说可能是非常费力的。最好在几个小时后更换伴侣,时间根据您的耐受性和差距大小而变化。如果该选项不可用,请混合一些单独的编程。
有句话说,一个团队的强项和最薄弱的环节一样好。将最强的与最弱的配对传统上是最好的策略,因为从最强的最弱的学习可能确保最多的学习量。如果担心最强者不感兴趣,那就把最强者换成真正最强的人。
这完全取决于开发人员的个性,没有硬性规定。
可以肯定的是,与没有经验的开发人员一起工作时,有经验的开发人员的工作效率会降低。我个人认为结对编程时需要有很好的能力匹配。然而,这是让经验不足的开发人员加快速度的一种非常好的方法。
虽然这是一个好主意,但实际上它可能没有用。要培训某人,您可以组织培训并指定可以提供帮助和指导的导师。导师可以从实际项目中分配工作并进行监控。
结对编程应该在相对有经验的人之间进行,如果你想获得这个概念的好处。在我看来,与没有经验的人进行结对编程会降低生产力,并且不确定当有人不断检查他时该人会接受多少。分配一项任务并给予机会独立开发它然后对其进行审查将提供良好的自学。
是的,但使其有效的方法起初可能并不明确。结对编程的任务应该是经验较少的程序员(我们称他为 Michael)的任务。我也会让Michael开始结对编程课程,以解释课程的目标是什么。这种方法将Michael置于驾驶位,更有经验的程序员(我们称他为 Bill)将担任更多的指导角色。
通常, Bill会接受或被赋予更复杂的任务来处理。这种方法允许迈克尔从事更适合他的经验水平的任务。我建议首先每隔 30 分钟到 1 小时关闭一次,这样迈克尔就可以习惯让别人控制的过程。您可以慢慢地将这些关闭时间缩短到 15 分钟,或者任何最适合两个开发人员的时间。
我认为你得到的最终结果取决于做这件事的人。在这种情况下,您最终可能会以一个领先另一个(而另一个只是注意理解第一个正在使用的语言功能)。
这取决于我们所说的阻抗失配有多少技能。
两个不同语言的优秀程序员可以随着它快速成长,显然是以当前项目语言的一位专家的速度稍慢为代价的。
如果差异太大(例如,老将和新秀),则最好从其他类型的方法开始,以避免产生高度适得其反的风险。
永远小心极端结对编程!