梅艳
摘 要:在信息技术行业项目策划、实施与管理过程中,根据项目特点采用适合的项目管理模式是实现项目预期目标,控制项目进度、成本和质量的必要条件。本文结合个人工作实践,从几个不同类型企业项目管理的特点与问题出发,对如何提高项目管理水平与成效做了粗浅的分析并提出一些可行的解决对策,希望能为企业有效开展项目管理工作提供指导。
关键词:项目管理;敏捷开发;能力成熟度模型
中国目前拥有世界第一大手机用户市场、世界第二大互联网用户市场,IT产业已经成为中国的支柱产业。随着计算机和互联网的进一步普及,物联网、云计算、大数据等新兴产业蓬勃发展,中国大大小小的IT企业如雨后春笋般不断涌现。项目管理问题越来越成为众多IT企业面临的重大问题,甚至成为危及企业生存的重大风险:如何提高产品集成的质量?研发的进度如何衡量?是选用标准化的管理模型还是松散的灵活化管理?如何引入软件开发及项目管理信息化工具并确保其有效使用?
一、管理要求
目前项目管理相关的体系模型很多,比如国际标准化组织的ISO9000族标准,美国软件工程研究所(SEI)的软件能力成熟度集成模型(CMMI模型),项目管理协会(PMI)的项目管理知识体系(PMBOK)以及敏捷联盟(Agile Alliance)的敏捷开发思想。但是,选择什么样的项目管理方式主要还是依据企业特点和项目自身需求来综合考虑。
(一)系统集成类企业项目管理
系统集成类企业对独立研发能力要求不高,企业关注的焦点通常是凭借企业的资质、信誉和成熟的系统集成管理经验为企业创造效益。这样的企业往往更注重资质、供方以及财务资金的管理。我熟悉的一家主营安防产业的系统集成公司,从质量管理资质角度考虑选择了ISO9000族质量管理体系管理公司项目并保持每年认证审核以实现持续改进。ISO9000标准覆盖的范围广泛,对公司规模要求不高,它更关注项目过程的“输入、输出”是否符合既定的流程。该公司通过作为承包方,按照标准的质量管理流程输出相应的任务分解和工程概预算,从合格供应商名录中选择适合的专业分包公司,总体控制工程项目的进度、质量以及采购的设备和材料等成本,基本保证了项目预期的利润。公司在ISO9000质量体系认证的基础上,向商务委申报对外承包工程资质,已具备承接国外工程项目的能力并拓展了海外安防系统项目。
按照ISO9000质量体系中关于采购和生产服务的要求,公司建立自身的ERP综合项目管理系统对设备供应商以及外包外协企业进行综合管理。通过信息化的手段从营业执照、企业资质、体系认证、产品介绍、产品检测认证、财务报表、价格体系、服务保障体系及承诺、经营业绩、取得荣誉等方面对供方公司提供的资料进行审查和评分,优质供方纳入合格供方名录库。目前管理和维护的合格供方企业多达一百多家。由于项目特殊情况或甲方指定,有三十多家纳入供方名录中的一次性供方临时管理。年终阶段依据供方的服务质量、供货及时性、货源稳定性等几项指标组织合格供方复评,保证优质的供应商继续使用,评价较差的供应商暂停使用或不再保留。纳入合格供方名录库的供应商按照产品分类和供方性质加以区别,为项目售前各种设备选型、编制概预算以及项目实施过程中解决项目变更提供便利。
(二)移动终端软件企业项目管理
随着诸如安卓、苹果、微软的嵌入式操作系统的发展,手机、平板电脑等移動办公设备智能化程度越来越高,使得很多工作和娱乐活动由台式桌面设备转到移动办公设备上。为了满足移动生活的需要而出现了很多嵌入式APP开发公司,他们针对不同用户群的需求,在移动设备上开发各种APP小型应用软件,同时负责后期的维护和更新升级。这些公司通常要求具有快速的软件开发团队,具备及时响应各种变化的能力。这种项目如果仍然按照常规的PMBOK体系管理或者瀑布式模型的开发流程进行操作,会影响产品的开发效率,失去公司的竞争优势,增加企业管理成本。因此,这种公司更适用于敏捷开发。
由于开发的产品规模小且要求交付的时间短,要求公司做到尽早的、持续的交付有价值的软件来使客户满意。规定经常性交付可工作的软件,必然要求业务人员与开发人员经常一起工作,通过面对面的交谈实现最有效的信息传递。项目团队通过利用变化来创造竞争的优势,即使在项目的后期也随时欢迎需求的变更并通过稳定持续的开发速度、优秀的技能和好的设计,开发出最简单且实用的软件产品(MVP)。
传统的开发模式是功能驱动,为其准备足够的时间和资源的正三角模式;敏捷开发模式是时间和资源驱动,生产简短有效产品的倒三角模式。充分考虑效率和价值,移动应用产品开发公司通常不会按照用户的每一条需求用例,逐一实现从设计、开发到测试、发布的生产线,他们通常将需求按照紧迫性分成不同的优先级,短期内连续的发布是APP开发的关键——敏捷开发中称之为迭代的过程。除了对需求的分级,使用敏捷开发模型的公司通常要求设计人员将需求直接转化为可行的功能架构设计,开发人员兼具编码和自动化测试的能力,测试人员对开发的模块或系统具备尽可能多的发现缺陷和问题的能力,驱动开发工作不断更新完善。
因此,对于移动APP软件开发公司,更适合使用简单、快速、实用的敏捷项目开发思想,通过强调个体或小型项目团队与客户的紧密联系和充分沟通,实现持续性交付有价值的产品以及快速有效的响应各种需求变更。
(三)系统开发类企业项目管理
国内具有一定规模的行业系统开发公司所承接的项目多以软硬件开发和系统集成为主。这样的公司关注的焦点往往是以客户的需求为主线,在约定的期限内提供具有特定功能且性能稳定可靠的成套系统,并实现持续的后期维护和升级服务。我接触过的一个三百多人的电信行业系统开发公司,内部除了少部分管理人员,大部分是软硬件设计、研发、测试相关的业务人员,公司按照业务领域分成六个部门。随着项目工作的开展,项目经理时常反映人员配置不足,需要加派人手或聘请外协人员。项目需要配备多少人员合适,如何衡量人员的工作是否饱和,应该选择什么样的测量指标作为绩效考核的依据以激励员工的工作效率,是否需要引入项目管理工具来统计指标数据并保证统计信息的真实性成为公司项目内部管理急待解决的问题。
公司从不同角色人员关注点以及项目目标分析入手,同时参考外部咨询机构的指导,从项目管理过程及方式方法上进行差距分析。对于以系统开发和平台建设为主的公司,项目综合管理需要从前期产品经理收集和分析客户想法建立系统原型到中期设计开发调试到后期实施试运行的过程都需要建立标准化的过程,明确过程产品及质量保证原则,规范过程模板格式。
能力成熟度集成模型(CMMI)是由美国联邦政府委托卡内基梅隆(Carnegie-Mellon)大学软件工程研究所(SEI)开发的一套软件过程成熟度框架模型。CMMI模型将能力成熟度分为5个级别——初始级、可重复、已定义、已量化、优化级,将每个成熟度级别分为若干过程域,在各个过程域中根据特定目标和通用目标又规定了若干特定和通用的实践活动以及子活动。公司根据目前项目特点及管理模式参考CMMI模型,结合已有的管理制度对项目开发各个环节进行梳理,设定了过程改进的计划。
针对项目阶段管理混乱,从产品开发到交付验收没有明确的节点和规范输出的问题,公司参考采用CMMI三级成熟度模型,梳理组织标准过程。在明确定义项目策划立项、需求管理、设计开发、产品集成、项目监控、测试评审、实施试运行到验收交付以及风险管理、质量管理、配置管理等标准过程域的活动目标、项目不同角色人员的标准活动,规范各阶段的产物和相应的质量检查细则之后,结合历史项目的过程资料模板,公司搭建了一套以过程目录树为主线的项目过程管理蓝图,为项目标准化管理理清了思路,同时为持续过程改进设定了目标。
在将各个标准过程导入到公司项目使用时发现:虽然经过培训,但由于项目经理以及项目成员对建立的过程体系理解有差异造成过程阶段定义不清,过程模板乱用。而且,缺少合理估算项目规模的依据,无法统计项目人员真实的配备需要,在计算生产率指标和项目实际进度时也造成了很大的困扰。经过公司内部过程改进小组讨论,建议采购一套参照CMMI模型执行的综合项目管理平台工具来提高公司的内部管理效率。根据公司项目情况对平台工具定制修改,将组织标准过程经裁剪组合后导入为一系列常用的项目开发管理模式。在每次策划阶段录入新项目时,选择不同开发模式后会预先固定一系列的标准阶段过程、里程碑节点和对应节点的产物模板。项目经理只需要完成详细的WBS分解,建立项目计划甘特图,分配项目资源并通知项目干系人参与项目综合计划评审及发布工作。准确估算项目规模是做好项目任务分解、合理安排资源的前提,公司内部参照建筑类项目施工定额的方式,结合行业经验、专家意见以及公司以往项目的过程资产,对人员的生产能力进行统计。针对公司的设计、开发、测试人员,按其使用的工具不同,测算出平均水平或者通过概率统计出整体平均水平。比如使用Java语言的开发人员每日或每小时编码的数量(扣除自动生成和代码复用部分),设计人员每日或每小时撰写文档的页数,测试人员每日或每小时编制或执行测试用例的数量。虽然这样的统计有一定偏差,但是在一定程度上量化了项目规模估算的参考依据,也为项目人员绩效评价提供了参照指标。
公司要求项目人员的活动必须在项目管理系统上每日填报,对于项目人员日报、任务完成情况报告、项目阶段报告,通过系统自动计算出项目成員的工作饱和度、任务完成率和项目生产率情况,比照项目人员定额数据和进度绩效指标等挣值分析数据,可以反映项目当前实际进度,初步判断各角色人员是否超配或不足,进而做适当的调配或者考虑聘请外协人员。新系统试用会给项目组员带来额外的工作量,对正常的研发活动有一定的影响,必须针对系统使用以及各阶段划分任务类型对项目人员提供及时的培训和问题跟踪反馈。系统会在一定程度上反映出员工的工作状态,增加人员填报信息和格式化输出等系统管理时间,个别项目成员会对使用系统产生很大的抵触,应及时评估不同角色项目成员在系统平台的平均使用时间,制定并规范系统使用流程,根据项目成员工作习惯定制系统与外部工具的接口是十分必要的。比如为方便项目经理制定项目计划的使用习惯,在系统中实现微软Project数据的导入导出;根据测试人员常用的测试工具,保留与LoadRunner、CQ、TD等常用测试工具的接口和mantis、bugzilla、Jira等bug管理系统的接口;针对配置管理人员常用的SVN、CVS、ClearCase等配置管理工具,提供与其兼容的配置管理接口。在尽量少改变项目人员工作习惯和使用工具的基础上,实现项目的全部或大部分工作在系统上管理。
使用平台软件对公司项目进行管理是一个循序渐进的工作,初期可以选择几个管理比较规范的在建项目或资料齐全的历史项目录入上线,及时发现系统中不完善或不适用的功能模块,根据项目不同干系人的关注点和使用过程中的改进意见定制系统的工作流和输出报表。待系统初步完善后,统一要求公司所有在建项目在系统中管理,制定系统使用和管理制度辅以考评办法和现场抽查。在定期的项目管理过程改进汇报会上,汇总公司各业务部门下属项目在平台的使用情况,根据平台填报使用的真实性、完善性、合理性进行统计、排名,以此推进项目规范化的管理。
通过一段时间的磨合、使用到熟练的过程,将CMMI成熟度模型和目标管理的思想在项目组各成员中先僵化、再固化、后优化,以期实现每套项目全生命周期的标准化管理和规范化输出。透过平台的自动化统计和制表绘图功能,使得高层管理者可以直观的了解项目的进展、人员的生产工作水平、费用使用情况,从效率、质量等角度横向对比不同部门间绩效水平的高低。
二、结语
总之,企业项目的管理最终还是要从企业的现实情况和期望达到的目标出发,适当引入管理模型和系统工具以提高管理效率。过程管理做为众多内部职能部门管理工作职责之一,需要执行者多与公司管理层沟通,以行动和客观数据获得领导的重视和支持。同时,积极推动公司相关部门全员参与,实现持续的改进和提高。