轮换首席开发人员是个好主意还是坏主意?


31

自从几个月前成立以来,我在一个团队中一直处于扁平状态的团队工作。我的经理是非技术人员,这意味着我们整个团队都要负责决策。

我的经理开始意识到,拥有一名首席开发人员有很多好处,无论是出于他的利益(一个任务的单一联系点和一个责任方),还是出于我们的利益(纠纷解决,有组织的技术指导等)。

因为团队很平淡,所以一个担心是选择一名主要开发人员可能会阻碍其他开发人员。一个非开发人员向我的经理建议,轮换首席开发人员是避免此问题的一种可能方法。一位开发人员将领导一个月,另一位领导下一个,依此类推。

这是一个好主意吗?为什么或者为什么不?

请记住,这意味着所有开发人员-所有开发人员都是好人,但不一定同样适合担任领导职务。

如果不是这样,我如何建议我们避免这种方法,而似乎仅仅是出于自私的原因?


7
“当前的主要开发人员是虚构的。请将他旋转90度,然后重试”; o)
Piskvor 2011年

14
我不推荐这样做,这可能会使他头晕。
Gaurav'3

Answers:


31

不要旋转

我认为任何人都不会从轮换的职位中获得任何收益(除了那些不应该成为领导者的职位之外,他们可能会获得比目前所获得的更多的钱)。

拥有出色的首席开发人员可以执行以下任务,这会为开发过程带来奇迹:

  1. 知道如何委派。
  2. 处于控制之中。
  3. 是一个经验丰富的开发人员。

他是团队其他成员查找和寻求建议的唯一来源。他还是高层管理人员和核心开发团队之间的调解人。我不知道有哪个管理团队喜欢应对变化(除非他们是促使变革的人)。

如果您真的最适合该职位,那么每个人都会知道。每个人都知道这一点(例如,高层管理人员,您的队友等)。声明您不认为轮换职位是值得的(如果您认为这样)。然后坐下来,让他们做任命-避免掉名或任何形式的自我提升,因为这会使您看起来不专业


@Jonathan Khoo:您的答案似乎是“忘了固定系统,请摇滚巨星开发商”。

3
@moz-也许不是摇滚明星开发人员,但是一旦项目达到一定规模,便有某种可以处理管理费用的主要联系人是有意义的。这也可能只是一个不做任何开发工作的项目经理。
rjzii 2011年

2
如果是一个扁平的团队,那么“主要开发人员”将不会获得比其他人更多的付款。他将有责任,但没有担任高级职位的好处。这其实在几乎任何一支球队,我在工作过的现实。
jwenting

6
@moz:一个摇滚明星会被浪费在那个位置,因为首席开发人员所做的很多事情都不涉及编程。经验是有用的,因为它可以使指导者得到指导,并使他或她有效地领导领导者,但是您可能不希望最有生产力的开发人员将时间花在与更高管理层的会议上。
David Thornley

1
我发现知道什么编码的管理类型(可以读取代码,知道什么表和数据库,知道什么是TCP / IP套接字,可能以前已经编码过)最适合这些角色。毕竟涉及很多文书工作,而且已经习惯了。
Vincent Vancalbergh 2011年

11

成为首席开发人员有两个部分:

  • 技术领导 对于技术领导,在项目级别选择其他首席开发人员是有意义的。使每个开发人员都成为不同项目的技术负责人,并在项目轮换时根据需要轮换。这种方法可以应对团队动态,并确保每个人都受到适当挑战

  • 沟通与外界沟通的单一联系点对外界有利,而对联系点不利。陷入沟通障碍的人将只有较少的时间来进行实际工作,并且必须四处奔波以获取每个人的信息以进行传递。如果您是最好的交流者,并且愿意停止做所有有趣的工作以换取所有谈话,则可以为您带来更多的力量。


因此,不可能将这两个角色分开吗?从技术上讲,最好的沟通者通常不是最好的沟通者。我发现最好的“结对编程”情况是每个人在其中之一中
脱颖而出时

