软件项目管理常见问题分析
作者:卢琳生
摘要:
本文分析了软件项目管理常见问题:缺乏项目管理系统培训、项目计划意识问题、管理意识问题、沟通意识问题、风险管理意识问题、不重视项目经验的总结、项目干系人相关问题、项目团队内分工协作问题,抛砖引玉地提出了部分解决方案,提出了项目约束绳与多重目标模型。
关键字:
软件项目管理、问题、分析
正文:
目前许多软件开发公司实行了ISO质量管理体系,也有越来越多的公司通过了CMM软件成熟度相应级别认证。各软件在制定ISO质量管理体系时结合了部分项目管理的思想和技术,因此这些经过认证的公司的项目管理工作在ISO质量管理体系或CMM的帮助或约束下已有一定的规范,项目可以按照规定的过程一步一步做下去。但ISO体系注重的是质量管理(即用过程保证质量),早期更多的是针对制造业,而CMM主要是针对软件开发过程的关键过程域,都没有针对项目管理的全部范畴,如对于整体、范围、进度、人力资源、成本、沟通、风险、采购等的管理,即使有涉及到也是在专业范围内通过对过程的把握来保证各种质量要求,而在过程规定之外还需要依靠项目相关各方运用项目管理知识、工具、集体与个人的智慧来使项目管理做得更好,以保证项目在使用最少的时间、资源情况下按时保质地完成。
最近通过几次 “项目管理知识培训”,本人系统地学习了项目管理基础和项目管理实践等课程,掌握了项目管理在系统集成方面应用所必备的知识。结合所学的项目管理知识,我们可以对照我们原来的项目管理工作中存在的常见问题,利用项目管理知识进行分析,并提出解决的方案,希望有利于大家逐步改进我们的项目管理工作。这些方案因受到本人知识和工作经验的局限,只能起到一个抛砖引玉或参考的作用。
分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。
问题一:缺乏项目管理系统培训
相关对象:项目经理、管理人员
问题说明:项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。有些学员说:“听了这些课才知道项目管理原来还有这么多的学问。”例如对于如何利用工作分解结构使项目的工作范围更加明确,如何用前导图法对活动进行排序并估算项目进度、制定项目进度计划,如何利用挣值法跟踪项目进度,项目经理的职责与必备素质、应具备的能力、工作方法,如何根据各种组织结构及其优缺点进行选择,如何对于风险进行定性定量分析等等,通过这次培训有了初步的掌握,将能够很快地应用到实际工作中。
问题点评:在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。因此项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
解决方案:实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
问题二:项目计划意识问题
相关对象:项目经理
问题说明:项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。
问题点评:渐近明细是项目的特点,但这并不意味着不需要计划。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。例如对于较为大型的软件开发项目的工作分解结构WBS可采用二次WBS方法。即根据总体阶段划分的总体WBS和专门针对详细设计或编码阶段的二次WBS。这其中部分的原因是需求的颗粒度在一开始往往是比较粗的,因此根据功能点对于整体项目规模的估计误差范围也是比较大的。更为重要的原因是,需求往往不是编码工作分解的准确依据,因为一个需求的功能点可能对应多个代码模块,而多个需求的功能点也可能只对应一个或少数代码模块,同时还有软件复用等因素要考虑,因此只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次WBS,根据代码模块的合理划分而得出的二次WBS才能在详细设计、编码阶段乃至测试阶段起到有效把握和控制进度的作用。有些项目的需求或设计做得不够详细,无法对工作任务的分解、均衡分配和进度管理起参考作用,对此应当及时改善。
制定计划的过程就是一个对项目逐渐了解掌握的过程,通过认真地制定计划,项目经理可以知道哪些要素是明确的,哪些要素是要逐渐明确的,通过渐近明细不断完善项目计划。阶段计划中包含的工作汇报和下一阶段工作安排是掌握项目进度的依据,从阶段计划对照总体计划,才能一目了然地看出工作的进展情况。制定计划的过程,也是在进度、资源、范围之间寻求一种平衡的过程。制定计划的精髓不在于写出一份好看的文档,而在于运用您的智慧去应对各种问题和面临风险并尽可能做出前瞻性的思考。一旦计划被负责任地完成,他就可以给自己一个和管理层或客户交流与协商的基础,帮助你在项目过程中防范各种问题的出现,帮助你保证项目按时完成。
解决方案:提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
问题三、管理意识问题
相关对象:项目经理
问题说明:部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。
问题点评:在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。因此技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。
问题四:沟通意识问题
相关人员:项目经理、项目组成员
问题说明:在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
问题点评:项目沟通管理指出:“管理者要用70%的时间用于与人沟通,而项目经理需要花费90%或更多的时间来沟通”。和问题三的情况类似,在软件企业中,项目经理大多是技术骨干,而项目组成员也都是“高科技人员”,都具有“从专业或学术出发、工作自主性大、自我欣赏、以自我为中心”等共同的特点。因此妨碍沟通的因素主要是“感觉和态度问题”,也就是沟通意识和习惯的问题。在系统的实施阶段或软件开发的试运行阶段,项目成员基本上是持续是在客户方进行工作,这种情况非常容易忽视沟通。项目组与组织之间、项目组与项目组成员之间,甚至同一个项目组的不同成员之间,都有可能在不同的地点,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。即使都在公司内部也应做到及时沟通。所以项目经理不但自己要把工作重点放在沟通,善于沟通,还要引导、约定整个项目团队进行及时充分的沟通。
解决方案:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
问题五:风险管理意识问题
相关人员:项目经理
问题说明:项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
问题点评:项目风险管理是对项目潜在的意外损失进行规划、识别、估计、评价、应对和监控的过程,是对项目目标的主动控制手段。采取主动行动,创造条件,尽量扩大风险的有利结果,以最少的成本保证安全、可靠地实现项目目标。因此项目风险管理对于保证项目目标的实现是非常重要的。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
问题六:不重视项目经验的总结
相关人员:项目经理、管理人员
问题说明:项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
问题点评:项目经验总结非常重要,有利于组织内部或行业内部经验与数据的积累,项目过程的改进和技术与管理经验积累,对于今后的项目有非常重要的指导意义,因此应当引起项目经理及管理人员的足够重视。在项目管理的39个过程中,需要输入历史信息的就有9处之多。这些历史信息的来源从内部获得的主要来自以前项目的经验总结,可见项目经验总结是非常必要的。历史的数据使可以新的项目进行更为准确全面的规划,历史的教训可以使新的项目少走不必要的弯路,少花不必要的代价,减少项目失败的风险。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
问题七:项目干系人相关问题
相关人员:项目经理、项目成员、客户
问题说明:在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
问题点评:项目干系人STAKEHOLDER也有的翻译成利益关系人、利害关系人、利益干系人、利益共享者、涉众等等,即所有可能受到项目结果重大影响的人(不知道是因为中国的词汇过于贫乏,以至于你用来翻译的词我不满意,非要找另一个,结果没有一个词可以真正表达STAKEHOLDER的原意;还是因为中国的词汇过于丰富,爱怎么选就怎么选。看来中国要统一真是任重道远啊。)。项目干系人即可能是项目的受益者,也是项目的风险承担者,甚至有可能是项目的受害者。项目干系人的要求包含明确的和隐含的,也可以分为NEED、WANT、WISH等不同层次。不同的干系人其愿望和追求的目标往往相差甚远,因此对项目干系人的愿望进行平衡可能是相当困难的事情。例如政府部门的不少对群众办公的信息系统,上层管理机关往往希望能够采集尽可能多的信息项以便对数据进行多种多样的统计分析,并对信息进行有效控制而增加一些审批流程;基层对外办公的窗口则因为办公速度的压力希望减少信息的输入;而客户的客户(办事群众)则希望相关政府机构能够简化工作流程,加快办事速度。如果对项目所有干系人没有进行足够的沟通和影响,使其尽可能地参与项目,则可能因为项目开始时项目范围和一些具体要求不够完整清晰,也可能因为某个项目干系人后期因为认识的变化而提出新的要求,造成工期的延长,成本的增加,甚至项目的完全失败。
解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
问题八:项目团队内分工协作问题
相关人员:项目经理、项目成员
问题说明:项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
问题点评:出现这种情况主要是项目经理的责任,项目经理应当使用WBS尽快地将工作范围进行分解,并将分解的工作责任分配给团队成员,这样就可以按任务分清每个人的责任;虽然项目的进行有不同阶段的划分,但每个阶段的结束不是简单地把阶段工作成果塞给下一阶段的成员就可以了。特别是高科技的开发项目,上一阶段的工作成果往往要通过多次的沟通才能更为清晰地被下一阶段成员接受,其有效性、合理性也要被下一阶段的工作所检验,通过检验有时也有必要对上一阶段的工作结果进行相应的调整。在同一个阶段中,不同的分工之间也存在各种各样复杂的关系,相互之间通过接口,一个或几个项任务的输出是另一个或几个任务的输入。因此,无论是同一阶段不同人员之间,或是不同阶段人员之间都应根据需要相互协作,相互配合,共同完成项目任务。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
以上对软件开发项目管理中出现的问题的分析可能还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,只能作为个人的观点,希望引起大家对这些问题的思考、改进。
项目是在一定资源及环境的约束下为完成某一独特的产品或服务所作的一次性努力。项目应当具有明确的目标,而这个目标往往是多重的,需要考虑范围目标、质量目标、进度目标、成本目标和其他目标等等。在一定条件的约束下,要想使各种目标都达到完美是不可能的任务,必须对各种目标的重要性进行排序、取舍、平衡。就像图1所示,资源的约束就像一条绳子,牵制着各项目标的达成。例如,假设质量目标是最重要的,则一定要有足够的资源或时间作为保障,这就是牺牲成本目标或进度目标;假设没有足够的资源或时间,又要完成项目范围目标,则质量目标必然受到牺牲。有一种观点认为,为了保证某个目标的实现,就要把其他目标的标准降低,因此对其他目标达成的评价标准也要相应调整到较为宽松的程度。这种想法是不正确的。目标达成的评价标准应该是对所有项目都一视同仁的,对同类的不同项目应当采用相同的评价标准,这样才能在项目组织间取得平衡。例如对质量的要求,一般项目需要90分才算完成质量目标,而对某些进度、资源紧张的项目,80分就可以算完成质量目标。这样才能对项目的质量有个可横向比较的、实事求是的结论,而不是对此项目降低评估标准去够到90分的质量目标。同时这种情况下的考核结果不能作为相关项目成员水平的指标。
由于的资源约束性、多重目标性,需要项目经理努力学习项目管理相关知识、技能,在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。
图注:
1、 其他目标:可能是组织目标(如锻炼队伍、学习技术)、政治目标、市场目标等等;
2、 产品范围是相对固定的,其变更需要经过项目干系人协商一致;
3、 约束绳:资金、设备、技术、人员等资源和法律法规、标准规范、人文环境等等形成的综合影响。
参考文献:
项目管理?计划、进度和控制的系统方法》(第7版)Harold Kerzner(电子工业出版社,杨爱华等译);
《项目管理的战略规划:项目管理成熟度模型的应用》Harold Kerzner(电子工业出版社,张增华 吕义怀等译);
《PMBOK-2000》PMI;
《成功的项目管理》Trevol L Young(泰晤士报商业版,严鸿娟译);
《成功的项目管理》Jack Gido & James P. Clements(21世纪管理经典教材系列,张金城等译);
《如何做好项目管理》Stanley E. Portny(IDG新经济工商实务傻瓜丛书,宁俊等译);
《管理软件开发项目》(第二版)Neal Whitten(软件项目管理系列丛书,孙艳春等译);
《IT项目管理》Kathy Schwalbe(项目管理译丛 王金玉等译);
《系统集成项目管理基础》(信息产业部计算机信息系统集成项目经理培训讲义)