项目团队可以由一个或多个职能部门或组织组成。一个跨部门的团队由来自多个部门或组织的成员,并通常涉及组织结构的矩阵管理。从项目管理过程来对项目团队进行定义:“项目团队包括被指派为项目可交付成果和项目目标而工作的全职或兼职的人员,他们负责:理解完成的工作;如果需要,对被指派的活动进行更详细的计划;在预算、时间限制和质量标准范围内完成被指派的工作;让项目经理知悉问题、范围变更和有关风险和质量的担心;主动交流项目状态,主动管理预期事件。”
本文谈的是糟糕蹩脚开发团队存在的普通问题。本人从事软件开发几年以来,先后参与过多个软件开发团队,也管理过几个软件开发团对,发现好的团队各具特色,单是不好的团对却如出一辙,基本上都存在以下几个方面的问题:
1、 项目经理领导不力
有效的领导是高效率软件开发团队的基本要求,如果领导不力,工作计划就不一定会合理,团队成员也不一定会投入工作的热情,使团队的凝聚力大打折扣;如果领导不力,就不一定有明确且具有挑战性的目标,团队成员就无法完成高质量的项目产品,无法投入信心和激情。传统的旧体制下的管理思想的沿袭,是部分领导还具有老大爷的心态,于是贪功、推卸责任、明则保身等一系列现象也相继而生;如果领导不力,就无法营造融洽的交流环境,团队的工作便是死板的没有生气的;如果领导不力,就不知道采用什么样的开发过程是合理的,就不可能高效率、高质量的完成软件项目。领导不力还可能导致其它问题的出现。
2、 成员相互的合作并不协调
在一个开发团队中偶尔有部分人不愿意与整个团队合作,也许是这些人性格比较保守,也许是有某些不平衡的心态,也许是他们还没有明白目标是什么,也许他们并没有体验到团队开发成功的快乐,等等。不管怎样,这种情况的出现必然影响融洽的交流环境。也许是一些不良的传统观念和思想的沿袭,一些软件开发团队出现了排挤其它有异议的成员、推卸责任、相互指责、贪功等,这种情况是最坏的,但却事实存在。
3、 成员缺少必要的信心和激情
也许你会发现周围的一些同事仅仅是为了薪水而工作,在执行工作的时候即使发现了上层领导忽略的问题依然照糊涂画瓢也不反馈问题所在,即便他是个天才,但成功不会属于他的,因为成功垂青于有激情的人才,其实这些同事并不是一开始就缺少激情的,原因也许是失去了信心,而暂时做"糊涂人"而已,无论如何,缺少信心和激情的团队,只会是一盘散沙。
4、 团队中角色职责定义模糊不清
软件开发是由不同角色的成员共同协作完成的,但一些开发团队却没有对各种角色成员的职责做出明确的定义,成员就无法明确知道自己的目标,很简单的道理,都不知道要做的是什么,能按时准确的完成吗?如果每人都按自己想象中的职责去工作,那么有多少工作冲突、多少遗漏,谁能给出正确的估计?没有明确的职责定义人力资源的安排可能合理吗?结果可能是找了个资格较老的程序员做了项目经理,找了个没有理会对象概念的人去做面向对象的系统分析,找个不顾网络安全、网络流量、事务特性、运行费用的人去设计一个分布式系统,等等。有才华的人也许只能跺在被窝里激呼怀才不遇或许能做个美梦安慰自己!!
一般来说,一个正规的软件开发团队,不会同时出现以上的问题,如果同时出现了,那么这个团队是应该解散或者停业整顿的团队,可能除了以上几点以后,不好的团队还有其他问题,但这几点确实是我体会的最多的。