如何优化软件企业项目管理

如何优化软件企业项目管理http://www.sina.com.cn 2008年07月02日 12:42  IT168.com
    【IT168 信息化】

    组织级战略项目管理 

    一个程序员在海滩上发现了一盏神灯。他在灯上擦了几下,一个妖怪就从灯里跳出来说:“我是世界上法术最强的妖怪。我可以实现你的任何梦想,但现在,我只能满足你一个愿望。”程序员摊开了一幅中东地图说:“我想让中东得到永久的和平。”妖怪答道:“哦,我没办法。自打创世纪以来,那里的战火就没有停息过。这世上几乎没有我办不到的事,但这件事除外。”程序员于是说:“好吧,我是一个程序员,为许多用户编写过程序。你能让他们把需求表诉的更清楚些,并且让我们的软件项目有那么一两次按进度按成本完成吗?”妖怪说:“唔,我们还是来看中东地图吧。”这段让人一笑了之的幽默从很大程度上反映了国内软件企业中普遍存在的现象,由于客户需求和内部管理等原因软件项目总是难以在预定的范围、成本和时间内完成。那么究竟是什么因素导致了该现象的延续呢? 

    1软件企业项目管理中存在的主要问题 

    1.1 低劣的需求分析 

    需求分析阶段没能很好地掌握客户需求,形成高质量的软件需求说明书,并交付客户方关键项目干系人正式书面确认,就跨越式地进入系统设计阶段,这必然导致项目执行过程中项目范围的频繁变更。软件产品范围是指软件产品所包含的特征或功能,而软件需求说明书正是对软件产品范围正式书面的界定,是软件项目管理过程必须的基础性文档。从项目管理的角度讲,产品范围和项目范围的变更都是允许的,一般来说也是不可避免的。但对于软件项目,产品范围与项目范围的制约关系变的非常严密,产品范围的频繁变更触发的必然是项目控制过程的混乱,对于规模较大的项目最终的必然后果是项目的失控乃至失败。 

    实践表明,高质量的需求分析是软件项目成功的关键因素。需求分析是优化企业软件开发过程的起点,这在CMM2级把需求管理作为首要关键过程领域(KPA)中得到了最好的反映。软件项目的范围控制应该是在需求分析阶段就开始的,就是说软件需求说明书应该是最大可能最大程度地理解了客户实际业务需求的文档,采用文字或图形化的方式清晰正确地描述了至少90%的实际需求,并在完成系统设计完成或编码阶段开始前明确剩余需求。特别对于复杂的业务流程型项目,涉及多客户方干系人需求的项目和涉及引发客户方机构变革的项目,一般应委托客户方关键性干系人内部协调达成一致意见后确定需求,切不可凭经验自作主张想当然。在编码阶段开始后,应做好产品范围的变更控制,尽可能地对客户施加影响,避免需求变更的发生,实在无法避免的变更一定要采用正式书面的形式。

    1.2 缺乏项目管理理论知识 

    软件研发项目组缺乏科学项目管理的知识体系的指导,完全从个人技术经验出发,管理工作的随意性、盲目性比较大,看到某些软件企业或一些软件项目的管理过程我们甚至很难去承认那是一种项目管理。在软件企业中,从项目经理到程序员一般只具备单一的技术理论知识,不了解项目管理的知识体系和一些常用工具方法。 

    我们的观点是项目管理要成功,从项目经理到程序员都应该具备相应的项目管理的知识,只有这样前者才能更好地懂得如何去做项目管理,而后者才能更好地懂得如何去配合项目管理。因此软件企业研发人员掌握系统的项目管理知识是非常必要的,有了技术领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高软件企业人员整体的项目管理素质。在项目管理知识普及的软件企业里,一向为业界否定的“光环效应”就成为一种合理的人才选拔制度。一个比较敏感的问题是职业的项目管理专业人员是不是适合在国内的软件企业中担任项目经理,我们的答案是否定。 

    实践证明,与只具备技术知识的项目经理一样,只具备项目管理知识的职业项目经理在软件企业一样是难以立足的,这其中的原因大家应该很清楚,决定这一逻辑的是国情还有行业。 

    1.3 缺乏沟通管理 

    各项目干系人包括项目组成员之间,项目组之间,项目组与客户之间中往往缺乏充分有效的沟通和信息的共享。项目沟通中没有做到:正确的信息在正确的时间发布给正确的干系人。软件研发人员缺乏沟通意识和习惯是比较明显的问题,“自我欣赏、以自我为中心,经验万岁”现象屡见不鲜。 

    有时候,项目都已经进展到最后阶段,客户方突然提出了新的需求变更,这会让项目经理非常为难。一方面要尽量满足客户的需求,另一方面又不能对系统做太大的改动,影响项目进度。这种情况往往是与客户的沟通出现了问题,说明在需求阶段做的不够好,同时在实施过程中没有与客户保持密切的联系。 

    1.4 不重视经验的积累 

    软件企业普遍缺乏经验总结,包括个人经验和组织经验。我们认为个人经验应该以组织经验为载体,总结出各种项目的成功经验,使之规则化,把具体经验归纳为全组织的标准软件过程。个人经验不能成功组织化的软件企业是非常危险的,因为那就隐含着人员流动决定了其对组织稳定作用的流动。改进组织的整体软件过程能力的软件过程活动,应该作为软件开发组织的责任。

    “总是从0开始”的软件企业是不可想象的,放弃了对最大程度软件复用的追求意味着企业放弃了“利润最大化”的意愿。 

    软件企业一般需要建立人员技能绩效数据库,风险数据库。风险数据库是对在项目风险管理过程中收集和使用的数据进行收集、维护和分析的知识库。有效的历史信息将有助于对潜在风险问题的控制,通过对产生风险条件施加影响,最大程度地消除负面影响,使向有利与项目进展的方向发展。在风险事件发生时,在规避、转移、缓解、接受中选择最合理的应对方式。实践证明,历史信息有助于项目进行更为准确全面的计划与控制,历史的经验教训可以使项目少走不必要的弯路,少花不必要的代价,减少项目失败的风险。从项目管理的角度讲,经验是对历史信息的积累。这种总结应该以优化企业软件过程为目的,贯穿于整个项目过程中,而绝不是一份简单的项目总结报告。

    1.5其他管理上的问题 

    混乱的开发过程,频繁的人员变动, 无效的激励机制, 不尽人意的企业文化等问题也是比较严重。当然,也存在很多技术框架,开发模式问题导致的项目失败的案例。 CMM模型提供了优化软件过程的最佳思路,如果说纯粹为了通过CMM的评估的“形象工程”是没有任何价值的,在项目合作中我们发现很多通过了 CMM3,CMM4级的公司重复着CMM1的杂乱无章和混乱,几乎没有任何定义过程的规则或步骤。 

    2优化软件企业项目管理的关键 

    2.1确立组织级战略项目管理地位 

    软件企业是全面实施项目管理的优质土壤,企业高层管理者必须高度重视项目管理,确立组织级战略项目管理地位。托马斯?彼得斯和罗伯特?小沃特曼在《探索企业成功之路》一书中说:“我们发现几乎每一家优秀公司都和一个(或两个)在使该公司成为第一流的优秀公司方面似乎大有作为的领导有关”。组织级战略项目管理要求,在企业内建立一整套完整的实践性很强的项目管理体系,以提供良好的项目运作环境,主要包括组织机构、工作流程和内部项目环境等方面。 

    ■组织机构 

    必要的项目管理组织机构是企业项目管理的基础,项目管理甚至比企业中的任何其他职能更需要我们提供结构化的领导,这不是集权领导可以替代的。项目管理办公室(PMO)代表着组织级战略项目管理的公司中心,对于建立项目管理文化以及优化项目和资源的协作必不可少。PMO是公司项目管理的最高决策机构,一般由公司高层领导,项目管理专家和技术专家组成。 

    PMO的特定角色可根据软件企业的不同而有所变动,在软件企业中其职能可以包括: 

    制定维护项目工作流程、(项目文档)标准、方法和程序; 

    提供项目管理的培训,咨询和指导; 

    审批项目计划,日常汇报、质保,收集工作进度情况; 

    确定项目采用的技术框架和实现模式,专家级技术支持;

    项目立项、结项决策,项目经理、项目组人员确定; 

    提供强有力的项目支持,包括行政、人力、物力和财力等; 

    项目历史信息数据库的管理与知识管理; 

    软件复用代码库的管理,组织软件过程的优化。
 
    在一些企业中把变更控制CCB的职能放在其下实行多项目变更统一管理,我们认为也是可取的。
 
    ■工作流程 

    从根本意义上看,PMO完全是为规范企业内部的工作流程服务的。PMI十二分地强调了项目经验教训的积累,因为只有实践可以发现企业工作流程中的不足与缺点。软件企业必须有一套较完整的制度化的项目运作工作流程,包括(项目文档)标准、方法和程序等。在不断实践与学习中,持续维护完善优化该工作流程体系。 

    ■内部项目环境 

    这是一个比较综合的建设要求,因为项目组织一般并不作为一个单独的经济实体存在,而是依托于特定的企业内部管理体系。考虑到软件项目需要以人力、物力和财力的较大投入为基础,企业内部环境对项目的支持彻底很重要。但我们相信,在PMO建设成功的情况下,内部项目环境对项目的制约度显著下降。 

    企业高层管理者对项目管理的高度重视和组织级战略项目管理地位的确立将全面推动内部项目环境向有利于项目在组织中存在的方向发展。 

    2.2优化项目团队组合 

    通过技术,管理等方面的培训,培养一支具备全球意识,学习意识,合作意识,竞争意识,创新意识的优秀员工团队。当然要把握好综合素质与核心专长间的度,注意员工基于岗位和发展方向的核心专长的积累。项目经理是项目团队的核心人物,因此必须具备优异的综合素质,需要在业务、技术和管理等方面不断提升自己。在组织内,项目经理应当可以获得组建项目团队所需的至少高于最低资源要求的相关人选。优化的软件团队需要建立在合理的软件过程及团队密切合作的基础上,表现出明确且具有挑战性的共同目标,强的凝聚力,融洽的沟通环境,标准化的工作规范、框架和合理的开发过程。从实践中去发掘优势互补的项目团队组合方式,用积极有效的激励机制,在以人本化的企业文化氛围中紧紧的留住每一名优秀的员工,使全体员工在企业价值最大化的土壤中实现个人价值。 

    2.3建立项目级激励制度 

    “人”是项目成功的最关键因素,而“人”又是需要激励的动物。正确的激励制度,能充分调动人们的积极性,促使项目目标的顺利实现。不正确的激励制度,尽管也可能调动积极性,但容易偏离方向。激励员工本来是人力资源部门的主要内容,但我们发现在软件企业中,企业级的激励从来没有让谁满意过。建立项目级激励制度,将可以作为企业级激励的有效补充。
 
    基于项目绩效考核情况,把责任、绩效与奖励捆绑在一起,实施目标管理(OM)和挣值管理(EVM),采取必要的物质和精神激励措施将极大调动团队成员的积极性。尽管某些精神激励手段也是行之有效的,但我们始终倾向性的认为在软件企业中金钱激励是最有效的手段。在薪酬体系中设立绩效弹性工资部分或设立项目专项奖金等方式都是可以考虑的思路。 

    在项目级的激励中,项目经理无疑是最关键的角色。项目经理的行为是影响项目级激励制度成败的一个重要因素,当然在激励中也不能忘记对项目经理的激励。需要指出的是,在员工激励中如淘汰激励、罚款、降职和开除激励等惩罚性负激励手段是不可取的。 

    2.4加强沟通管理 

    对于PMI“90%”沟通理论,我们认为其强调的实际上是沟通过程的重要性。在软件项目中,各项目干系人包括项目组成员之间,项目组之间,项目组与客户之间必须保持充分有效的沟通和信息的共享。在某些需求明确度低的软件项目,沟通尤其重要。 

    我们认为通过与客户的有效沟通,让客户更多的参与到项目过程中来,可以提高满足客户需求的可能性,比较有利于项目的成功,有效的沟通是控制客户需求变更的有效手段。项目组间的沟通主要是从技术积累的角度考虑,事实上软件项目中的很多技术问题都是在项目组相互学习中解决的。实践证明,集中安排建立“作战室”实现项目计划进度等信息的全透明是比较好的方式。在集中安排不可行的情况下,采用时序安排频繁的面对面的会议作为代替,但要把握要频度和实际成效,否则让会议成为形式上消耗时间的机器就不好了。对于跨地域甚至国家工作的项目团队可能需要借助基于Web的PMIS了,实在不行就用Email,MSN等工具代替。软件企业必须培养员工的沟通意识,建立必要的沟通制度,借助合适的沟通工具,保证项目信息畅通。 

    2.5优化项目管理过程 

    项目管理的过程可以分解为启动过程,计划过程,实施过程,控制过程,收尾过程。反映了PDCA(PLAN,DO,CONTORL,ACTION)的原则,即事先计划,事后控制。各项目管理过程的关系如图二所示,项目过程通过它们创造的结果相互联系。关于项目管理过程具体细节可以参考PMBOK相关内容。 

    不断优化项目管理过程,使整个组织全面采用综合性的管理及工程过程来管理。追求软件工程和管理活动的稳定性、可重复性和连续性的。优化的项目管理过程表现为每个过程都具备针对计划的具体的执行方法,通过强有力的执行去达成预期的项目进展。
  
    2.6项目管理信息系统(PMIS)建设 

    项目管理的复杂性要求有合适的工具辅助项目管理人员进行项目管理工作。项目管理信息系统(PMIS)是用于收集,综合和分析项目管理过程输出的工具和技术。通常用来支持项目从启动到收尾的各个方面,可分为人工系统和自动系统。这里主要指能够帮助项目进行范围管理,时间管理,成本管理,采购管理,风险分析等综合功能的管理信息系统。PMIS一般包含两块核心的功能——计划和控制。计划系统主要围绕质量、时间、成本三大目标,辅助完成项目计划工作,如工作结构分解(WBS),进度计划(网络图、甘特图)绘制,CPM,成本计划等。控制系统重要提供一些控制手段,以领导和协调项目组织的各种要素,包括人力资源、工程设计、原材料和财务等部门。 

    目前市场上大概存在150多种产品化的PMIS工具软件,美国Primavera公司的产品Primavera Project Planner(简称P3),是国际上流行的高档项目管理软件,已成为项目管理的行业标准。ABT的Project Management Workbench(PMV)是综合,也是在国内一些大中型的软件企业中应用较好。Microsoft公司的Project 2000也使用的较好。当然基于成熟PMIS产品原型,结合软件企业自身特点,开发行业性Web PMIS也是可以的。 

    实践证明,透明的项目进展状态有利于避免工程的延迟,超过预算或者质量低下。一个专用的系统来整合时间,预算,范围,质量的目标。项目信息管理的效率和成本将直接影响项目管理其他环节的工作效率、质量和成本。软件企业必须结合企业实际,按照项目管理的方法,结合信息管理体统的特点,让信息系统为项目管理更好地服务,加强项目控制与项目组建的信息沟通。 

    3 结束语 

    没有项目管理,项目也可能成功。但没有管理的项目,无论从质量、时间、成本任何一个方面看都是有巨大风险的。在国内一些软件企业中,软件项目由于具有紧迫性、独特性和不确定性等特点。要彻底消除进度延误,预算超支等情况可能并不是那么现实,但我们仍然希望通过对软件项目管理中一些共性问题的探讨,以引起软件企业高层管理者的思考与重视。分享我们在项目管理中的实际经验与积累供大家参考,希望国内软件企业能结合自身企业实际情况,基于质量、时间、成本三大目标,在实践中不断思考与探索,找到巧合自身企业的优化软件项目管理模式,为企业发展奠定坚实的基础, 使企业在激烈的市场竞争中立于不败之地。

【文章出处】

你可能感兴趣的:(设计模式,工作,项目管理,企业应用,CMM)