标签:灵活 参考文献 绩效考核 竞争优势 break 考核 cti 相互 传统
项目管理是软件工程中的关键部分,而在项目管理中采取的平衡原则,使得各因素之间的关系相互协调,使目标结果达到一个“最优化”的程度。如何采取措施才能尽可能达到所谓的“平衡”是我们本次讨论的目标。
一.什么是平衡
笔者在看到项目管理中寻求这四个因素之间的平衡时,首先想到的是大致如下的关系:
结合生活实际,其实我们可以用通俗的语言描述其中的六条关系:需求的提升,我们消耗的资源会增加;我们完成的工期与用户的需求相连,用户不希望工程交付的太过晚;同时,用户需求中包含着质量的高低;相比较来说,保证一个好的质量需要我们投入更多的资源;要完成一个工期;同时一个高的质量产品,也不是赶工期就可以完成的。这也要求我们实际考虑时应该达到这样一个效果,即达到一个多元函数Y=F(demand,resource,time,quality)的最优值。
在讨论平衡之前,有必要认识项目管理,项目管理的目标不只上述所陈述的4个因素,还包括风险管理、配置管理等等,对于项目管理来说,更是一个具有综合性以及复杂性的任务,了解需求管理、资源管理、时间管理以及质量管理的同时,我们也会发现所谓的平衡原则或许渗透到了其中。本次我们们以平衡原则中几个重要原则:分解、优先、高效、合作为例进行讨论。
二.分解原则
所谓“全局规划,分布实施,步步见效”,为了我们的管理更有层次。在需求管理中首先要进行分类管理,将软件需求分出层次,不同层次需求的侧重点、描述方式和管理方式是不同的。例如,高层领导人提出来的需求是目标性需求,中层管理人员提出来的需求是具体的业务流程的需求,而作业人员提出来的需求是侧重于操作性的需求。这也反映了我们的全局规划,自上而下的工作需要有序的进行。
这里介绍一个对工作分解的结构:WBS(Work Breakdown Structure)结构。创建WBS结构是把项目可交付成果和项目工作分解成较小的,更易于管理的组成部分的过程。WBS的基本定义是:以可交付成果为导向对项目要素进行分组,它归纳和定义了项目的整个工作范围每下降一层代表对项目工作的更详细定义。这样的分解,使得每个部分实施起来更有效果。下图便是一个WBS的建房例子
使用WBS也需要注意:顶层级别代表了最终的目标;分结构一般代表着工作组里面不同的部门;所有WBS中的元素不需要定义为相同的级别;一个工作块相比较其他工作块来说是独立的,它的完成最好不超过10天。
三.优先原则
在软件工程中之所以需要优先原则是我们解决主次矛盾的问题。我们可以适当运用Pareto规则(二八定律):在实际中企业80%的问题可以用20%的投资解决,而20%的次要问题则需要花费80%的投资的。在软件项目中,如果出现了过多的需求,通常会导致项目超出预算和预定进度,最终导致软件项目的失败,此时需求的优先级可能比需求本身更为重要。例如,负责软件需求的领域专家列出一个很长的功能表,但最终费用和工期无法接受。这时候我们需要裁剪需求,对需求划分优先级,一个好的项目需求,必须有需求的优先级,便于进行项目的整体平衡。
时间管理中也是有同样的问题,把待办工作分为4种,紧急重要的工作、重要不紧急的工作、紧急不重要的工作和不紧急不重要的工作,紧急任务要求立即执行,其中排在第二和第三位置的安排是因为项目组常常处于紧急任务与重要任务互相排挤的状态中,紧急任务是要求立即执行的,使得项目组没有时间考虑重要任务,人员在承受时间施加的无休止的重压,会使他们搁置重要任务,进而导致更为严重的长期的后果。
四.高效原则
保持项目时刻的高效也不是仅落实在一个方面就可以的,在人员的安排,目标的选择,及时的交流都会影响我们工作的速度与质量。什么是高效?笔者认为在短时间内完成高质量的任务就是高效。这里,资源尤其是人力资源的管理是非常重要的。“在IT行业,很难在合适的时间找到合适的人才,很难合理地组织人才和留住人才,很难恰当地使用人才和培养人才”。正如在项目组中,首先要遴选精英成员,还要使其各司其职。例如,我不能把一个擅长做规划的人安排去编写程序。
软件项目的人力资源分配大致符合Norden-Rayleigh曲线分布。那么Norden-Rayleigh曲线是什么呢?
图中横坐标表示项目的整个工期,纵坐标代表需要的人力资源数量,虚线画出的矩形显示了平均使用人力所造成的问题:开始阶段人力过剩,造成浪费(1区域);到开发后期需要人力时,人手不足(2区域);后来补偿时间过晚(3区域)甚至可能现Brooks定律的情况:“向一个已经拖延的项目追加新的开发人员,可能会使这个项目完成得更晚”。
不可或缺的沟通管理:沟通管理是对项目过程中产生的各种信息进行收集、存储、发布和最终处理,由沟通计划编制、信息发送、性能报告和阶段的结束构成。沟通,不仅包括项目组内部程序员和项目经理的沟通,还需要客户与项目组的沟。沟通的不足会导致效率的降低。举个例子:客户在检查项目阶段的某个成果时,指出曾经要求的某个产品特性没有包含其中,项目经理却对此一无所知,原因是客户以口头的方式反映给了项目组的成员但是该成员忘记了这一点。还有,程序员在设计评审时描述的模块架构与软件开发的架构大相径庭,这就在于项目经理和开发人员之间的沟通不足,要注意团队的沟通。
关于人员评估:通过评估我们可以激励人员,保证绩效。良好的绩效管理可以一目了然地反映项目成员的业绩,一切以数据说话,更能体现公平。绩效考核分项目绩效和个人绩效两个部分,项目绩效从项目成本、利润、完成计划情况、项目质量、规范程度、文档水平、技术、产品化和共享度方面评价项目效果。个人绩效采用员工自评和与项目经理考核相结合的方式,从敬业精神、工作责任感、个人技能、个人贡献、团队合作、工作效率及完成情况进行评估。需要注意的是,绩效考核完全公平很难做到,因此我们要以鼓励为原则,不断完善绩效制度,尽量量化指标减少人为因素的干扰,并正确对待项目的失败,关键要做的是认真总结其经验与教训。
五.合作原则
开发一个项目,一个工程显然一个人的力量是远远不够的,一个团队组建的完成不等于团队建设的完成。团队建设可以促进成员之间的相互合作。首先,对于一个优秀的项目经理而言,他需要成为一个出色的项目团队建设者,为了保证团队有效,可以从以下几个方面考虑:
1.对团队成员有耐心、友好;
2.解决问题而不是责备人,把注意力放在行为上,帮助他人解决问题;
3.召开有经常性的、有效的会议,注重项目目标的实现及产生有效的效果;
4.将每个工作组的人数限制在3-7人;
5.计划一些社会性的活动来帮助项目组成员相互了解;
6.强调团队的统一性,创建团队成员喜欢的传统;
7.认可个人和团队的绩效;
前文所述的沟通管理,也是合作表现的一个部分;除此之外,还应该培训学习型组织氛围。在项目所实施的过程中,客户的需求在逐步明确和提高,功能要求更加理性并趋于合理,不仅要求系统的灵活性、适应性和可扩充性,项目成员自身提高的愿望也是学习型组织的动力之一。通过全员参与学习的氛围,把集体利益和个人利益结合起来,挖掘整个项目团队的潜力和智慧,提升项目团队的竞争优势。
六.结语
笔者认为,软件工程中的项目管理,是一项不同于纯技术的知识。与以往我们不断学习练习的编程能力不同,这其中有很多管理学领域的知识,更体现了这个系统的复杂性。同时,这也是体现“人”的一方面,操作对象不再仅仅是机器和二进制码。如何协调人与人之间的关系,人与机器资源之间的关系等都是项目管理之间的内容。作为一个好的项目经理应该具备很多这样的“人性化”的考虑,同时又能使任务高效地完成。
本次讨论的平衡原则,则是项目管理中遵循的一个普遍原则。当然,更广泛地说的话,所谓“平衡原则”,体现在管理各个因素的里面,诸如单独讲需求管理、资源管理里面的平衡原则是具有局限性的。考虑“平衡原则”,我们应该综合考虑这些因素,然后计划出一个有效的策略。
当然,项目管理更是一种实践,一种经验,仅从书本及文献中的内容还不足以让我们真正掌握它的精髓,这些理论更是从广大实例中总结而来的,管理理论来源于实践,又回归实践,当我们真正经历了某个项目的开发,管理了某个项目,我们才能够真正体会项目管理在软件工程艺术性的存在。
参考文献
[1].Roger S.Pressman .Software Engneering A Practitioner’sApproach
[2].覃征,徐文华,韩毅,唐晶.软件项目管理,清华大学出版社
[3].刘凤华,任秀技.软件项目管理,中国铁道出版社
[4].http://www.workbreakdownstructure.com/ Work Breakdown Structure
[5].http://baike.baidu.com/link?url=SFe2-OpnS4WHqpETO8gD79on5hdMH0SdX5g533YJW1SJ-TLhRxGT0Of19VkrUD9weDeuh6PjropkJW-3tVZT3913_ceZsxYjJD1imKlU_-_ WBS(工作分解结构)
[6].http://blog.csdn.net/bamboolsu/article/details/43918821 软件项目管理的一些原则
[7].http://wenku.baidu.com/link?url=foLWc31Sybkg3mKpundalASnBhs9F-QklEb7ZX7dMnQCmakE1p8nPuZqCN9n6doqbgjy2ukoJPjvuZS6kMFMNuI3fMIHbcHMJPYODhf3PsS百度文库 软件项目管理的平衡原则
标签:灵活 参考文献 绩效考核 竞争优势 break 考核 cti 相互 传统
原文地址:http://www.cnblogs.com/lyhbuaa/p/5989849.html