可以确认。我在6个月前(由12个开发人员组成的团队)接受了我的第一个主角,并且从未像现在这样花太多时间进行编程。通常,只是向上指导,管理和报告。
JavaScript先生

6

只要所涉及的开发人员都参与进来并且(具有理想的)能力,这不一定是一个坏主意。

我很难找到关于它的参考(但是我会继续寻找),但是如果我没记错的话,一些敏捷公司会这样做-他们每次迭代或在其他预定义的时间轮换“团队领导”的头衔期。这促进了开发人员的参与,并使每个人都有机会进行一些团队管理/外部沟通,而无需永久地将开发人员从开发中转移到该角色。

一些缺点包括潜在的信息丢失(可以通过多种方式缓解)和“不良”领导的更大可能性。维持团队的愿景/方向也可能很困难。但是,如果每个人都支持这种方法,并且团队成员既知识渊博又对使这样的系统起作用感兴趣,那么值得一试。


我认为您不一定要让每个开发人员都担任团队领导职务,但我希望高级开发人员能够胜任这些职责。坦白说,这是一项不值一提的工作,更多的是分担负担并避免精疲力尽。我还认为,如果没有一名开发人员担任永久负责人,则可以使您的单位组织团队的优势保持动态变化。
MebAlone

“某些缺点包括潜在的信息丢失(可以通过多种方式减轻这种情况)和更高的“不良”领导潜力”:仅在选定的开发人员上轮换,这样可以避免此问题。
阿德里安

1
@AdrienBe您仍然需要在它们之间传输信息。除非他们一直在同一时间领导(这违背了目标),否则您将不得不考虑这一点。您可能还会疏远团队中其他无法完全发挥领导作用的开发人员,并可能会感到被排斥在外。
亚当李尔

5

如果旋转,请不要在项目期间旋转。根据针对特定项目在每个职位上最合适的人,为不同的项目分配不同的角色给不同的人,本质上没有错。但是不要仅仅因为这是他的工作时间就让Joe成为“首席程序员”。他可能对此不熟练,甚至可能不想要这份工作。


4

根据时间轮换首席开发人员是一个坏主意。

每个人都是一个好的开发者,并不意味着每个人都是一个好的领导者。一个好领导者并不意味着他适合该计划的领导者。

我认为分配给开发人员的任务的重要性不同,并且每个开发人员的领导也不同。我认为您可以建议您的经理进行投票。每一位投票2人为最佳候选人,而投票最多的人应为领导者开发者


3

我倾向于同意乔纳森·邱Jonathan Khoo)的观点,即轮换首席开发人员可能不是一个好主意。通常,对于较大的项目,只有一个技术负责人领导该项目,并且该人员可能有多个负责人,向他们汇报以讨论各种系统范围的问题。

但是,乔纳森(Jonathan)没有提到的重要一点是,技术负责人还发展了项目中其他人可能没有的高度机构知识。通过轮换技术负责人,您需要他们每次有人被轮换到该职位时就发展该知识。此外,领导者将与项目外部的客户建立融洽的关系,因为理想情况下,他们应该出席与最终用户进行的一些(较大)会议。

拥有技术领先者是不错的选择,但是如果您尝试将他们淘汰出局,您可能会发现没有一个人会更好。


2

我认为,首先您需要确定此人的角色,而不是确定谁的角色以及持续时间。

您还需要确定这是否会显着改变其余人员的工作方式以及是否会降低性能。由一个人来“批准”您的代码的每一行,而不是任何同伴,这会产生严重的影响。

可以将不同的特定角色分配给不同的团队成员,而您中的任何一个都不是“上级”。可能会给最擅长在经理和其他人之间进行沟通的人担任此职务,但这并不意味着他们是“主要开发人员”,而且他们可能不是技术上或能力上最强的人。做代码审查。


2

我愿意打赌,尽管球队表面上很平淡,但其中已经有一个领导者,而且他们都已经知道了。

组织结构图很少反映人们的实际工作方式。特别理想的图表,例如“扁平团队”。


2

