功能所有权是一种好习惯吗?


22

最近,在我公司中,有人建议一位开发人员应该(仅一位)专注于一项功能。这意味着要像将开发人员置于正常的团队常规工作之外,再将其承担其他职责(会议等),而此人将是负责该功能(技术上明智)的“唯一”人员。

作为记录,我们在SAFe中使用SCRUM,并且每个团队都有专职开发人员,在我们两个团队(Android和iOS)之间共享质量检查和产品所有者。

尽管我同意这会在短期内提高生产率,但我有一种感觉(我认为我是在大学里学到的),这是一个不好的做法,原因有很多:

  • 代码审查失去价值。
  • 最少的知识共享。
  • 风险增加。
  • 失去团队灵活性。

我说的对吗,或者这不是一个坏习惯?


3
我的直接反应是,如果适度进行,这可能会奏效,但是如果问题太远,您对这些问题是正确的。另一方面,我的经验是,每个功能都已经拥有了一个事实上的所有者:最后一位花费大量时间进行该功能的人。
Ixrec 2015年

一个开发人员应该专注(并且只有一个) ”-如果您想要SPOF,最好这样做。我最近制定了一种经验理论,认为在特定情况下您最需要的人(“ wtf?!?他为什么这样写? ”)通常恰恰是实际上绝对无法接触到的那个人。
JensG

@JensG:嗯,我有一个经验理论,我最需要的人(“ wtf?为什么他要这样写?”)就是我,因此“记住应该记录下来的东西”的主要因素当时”为0。当我被其他人阻止时,它会更值得注意,因为我对此感到烦恼,而不是根据自己的优点从头重新检查现有代码;-)
史蒂夫·杰索普

@SteveJessop:当然,试图通过检查一堆他们的代码KLOC,而客户骂你,他需要一个解决方案,重新设计思维的其他国家的人民路,现在!要不然)可能对某些人一个很酷的想法,但我我还讨厌书呆子,以至于看不到任何浪费我时间的有趣事情,我可以花更多的钱去代替。
JensG 2015年

@JensG:幸运的是,我的客户比您的客户更善于社交。因此,我承受的压力不大,无法进行那种神奇的思考,而得出这样的结论:对我而言,真正重要的是,人们很难被我触及。因此,我认为您说的话中有一个玩笑的成分,因此,是的,我很讨厌发现一个有趣的情况,在这种情况下,您试图让周围的多个人记住它的工作原理,从而弥补了难以理解的代码。特别是因为这样的wtfs通常是我自己的愚蠢错误,而不是我的同事的错误。
史蒂夫·杰索普

Answers:


37

根据我20年的经验,最好让代码所有者在设计人员之间轮流负责,或者至少要有一对所有者。单一功能所有权存在以下问题,您提到了其中几个:

  • 这往往会给鸽子洞设计师带来麻烦,并限制他们的成长机会
  • 它把所有的鸡蛋都放在一个篮子里,这样,如果有人被公共汽车撞了或下了车,知识上就会有漏洞
  • 一个人可能看不到代码中的问题,并且没有同行所有者的代码审查效果会差很多
  • 如果每个人都使用自己的样式来处理代码,则很难保持代码的一致性和可读性-尽管可以通过样式准则来解决,但细微之处会逐渐蔓延,尤其是当人们习惯使用默认行为而不是基于约定的配置时
  • 如果开发人员拥有代码,则开发人员可能倾向于保护和防御自己的代码,这会抑制代码的演变-如果多个人都拥有代码,则这种趋势会减少

6
绝对。重要的是要提到公交因素是一个只有一个人的所有权的最明显的问题。
JensG

1
但是,必须将总线系数与成本和YAGNI进行权衡,以及总线是否确实会削弱您的组织,还是造成很多麻烦。如果要在以下两种方式之间进行选择:一次是每周损失3个小时,以确保两个人受过特定代码的启发,而不是只有一个;要么是一次失去60个小时,以使某人振作起来。为了加快开发人员之一的命中率,那么在很多情况下,您会选择一次性费用。但是出于上述原因,知识孤岛还有其他更重要的缺点(尽管不太明显)。
史蒂夫·杰索普

13

功能所有权是不可避免的,做得好可能是一件好事。它有助于建立精通能力并允许自主权- 公认的交往支柱中的两个。它清楚地表明了谁对该代码负责,并有助于委派,沟通和完成工作。

但是您不是在谈论那个。您是在说要组成一个新的团队-将这个人与其余的代码隔离开来。那不是很好。这限制了他们的职业生涯。这增加了项目/公司的风险。它伤害同志。

因此,为了使它脱离一个坏主意,可能需要进行一些节制。


1
我不同意一个人的代码所有权是不可避免的,但是它将由一小部分人拥有。我见过组织在共享代码方面做得很差,但是却做得一样。我看到的最有效的设置是当2到3个人知道代码段并进行协作时。这减少了编码人员之间的压力和孤立感,因为当事情失败时他们并不会自己陷入困境,并且可以在没有快速培训其他组织人员的情况下,更加关注滞后功能来按时完成任务。
Jason K.

1
@jason-当然,团队中应该有一些人很舒适并且能够编写一段代码。但是一个人将仅仅是最努力的工作而最终成为主题专家。
Telastyn

同意经常发生这种情况是最有可能发生的事情,并且主题专业知识是一件好事-唯一的不同是它是不可避免的,仅仅是因为我看到几个人在该地区的中小型企业之间有很大的重叠而取得了更好的成功
Jason K 。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.