我很惊讶每个人都认为这是一件好事。Peopleware的作者(IMO,仍然是少数几本真正值得一读的软件项目管理书籍之一)非常不同意。本书几乎整个第四部分都专门针对此问题。
软件团队是一个非常重要的功能部门。团队需要果冻才能真正发挥作用。团队成员需要时间(很多时间)来赢得彼此的尊重,学习彼此的习惯,怪癖以及优缺点。
当然,从个人经验来看,我可以说,与某些人一起工作了一年之后,我学会了嘲笑某些使我烦恼的事情,我对团队领导的估计要好得多,并且要完成该任务并不难分发工作,使每个人都开心。一开始不是那样的。
现在您可能会说:“哦,但是我们并没有分散整个团队,只是移动了几个人。” 但是,请考虑(a)他们的替换将在一开始就盲目地徒劳无功,以及(b)您会发现自己或其他团队多少次甚至没有想过“我真的很喜欢X”或“ Y仍然在身边变得更加容易”,潜移默化地冒犯了新成员,并在现有团队中造成分裂,甚至在“老”成员中引起了不满。
人们当然不是故意这样做的,但是它几乎每次都会发生。人们没有思考就这样做。如果他们强迫自己不这样做,他们最终会更加专注于这个问题,并且对强迫的沉默感到沮丧。团队甚至子团队将产生协同作用,而当您拧紧结构时,协同作用就会丢失。该人件作者称它为“teamicide”的形式。
话虽如此,即使轮换团队成员是一种可怕的做法,轮换团队本身也很好。尽管运作良好的软件公司应该具有某种产品所有权的概念,但只要团队实际上能够完成旧项目或至少将其投入到项目中,将整个团队移至另一个项目对团队的破坏就不会那么大。他们满意的水平。
通过拥有团队职位而不是开发人员职位,您将获得与轮换开发人员所期望的所有相同收益(文档编制,“异花授粉”等),而每个团队作为一个整体都不会产生任何讨厌的副作用。对于那些不太了解管理的人来说,这似乎效率较低,但请放心,通过拆分团队而损失的生产力完全使将团队转移到其他项目而损失的生产力相形见war。
PS在你的注脚你提到的技术领导可能是唯一的人不被旋转。这几乎可以保证将两个团队搞混。技术负责人是领导者,而不是经理,他(她)必须赢得团队的尊重,而不仅仅是高层管理人员的授权。将整个团队置于一个从未与他们合作过的新领导的领导之下,这些新领导很可能对架构,可用性,代码组织,估计等事物有不同的想法……好吧,这真是令人头疼对于试图建立公信力的领导者而言,这对于缺乏旧领导者而开始失去凝聚力的团队成员而言。有时公司有要做到这一点,即如果领导者辞职或晋升,但凭选择去做听起来很疯狂。