使用CMMI提升软件开发的团队协作
钟绍聪/广州赛宝认证中心
摘要:本文从如何提升软件开发团队协作的角度解读CMMI模型中与团队协作相关的实践,并且根据实际的团队管理经验提出了相关的建议供团队管理人员参考。
关键词:CMMI-DEV V1.3,团队,协作
Abstract: This paper is to interpret teamwork related practices in CMMI model from the view point of software development teams, and provide relevant suggestions to team managers as reference according to practical team management experience.
Keyword: CMMI-DEV V1.3,Teamwork,Collaboration
1 前言
无论是开发小型项目还是大型项目,我们很少见到一个人能够担负起所有的职责。于是为了完成特定的工作而组成了各种形式的项目组或者小组,例如综合产品开发团队或者跨部门的项目团队。实际上,很多项目小组的工作效率并没有发挥“1+1>2”的效果,甚至出现了“1+1<2”的团队绩效。导致这种结果的原因有很多种,而其中一个常见的问题是这些小组只是简单的人和人的集合,并没有形成真正意义上理想的团队。那么如何建立一个团队,团队中应该建立什么样的文化?本文为了解答这个问题,尝试从CMMI for DEV V1.3(下文简称为CMMI)中寻找出相关的建议。
2 团队目标
许多团队根据项目的要求选择专业的人员,分解工作任务,安排进度然后开始项目的执行与监控,而忽视了建立团队时重要的一点——建立团队目标并使团队清楚了解。当团队中没有明确的团队目标时,各个角色的团队人员会以自己的立场评估问题。特别在软件开发团队中,在缺乏团队目标作为“判断基准”时,不同角色的人员会根据自身关注的判断准则去决定如何解决问题。例如设计人员考虑的是系统未来的可复用性,开发人员考虑的是完成工作的时间,而项目经理考虑的是产品的质量。因此建立团队目标可以降低团队成员各走各路,努力工作结果却相互冲突的现象发生。
根据CMMI的综合项目管理(Integrated Project Management)过程域中的实践“建立团队”的描述,项目团队在建立项目目标或愿景之前,应该充分了解各内部以及外部涉众的期望,然后指定出团队认可的项目目标或愿景。也就是说,团队建立之处,应该站在各方的角度考虑他们对项目的要求,明确并且尽可能量化地确定项目目标和要求,这可能需要项目管理人员平衡各方的利益冲突,充分了解并解释目标背后的原因。而在项目目标建立之后,并不只是一成不变地执行,而应该根据项目的进展以及对项目的理解,在需要的时机调整项目目标并获得团队人员的承诺。
3 团队职责
当人与人组成团队之后,团队需要沟通、协调、跟踪和汇报等管理性的活动,这就导致了在没有积极的团队管理活动时,团队绩效容易产生“1+1<2”的情况。提升团队绩效的方法有很多种,包括通过团队分工提升个人的绩效以及降低工作重叠带来的负面影响。
这里通过一个例子说明明确团队职责对提升团队绩效的帮助。例如一个团队由一名医生和一名小学生组成,他们的任务是完成一次手术和折一堆纸飞机,如果缺少了明确、正确的职责分配,采用例如医生和小学生一起做手术或者医生和小学生一起折飞机的职责分配,就会导致个人的能力和优势不能充分发挥,降低整个团队的绩效(注:小学生在折飞机时相比医生有着巨大的成本优势)。联想到我们经常看到的项目团队,让“英雄”们承担绝大部分的工作,这实际上没有充分发挥个人的绩效。如果考虑到个人专注在某个领域工作而效率更高的常识,正确和错误地分配人员导致的团队绩效差距会更为巨大。
工作职责重叠是指多人负责同一项任务或同一个职责。这可能导致多方在竞争控制权时耗费精力,也可能导致具体责任没有人承担而彼此推诿,需要花费额外沟通成本等结果。
根据CMMI的通用实践“分配职责”的建议,正确地理解任务和个人的特点,合理明确地分配人员职责能够给团队带来积极的作用,这是团队管理重要的工作之一。
4 团队决策
在项目中常会出现某些关键的问题对团队多数人的工作造成影响,而项目的管理人员因为信息、能力、经验、立场等原因,并不能完全做出对团队而言最优的决策,这个时候往往团队协作的共同决策能够解决这种问题。
CMMI的决策分析与解决(Decision Analysis and Resolution)过程域中的实践给出了相应的建议。例如建立决策的触发条件让团队了解开展团队决策的时机,避免关键决策都集中在小部分人范围内而导致的错误决策;建立决策的评价准则让团队能够理解参与决策的人员的关注点并根据团队目标对团队的各种期望进行优先级处理;还包括选择合适的决策方法使得团队能够在开放的环境中表达意见,并且获得全体的智慧。
除了避免产生错误的决策以外,团队决策在心理上能够让团队成员感受到重视,也更容易使成员对决定作出承诺,激励个人,提升团队的凝聚力。
5 团队分享
除了在“团队职责”章节提到提升个人及团队绩效的方法以外,建立学习型团队,鼓励团队分享信息与知识,同样有利于团队合作。
学习型团队强调建立分享的文化,集体思考和分析,打破个人的防卫心理等。在实际的管理工作中,团队管理者需要以身作则,并且发现并鼓励个人分享的行为。
在CMMI的综合项目管理(Integrated Project Management)过程域中的实践“向组织财富作出贡献”正是强调应该持续建立团队的财富库,积极推进知识分享的工作。
另外,团队管理者除了关注知识的收集以外,同样应该注意知识的分发,这样能够让财富库更好的产生应有的作用,并且使团队的成员因为感受到财富共享的好处受到激励。
6 结论
CMMI并不是只强调过程而否定了人,相反在其改进意见中能够发现不少对如何建立团队,重视个人的建议。团队管理者可以通过确定团队目标及愿景、明确团队人员职责、正确使用团队决策以及积极鼓励团队分享等工作,通过降低个人在团队中的冲突、激励个人、提升个人绩效以提升团队的绩效。
7 参考文献
[1] SEI,“CMMI-DEV,V1.3”
[2] Peter M. Senge,“The Fifth Discipline”
[3] Susan M. Heathfield,“How to Build a Teamwork Culture”