【发布时间】:2008-11-15 18:29:12
【问题描述】:
您会推荐在团队组成经常变化的组织中实施的极端编程实践吗? 如果在一个极端的编程场景中,团队在中途变得不稳定,你会推荐什么? 谢谢。
【问题讨论】:
您会推荐在团队组成经常变化的组织中实施的极端编程实践吗? 如果在一个极端的编程场景中,团队在中途变得不稳定,你会推荐什么? 谢谢。
【问题讨论】:
我建议首先解决团队波动的问题。如果你的办公室一开始就有旋转门,那么任何流程都不会运作得很好,我想说的是,使用一个更依赖于个人绩效和贡献的流程,而不是打算用于“如果可能的话,机器中的可更换齿轮”将使事情变得更糟。
结对编程可能适用于这种情况,前提是您可以让一些人在身边足够长的时间,以便他们可以将自己的知识传授给团队中的新成员。然而,问题的一部分是你不能真正练习结对编程的“对等”部分,你最终会陷入隐含的高级/初级情况,只是因为一半的对不知道代码足够好。
大多数开发过程都依赖于一个相对稳定的团队,他们对代码库了如指掌。如果您没有这些,您需要围绕这样一个事实设计一个流程,即您将与那些在努力掌握代码库的同时努力提高生产力的开发人员打交道。
【讨论】:
程序员结对成为必须。工程师实践 (XP) 和管理实践 (SCRUM) 能够以可持续的速度交付。对于一个工作团队,您应该强调的第一件事就是将其保持在一起。如果这不可能,编程配对就更重要了!
对于瀑布,一个项目开始,人们聚集,然后他们必须经历Form,Storm,Norm然后Perform。一旦团队学会了如何一起工作,项目就会结束,工作团队就会解散。然后再次重复该过程。你看到问题了吗?谁有这么多钱,可以继续为团队支付费用,形成、风暴、规范,然后一次又一次地表演?
话虽如此,每个团队都会看到团队成员来来去去。通过程序员结对,您可以将新人带入团队,他们几乎会立即生效。通过配对,他们将很快学习业务领域、应用程序代码和工程实践。
我们选择了一个 4 对的团队,并为团队增加了 3 个新对。我们将所有新开发人员与经验丰富的团队成员配对。我们给了自己 30 天的时间让新成员跟上进度。团队完成了所有可交付成果。您能否想象在瀑布团队中将 6 名开发人员添加到由 8 名开发人员组成的团队中。团队在同化新团队成员时几乎陷入停顿。
底线,保持一个职能团队在一起。如果无法做到这一点,请有效地利用结对来快速吸引新朋友。
【讨论】:
当团队组成不稳定时,什么流程会起作用?至少在 XP 中,使用结对编程,您希望不止一个团队成员熟悉代码的所有部分。 FWIW,我不练习 XP,我只是不明白使用 XP 会如何加剧这个问题。
【讨论】:
结对编程应该有助于让新的团队成员跟上进度,以及在团队会议室中进行渗透沟通。开发人员和客户测试的广泛套件应确保新团队成员不会破坏现有功能。高质量的代码应该可以帮助他们更快地找到自己的出路。
话虽如此,易变团队确实是一种强大的反模式。你为什么首先拥有它们?
【讨论】:
高测试覆盖率和持续集成有助于确保新团队成员不会破坏之前实施的内容。结对编程是我发现帮助某人熟悉项目的最快方法。计划会议、短迭代和跟踪这些迭代的速度也可以帮助新开发人员轻松地咬住更容易管理的小块。
【讨论】: