如何组织软件开发团队
如何构建软件开发团队取决于可供选择的人员、项目的需求以及组织的需求。本文阐述了各种团队组织的策略。友商社区 ] ~E^"lP
有效的软件项目团队由担当各种角色的人员所组成。每位成员扮演一个或多个角色;可能一个人专门负责项目管理,而另一些人则积极地参与系统的设计与实现。常见的一些项目角色包括:
3j!x+{2`,i C k0·分析师友商社区h~[)|q `1xW O
·策划师
9~&E_QS1@0·数据库管理员友商社区r^1^4\V E
·设计师友商社区M `(lB$DI(}K
·操作/支持工程师友商社区!]'q|(bRu*W
·程序员
0TF9?,B0\2hK4_0·项目经理友商社区4q*e:AL/f5k0T1Q&tB%i
·项目赞助者
n%mf4vo0·质量保证工程师
'?+ex&tI`h p0·需求分析师
"Wq.} c+myk,S!~N-l)dl0·主题专家(用户)友商社区;a.b8SaZ }5GaIW{V
·测试人员
o N9Ui6o7g!{C0您是如何组织项目团队的?是采用垂直方案、水平方案还是混合方案?以垂直方案组织的团队由多面手组成,每个成员都充当多重角色。以水平方案组织的团队由专家组成,每个成员充当一到两个角色。以混合方案组织的团队既包括多面手,又包括专家。友商社区&p-RLia
一个重要的考虑因素是可供选择的人员的性质。如果大多数人员是多面手,则您往往需要采用垂直方案,同样,如果大多数人员是专家,则采用水平方案。如果您正引入一些新人,即使这些人员都是合同工,则仍然需要优先考虑您的项目和组织。本文描述了形成团队组织的垂直、水平和混合方案,并指出了它们各自的优缺点。本次讨论的一个重要含意是您的团队组织和用于管理项目的手段之间应构成默契;任何方法上的失谐都很可能导致项目产生问题。
Z:k h.Xx0NDh1N+N2nf$L0
垂直团队组织友商社区J$FZFH
垂直团队由多面手组成。用例分配给了个人或小组,然后由他们从头至尾地实现用例。友商社区\K4t4j:j1~WB
C&d#?iXH$^*d6B0
优点
P?x5z}O*gKO0G0·以单个用例为基础实现平滑的端到端开发。友商社区 AMb3P5q$Y_
·开发人员能够掌握更广泛的技能。
UU t(?O0!M3r%nE/wt3rn-_)oV0
缺点友商社区;`*Dkb X%q lA
·多面手通常是一些要价很高并且很难找到的顾问。
/`9I(f9^1Q6V"@1Q0·多面手通常不具备快速解决具体问题所需的特定技术专长。
q|[1Q;f4K#\n#O(Y$v0·主题专家可能不得不和若干开发人员小组一起工作,从而增加了他们的负担。友商社区Q`J E*?S2o3LN%I7w
·所有多面手水平各不相同。
@tdw i{)U[0z#zi`5_R F.`_&}0
成功因素
;`lc\X*\J bg0·每个成员都按照一套共同的标准与准则工作。友商社区(enV?t JP
·开发人员之间需要进行良好的沟通,以避免公共功能由不同的组来实现。
GE.].E {iE:BL/Y0·公共和达成共识的体系结构需要尽早在项目中确立。友商社区~+IrYi
Po gZ%YLF3hIB0
水平团队组织友商社区#a:nb\XTu"UB9S
水平团队由专家组成。此类团队同时处理多个用例,每个成员都从事用例中有关其自身的方面。友商社区)iRj{/V:A;m
优点友商社区W)^-x3^j+O9B#\U
·能高质量地完成项目各个方面(需求、设计等)的工作。友商社区1kI8W#na:c(jK
·一些外部小组,如用户或操作人员,只需要与了解他们确切要求的一小部分专家进行交互。
.px9x XN"z0M:DM&s hi N0
缺点
)Z kC-j.mKv'fI%g.Q0·专家们通常无法意识到其它专业的重要性,导致项目的各方面之间缺乏联系。友商社区Dt4` e"u
·“后端”人员所需的信息可能无法由“前端”人员来收集。
P9b%q~2w\V5t0·由于专家们的优先权、看法和需求互不相同,所以项目管理更为困难。友商社区f)m.z(p,L bO
a0h-] e}Uc0
成功因素
%\#G+Jl0U-rg0·团队成员之间需要有良好的沟通,这样他们才能彼此了解各自的职责。
7SD$}.oj8Ql l OI0·需要制定专家们必须遵循的工作流程和质量标准,从而提高移交给其他专家的效率。友商社区GL/O4c.W*} t(sV
友商社区c$F6S%O2eI["iTX!S
混合团队组织友商社区u9u+hOw'f Etr1o
混合团队由专家和多面手共同组成。多面手继续操作一个用例的整个开发过程,支持并处理多个使用例中各部分的专家们一起工作。
~RX [G5{:j0优点友商社区l3r&pY,Uizi
·拥有前两种方案的优点。
{*Ko5H1y0·外部小组只需要与一小部分专家进行交互。友商社区)s.D$UTM;|N
·专家们可集中精力从事他们所擅长的工作。友商社区4F&rC@^?
·各个用例的实现都保持一致。友商社区2j{K x}n(K3}u
友商社区6s^"}:u\:z
缺点友商社区5f'nU^ CX_%hq0p
·拥有前两种方案的缺点。
&\@2M{v;N-J]0·多面手仍然很难找到。
(n|Gn E#{,j.v0·专家们仍然不能认识到其他专家的工作并且无法很好地协作,尽管这应该由多面手来调节。友商社区&O2?k|1L@4a
·项目管理仍然很困难。友商社区 ejL3vm%D&Q