“最佳”团队结构取决于组织的管理风格、团队组成人员的数量以及他们的技术水平,还有整体的问题难度。Mantei[Man81]提出了一些在策划软件工程团队结构时应考虑的项目因素:
(1)需解决问题的难度;
(2)基于代码行或功能点°的结果程序的“规模”;
(3)团队成员合作的时间(团队寿命);
(4)问题可模块化的程度;
(5)所建系统的质量和可靠性;
(6)交付日期要求的严格程度;
(7)项目所需的社会化(交流)程度。
Constantine[Con93]针对软件工程团队提出了四种“组织模式”:
1.封闭模式组成的团队遵循传统的权力层级模式。这样的团队在建立与之前的成果十分相似的软件时能做得很好,但以封闭模式工作时创新性上相对较弱。
2.随机模式组成的团队是松散的,并依靠团队成员的个人自发性。在需要创新和技术性突破时,这类团队可以做得很优秀。但是很难完成“有秩序的操作”。
3.开放模式尝试组成一种团队,既具有封闭模式团队的可控性,还具有随机模式团队的创新性。成员们合作完成工作,并有丰富的交流和达成共识的决定,这些都是开放模式团队的特点。开放模式团队适合解决复杂的问题,但没有其他团队的效率高。
4.同步模式组成的团队有赖于问题的自然区分,不需要很多的交流就可以将成员组织起来共同解决问题。
对于主程序员团队结构,Constantine 的随机模式观点认为,对于具有创造独立性的团队,其工作方法最好是创新的无序。尽管完成软件工作需要有自由意识,但是软件工程组织的核心目标必须是将创新活力运用于创建高效能团队。