软件项目人力资源管理包括为最有效地使用参与项目人员所需的各项过程,一般包括组织规划、人员招募和团队建设三个主要过程。
1.组织规划
组织规划用于确定、记录并分派项目角色、职责和请示汇报关系。角色、职责和请示汇报关系可以分派给个人或者集体。这些个人与集体可以是项目实施组织的一部分,也可以来自组织外部,通过人员招聘、借用等方式获得。实施组织往往与某个具体职能部门相关,例如,工程部门、销售部门或者财务部门,通过与职能经理协商、谈判等方式获得。
软件项目组织一般由担当各种角色的人员所组成。每位成员扮演一个或多个角色,常见的一些项目角色包括:策划师、数据库管理员、设计师、操作/支持工程师、程序员、项目经理、项目赞助者、质量保证工程师、需求分析师、用户、测试人员等。组织规划取决于可供选择的人员、项目的需求及组织的需求,组织的具体形式可以有三种方案:垂直方案、水平方案和混合方案。以垂直方案组织的团队由多面手组成,每个成员都充当多重角色。以水平方案组织的团队由专家组成,每个成员充当一到两个角色。以混合方案组织的团队既包括多面手,又包括专家。
如果可供选择的人员中大多数人员是多面手,则往往需要采用垂直方案;同样,如果大多数人员是专家,则采用水平方案。如果正引入一些新人,即使这些人员都是合同工,则仍然需要优先考虑项目和组织。本节描述了形成团队组织的垂直、水平和混合方案,并指出了它们各自的优缺点。
(1)垂直团队组织。垂直团队由多面手组成。如,功能模块分配给了个人或小组,然后由他们从头至尾地实现该功能模块。其优点在于,以单个功能模块为基础实现平滑的端到端开发;开发人员能够掌握更广泛的技能。而缺点也很明显:多面手通常是一些要价很高并且很难找到的顾问。多面手通常不具备快速解决具体问题所需的特定技术专长。主题专家可能不得不和若干开发人员小组一起工作,从而增加了他们的负担。所有多面手水平各不相同。
(2)水平团队组织。水平团队由专家组成。此类团队同时处理多个功能模块,每个成员都从事功能模块中有关其自身的方面。其优点在于能高质量地完成项目各个方面(需求、设计等)的工作;一些外部小组,如用户或操作人员,只需要与了解他们确切要求的一小部分专家进行交互。其缺点在于:专家们通常无法意识到其他专业的重要性,导致项目的各方面之间缺乏联系;由于专家们的优先权、看法和需求互不相同,所以项目管理比较困难。
(3)混合团队组织。混合团队由专家和多面手共同组成。多面手继续操作一个功能模块的整个开发过程,支持并处理多个功能模块,使各部分的专家们一起工作。它可能拥有前两种方案的优点:外部小组只需要与一小部分专家进行交互;专家们可集中精力从事他们所擅长的工作;各个功能模块的实现都保持一致。但是它可能拥有前两种方案的缺点:尽管这应该由多面手来调节,专家们仍然不能认识到其他专家的工作并且无法很好地协作;多面手较难找到,故而,项目管理仍然较难。
因而,要综合考虑、确定团队组织方案。在方案确定后,合理配备人员是成功完成软件开发项目的切实保证。所谓合理配备人员应包括按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段、不同层次技术人员的参与情况是不一样的。如人员配置不当,很容易造成人力资源的浪费,并延误工期。特别是采用恒定人员配备方案时,在项目的开始和最后都会出现人力过剩,而在中期又会出现人力不足的情况。
在多数项目中,组织规划大都是作为项目早期阶段的一部分进行的。但在项目的整个过程中都应对其结果定期检查,以保证其继续适用性。如果当初的组织规划已不再适用,就应该及时对其进行修改。
2.人员招募
人员招募指获取分派到项目上、并在那里工作所需的人力资源(个人或集体)。在多数环境中,很可能无法到“最佳”资源,因此项目管理团队必须注意保证所物色到的人力资源符合项目要求。
通过前一阶段完成的成果——人员配备管理计划,来进行实际的人员招募。首先必须了解组织可用/备用人员库的情况。按照组织规划确定的人力资源需求情况,充分考虑可调配人员的特点。要考虑的问题主要有:
以往经验——这些个人或集体以前是否从事过类似或者相关的工作?工作表现如何?
个人兴趣——这些个人或集体对本项目的工作感兴趣吗?
能否得到——最理想的个人或集体人选能在规定期限内招募到手吗?
胜任与熟练程度——需要何种能力及何种水平?
而后,通过谈判、事先分派和采购等方式获取项目人员,以保证项目在规定期限内获得足以胜任的工作人员。其中谈判对象可能是实施组织的职能经理,也可能分到其他项目团队,以争取稀缺或特殊人才得到合理分派。在某些情况下,人员可能事先被分派到项目上。
这种情况往往发生在:项目是方案竞争的结果,而且事先已许诺具体人员指派是获胜方案的组成部分,或者项目为内部服务项目,人员分派已在项目章程中明确规定。在实施组织缺乏完成项目所需的内部人才时,就需要动用采购手段。
项目经理是团队组织的核心,其综合素质直接影响项目的成败。一般要求项目经理具备如下能力:
(1)领导能力。项目经理必须具备高超的领导才能和强烈的科技意识和较强的业务处理能力。领导能力,简单地说,通过项目团队来达到目标。
首先,项目经理应懂得如何授权和分配职责,采取参与和顾问式的领导方式,发挥导向和教练作用,让成员在职责范围内充分发挥能动性,自主地完成项目工作;
其次,项目经理应善于激励。由于项目经理通常没有太大的权力对成员进行物质方面的激励,因此,非物质激励方式就特别重要。例如,借助项目的唯一性,给项目成员接受挑战的机会往往可以对优秀的项目成员起到极大的激励作用;另外,对项目成员的工作成绩要及时表示认可。及时是非常重要的,并且最好是当众表扬,例如,在上级领导或客户面前对项目团队或具体成员做出正面的评价。
第三,项目经理应该为成员树立榜样,表现出积极的心态,成为团队的典范和信心的源泉。只有身先士卒,各方面以身作则,才能得到广大开发人员的认可和信任,才能树立较高的威信。
第四,项目经理应该能够果断抉择,负责人的重要任务是决策,特别是有多种选择的情况下,一个正确的选择往往事半功倍。
(2)沟通技巧。有效的沟通是项目顺利进行的保证,沟通及时、集思广益、步调一致,才能取得项目最终的成功。项目过程中,项目经理需要通过多种渠道保持与团队及分包商、客户方、公司上级的定期交流沟通,及时了解项目的进程、存在的问题及获得有益的建议。
沟通的方式可以是口头的或书面的,如:面谈、电话、邮件、会议等。在沟通过程中,项目经理应善于提问,并做到有效地聆听,能经常站在对方的角度思考问题。
(3)人际交往能力。良好的人际关系有助于项目的协调,避免生硬的操作方式。项目经理必须积极对外联络,充分利用外部资源,例如其他部门做过类似项目者,可以向他们取经甚至直接获得源码。这对一个项目争取时间,避免重复工作很重要项目协调是随时需要的,主要来自于项目内部及客户,可能是资源的配置问题,也可能是项目范围的调整等。人际交往需要从一点一滴做起,而且往往发生在项目工作之外,项目经理需要采取主动、热情的姿态。
(4)应付压力的能力。项目的特点决定了项目工作过程存在一定的不可预见性,项目经理需要做好随时面对压力甚至是冲突的准备。一旦面临压力或冲突,最重要的是保持冷静,避免使项目陷入困境。项目经理要以乐于解决问题的姿态出现在团队及上级或客户面前。
(5)培养员工的能力。出色的项目经理重视对项目成员的培养,通过项目过程使小组每个成员都能发挥才能并提升员工的能力,促进员工的自我发展。项目经理要帮助成员明晰自己的职业与技能发展方向,分配合适的工作任务,鼓励学习和相互交流,让项目小组成员具有很强的成就感。
(6)时间管理技能。当需要在同一时段处理两项以上的任务时,时间管理就是必要的。而项目经理往往需要同时面对数项甚至十几项任务,可见有效的时间管理是极为重要的。项目经理不仅需要管理好自己的时间,还需要与相关部门及人员订立时间使用协议,尽量减少非预期的时间占用。
合格的项目经理具有敏锐的洞察力,能瞄准目标,实事求是,精心组织,坚决果断,灵活应变,享有信誉;善于制订计划,解决问题,沟通信息;具有良好的市场意识和交际能力。
当然同时满足这些条件比较困难,但是他应该具有实现这些条件的素质,并注重经验的积累、素质的提高和能力的培养。
3.团队建设
项目团队的建设既包括提高项目干系人作为个人做出贡献的能力,也包括提高项目团队作为集体发挥作用的能力。个人的培养(管理能力与技术水平)是团队建设的基础,而团队建设则是项目实现其目标的关键。
因为软件开发是一项长期艰苦的工作,一个团结、协作的团体才能在规定的时间内完成一个质量上乘的软件项目。团队中的每个人必须积极融入整个集体中,不能互相推诿,更不能互相埋怨和指责,正确的态度是大家在充分信任的基础上团结协作、互相帮助、主动承担任务,利用集体的智慧获得成功。整个团队就是一部机器,只有每一个齿轮都能正常运作,才能生产出优质的产品。
人是最宝贵的资源,在软件项目中,应该为软件开发人员和管理人员等各类项目人员营造一个和谐、良好的工作氛围,为开发人员创造出一个人尽其才的环境也是项目成功的重要环节,让他们能得心应手地施展自己的才华,特别在工作安排上要煞费苦心,针对每个人不同的特长,根据项目的具体环境和条件把人员合理地安排在恰当的岗位上。使他们能感到项目成功的把握并有积极的工作心态,将项目作为自己事业的一部分,确保项目队伍的稳定性和连续性。在项目结束之际,项目团队的各个成员是否感到他们从自己的经历中学到了一些知识、是否喜欢为这次项目工作,以及是否希望参与组织的下一个项目都是非常重要的。
对于软件项目团队的成长规律,有人归纳出了以下 4 个阶段:
(1)形成阶段。形成阶段促使个体成员转变为团队成员。每个人在这一阶段都有许多疑问:我们的目的是什么?其他团队成员的技术、人品怎么样?每个人都急于知道他们能否与其他成员合得来,自己能否被接受。
为使项目团队明确方向,项目经理一定要向团队说明项目目标,并设想出项目成功的美好前景及成功所产生的益处;公布项目的工作范围、质量标准、预算及进度计划的标准和限制。项目经理在这一阶段还要进行组织构建工作,包括确立团队工作的初始操作规程,规范沟通渠道、审批及文件记录工作。所以在这一阶段,对于项目成员采取的激励方式主要为预期激励、信息激励和参与激励。
(2)震荡阶段。这一阶段,成员们开始着手执行分配到的任务,缓慢地推进工作。现实也许会与个人当初的设想不一致。例如,任务比预计的更繁重或更困难;成本或进度计划的限制可能比预计的更紧张;成员们越来越不满意项目经理的指导或命令。
震荡阶段的特点是人们有挫折、愤怨或者对立的情绪。这一阶段士气很低,成员可能会抵制形成团队,因为他们要表达与团队联合相对立的个性。因此在这一阶段,项目经理要做导向工作,致力于解决矛盾,决不能希望通过压制来使其自行消失。这时,对于项目成员采取的激励方式主要是参与激励、责任激励和信息激励。
(3)正规阶段。经受了震荡阶段的考验,项目团队就进入了发展的正规阶段。项目团队逐渐接受了现有的工作环境,团队的凝聚力开始形成。这一阶段,随着成员之间开始相互信任,团队内大量地交流信息、观点和感情,合作意识增强,团队成员互相交换看法,并感觉到他们可以自由地、建设性地表达他们的情绪及意见。
在正规阶段,项目经理采取的激励方式除参与激励外,还有两个重要方式:一是发掘每个成员的自我成就感和责任意识,引导员工进行自我激励;二是尽可能地多创造团队成员之间互相沟通、相互学习的环境,以及从项目外部聘请专家讲解与项目有关的新知识、新技术,给员工充分的知识激励。
(4)表现阶段。团队成长的最后阶段是表现阶段。这时,项目团队积极工作,急于实现项目目标。这一阶段的工作绩效很高,团队有集体感和荣誉感,信心十足。团队能感觉到被高度授权,如果出现技术难题,就由适当的团队成员组成临时攻关小组,解决问题后再将相关知识或技巧在团队内部快速共享。
这一阶段,项目经理需要特别关注预算、进度计划、工作范围及计划方面的项目业绩。如果实际进程落后于计划进程,项目经理就需要协助支持修正行动的制定与执行。这一阶段激励的主要方式是危机激励、目标激励和知识激励。
需要强调的是,对于信息系统建设人才,要更多地引导他们进行自我激励和知识激励。
当然,足够的物质激励是不言而喻的,它从始至终都是最有效的激励。
激励的结果是使参与信息系统的所有成员组成一个富有成效的项目团队,这种团队具有
如下特点:
能清晰地理解项目的目标;
每位成员的角色和职责有明确的期望;
以项目的目标为行为的导向;项目成员之间高度信任、高度合作互助。总之,科学地进行团队建设有助于按期、保质、高效、在预算内完成软件项目。