如果您的组织是扁平的,那么请让您的所有开发人员都经过需求和解决方案分析(RSA)培训,以使他们遵循正式流程。然后,您可以将多个主题专家(SME)分配给一个项目,并为所有解决方案获取文档化的流程。

另外,由于您提到经理不是技术人员,因此该人仍然可以推动RSA流程并促进沟通。您还可以在逐个项目的基础上指派特定的SME作为负责人,以帮助简化和建立他们的个人技能。



1
  1. 您可以从团队中选择一个人来领导您的团队。
  2. 您的老板可以雇用另一个有经验的人担任这个职位

PS:我认为轮换不是一个好主意,这个人必须善于沟通,并且在管理团队方面有良好的经验。


1

正如您的问题所暗示的那样,整个团队负责决策,我建议您可以采用相同的方式。但是,要与团队外部的主管部门进行沟通和报告,您可以从团队中选择一个团队协调员。他/她的职责将包括非技术性的一切。对于所有技术方面,团队都应该像现在一样坐下来讨论。无论您做出什么决定,都会通过Co-Ordinator传达给外界。该位置可以基于时间的方式轻松旋转。

另一种方法可以是根据经验>同一项目的经验>同一公司的经验来安排首席开发人员。并且,如果需要,可以逐个相位旋转位置。理想情况下,每个开发阶段都有自己的一套要求和可交付成果,可以作为一个小型项目进行规划和工作。每个阶段使用不同的导程将使旋转的几乎所有负面影响最小化。


1

不用轮换首席开发人员,而是轮换项目负责人,他是最了解和最能使x项目完成的人。

Lead Developer通常是一种晋升,应该获得。

但是,要帮助培训和发展领导技能,请轮换负责不同项目的人员,然后清楚地衡量他们的执行或不执行情况。


0

必须有一个团队负责人,就像在足够大的船上有一个船长一样。

如果管理者没有或不能担任该角色,则必须任命一名开发人员来担任该角色。


0

我认为您首先应该集体意识到,拥有在开发团队内部做出所有技术决策的力量是多么幸运。有多少团队遭受微观管理层次结构的沉重负担,这些层次将他们的技术要求强加于他们,常常导致选择不一致,兼容性噩梦和开发人员沮丧...

就您提到的开发主管的好处而言,如果实际上在技术技能方面自然有出色的人才,那么其中一些(有组织的技术指导...)应该已经在发生。如果是这样的话,我看不到正式任命该人为首席开发人员会比您现在得到的结果更好。如果您的团队中不存在这样的团队成员,那么我将无法看到正式授予任何人技术授权会比讨论和集体决策带来更好的结果。

我认为建立组织领导者(即丹麦人所说的协调员)具有更大的价值。不是经理,不是老板,而是负责组织集体决策过程并充当团队代言人的人,即与外界的联系。如果您采取这种方式,轮换可能是避免上述问题的好主意-薪资差异,嫉妒...


0

有时候,成为领导者比其他事情更重。有人要对选择负责,这就是当没有其他人愿意做的时候社会的运作方式。

团队想要轮换领导者这一事实可能意味着每个人都认为自己可以为自己的所作所为承担责任,并且他们不想偏爱任何人,这似乎是一件好事:没有难过的感觉,并且每个人都希望团队取得成功。

在这些情况下,如果要做出艰难的决定,只需对这些决定进行表决,而当您需要代表与他人交谈时,只需选出具有最佳沟通技巧的人即可。


-1

首先,我认为您需要分离角色。毫无理由地,团队和公司其他部门之间的联络人也必须是做出最终技术决策的人。

充当联系点不应授予任何权限,因此不必按固定的时间表轮换职责。我想说说让团队坐下来,每个人都说他们愿意为这项工作做些什么(有些人可能喜欢,其他人可能强烈反对这样做),然后投票给某人以填补这个职位。让他们明白,一旦厌倦了他们可以将其移交给其他人。

至于技术领先方面。如果每个人都具有相同的技能和大致相同的经验水平,那么可以肯定,让每个人都尽力成为一名领导。重要的是绝对不要更改中间项目。等到新项目开始之前,然后选择在该领域经验最多的领导者,或者随机选择。

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.