UML软件工程组织

软件项目管理常见问题分析(一)
作者:卢琳生

摘要:

本文分析了软件项目管理常见问题:缺乏项目管理系统培训、项目计划意识问题、管理意识问题、沟通意识问题、风险管理意识问题、不重视项目经验的总结、项目干系人相关问题、项目团队内分工协作问题,抛砖引玉地提出了部分解决方案,提出了项目约束绳与多重目标模型。

关键字:

软件项目管理、问题、分析

正文:

目前许多软件开发公司实行了ISO质量管理体系,也有越来越多的公司通过了CMM软件成熟度相应级别认证。各软件在制定ISO质量管理体系时结合了部分项目管理的思想和技术,因此这些经过认证的公司的项目管理工作在ISO质量管理体系或CMM的帮助或约束下已有一定的规范,项目可以按照规定的过程一步一步做下去。但ISO体系注重的是质量管理(即用过程保证质量),早期更多的是针对制造业,而CMM主要是针对软件开发过程的关键过程域,都没有针对项目管理的全部范畴,如对于整体、范围、进度、人力资源、成本、沟通、风险、采购等的管理,即使有涉及到也是在专业范围内通过对过程的把握来保证各种质量要求,而在过程规定之外还需要依靠项目相关各方运用项目管理知识、工具、集体与个人的智慧来使项目管理做得更好,以保证项目在使用最少的时间、资源情况下按时保质地完成。

最近通过几次 “项目管理知识培训”,本人系统地学习了项目管理基础和项目管理实践等课程,掌握了项目管理在系统集成方面应用所必备的知识。结合所学的项目管理知识,我们可以对照我们原来的项目管理工作中存在的常见问题,利用项目管理知识进行分析,并提出解决的方案,希望有利于大家逐步改进我们的项目管理工作。这些方案因受到本人知识和工作经验的局限,只能起到一个抛砖引玉或参考的作用。

分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。

问题一:缺乏项目管理系统培训

相关对象:项目经理、管理人员

问题说明:项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。有些学员说:“听了这些课才知道项目管理原来还有这么多的学问。”例如对于如何利用工作分解结构使项目的工作范围更加明确,如何用前导图法对活动进行排序并估算项目进度、制定项目进度计划,如何利用挣值法跟踪项目进度,项目经理的职责与必备素质、应具备的能力、工作方法,如何根据各种组织结构及其优缺点进行选择,如何对于风险进行定性定量分析等等,通过这次培训有了初步的掌握,将能够很快地应用到实际工作中。

问题点评:在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。因此项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。

解决方案:实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。

问题二:项目计划意识问题

相关对象:项目经理

问题说明:项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。

问题点评:渐近明细是项目的特点,但这并不意味着不需要计划。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。例如对于较为大型的软件开发项目的工作分解结构WBS可采用二次WBS方法。即根据总体阶段划分的总体WBS和专门针对详细设计或编码阶段的二次WBS。这其中部分的原因是需求的颗粒度在一开始往往是比较粗的,因此根据功能点对于整体项目规模的估计误差范围也是比较大的。更为重要的原因是,需求往往不是编码工作分解的准确依据,因为一个需求的功能点可能对应多个代码模块,而多个需求的功能点也可能只对应一个或少数代码模块,同时还有软件复用等因素要考虑,因此只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次WBS,根据代码模块的合理划分而得出的二次WBS才能在详细设计、编码阶段乃至测试阶段起到有效把握和控制进度的作用。有些项目的需求或设计做得不够详细,无法对工作任务的分解、均衡分配和进度管理起参考作用,对此应当及时改善。

制定计划的过程就是一个对项目逐渐了解掌握的过程,通过认真地制定计划,项目经理可以知道哪些要素是明确的,哪些要素是要逐渐明确的,通过渐近明细不断完善项目计划。阶段计划中包含的工作汇报和下一阶段工作安排是掌握项目进度的依据,从阶段计划对照总体计划,才能一目了然地看出工作的进展情况。制定计划的过程,也是在进度、资源、范围之间寻求一种平衡的过程。制定计划的精髓不在于写出一份好看的文档,而在于运用您的智慧去应对各种问题和面临风险并尽可能做出前瞻性的思考。一旦计划被负责任地完成,他就可以给自己一个和管理层或客户交流与协商的基础,帮助你在项目过程中防范各种问题的出现,帮助你保证项目按时完成。

解决方案:提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。

问题三、管理意识问题

相关对象:项目经理

问题说明:部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。

问题点评:在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。因此技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。

解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。

问题四:沟通意识问题

相关人员:项目经理、项目组成员

问题说明:在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。

问题点评:项目沟通管理指出:“管理者要用70%的时间用于与人沟通,而项目经理需要花费90%或更多的时间来沟通”。和问题三的情况类似,在软件企业中,项目经理大多是技术骨干,而项目组成员也都是“高科技人员”,都具有“从专业或学术出发、工作自主性大、自我欣赏、以自我为中心”等共同的特点。因此妨碍沟通的因素主要是“感觉和态度问题”,也就是沟通意识和习惯的问题。在系统的实施阶段或软件开发的试运行阶段,项目成员基本上是持续是在客户方进行工作,这种情况非常容易忽视沟通。项目组与组织之间、项目组与项目组成员之间,甚至同一个项目组的不同成员之间,都有可能在不同的地点,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。即使都在公司内部也应做到及时沟通。所以项目经理不但自己要把工作重点放在沟通,善于沟通,还要引导、约定整个项目团队进行及时充分的沟通。

解决方案:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。

问题五:风险管理意识问题

相关人员:项目经理

问题说明:项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。

问题点评:项目风险管理是对项目潜在的意外损失进行规划、识别、估计、评价、应对和监控的过程,是对项目目标的主动控制手段。采取主动行动,创造条件,尽量扩大风险的有利结果,以最少的成本保证安全、可靠地实现项目目标。因此项目风险管理对于保证项目目标的实现是非常重要的。

解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。

 

版权所有:UML软件工程组织