浅谈软件企业项目质量管理标准与模式.doc
浅谈软件企业项目质量管理标准与模式 从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目 组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。 软件因其复杂性和难以度量,使软件项目管理较之其他项目管理而言有其特殊性。那么何确保软件项目的质量?软件研发项目管理又应该遵循什么标准呢?软件是十分复杂且难以度量,因此对软件研发项目进行管理必须依据一定的标准。软件行业以前倡导的标准是 iso9000 系列,而现在更多的场合大力倡导 cmm,即能力成熟度模型( capabilitymaturitymodel)以及 psp 和 tsp。 iso9000 是 国际标准化组织提出的系列标准,其中 iso9003 是专门为软件行业定制的。而 cmm 则是美国卡纳基梅隆大学软件工程研究所( cmu/sei)提出的软件研发项目管理的一系列方法。 iso9000 和 cmm 的共同点是二者都强调了软件产品的质量。所不同的是, iso9000 强调的是衡量的准则,例如应该做什么、什么算好、什么算不好,却没有告诉软件开发人员如何达到好的目标,如何避免差错。 cmm 则提供了一整套较为完善的软件研发项目管理的方法。 cmm 框架可用 5 个不断进化的层次来表达:其中初始层是混沌的过程,可重复层是经过训练的软件过 程,定义层是标准一致的软件过程,管理层是可预测的软件过程,优化层是能持续改善的软件过程。cmm 并 未 提 供 有关子 过 程 实 现 域所 需要 的 具 体 知 识和 技能 。 因 此 ,psp(personalsoftwareprocess,个体软件过程 )应运而生。 psp 可以说是由定向软件工程走向定量软件工程的一个标志。 psp 为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段, psp 的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。 psp 保障软件产品质量的一个重要途径是提高设计质量。 cmm/sei 又在此基础上又发展出了 tsp( teamsoftwareprocess,群组软件过程)的方法。 tsp 指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。 tsp 实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。单纯实施 cmm,永远不能真正做到能力成熟度的升级,只有 将实施 cmm 与实施 psp 和tsp 有机地结合起来,才能发挥最大的效力。 目前软件开发的规模越来越大,不管你使用什么先进的软件开发技术都必须有严格的管理过程,要有效的开发出软件产品必须要有符合企业自己的软件管理过程。我们应该基本遵循怎样一个管理过程呢?一般企业项目管理过程: 1.项目启动:需求分析、项目选择、方案筛选、可行性分析、项目可行性分析的内容 2.项目计划:项目计划的作用、项目计划的内容、项目计划的步骤、有效计划的建议、项目计划的批准、改变计划。 3.项目实施:项目实施动 员大会、发布项目信息、跟踪项目进展、实施阶段性评审 4.项目控制:整体变更的控制、范围变更控制、进度控制、费用控制、质量控制、合同控制、风险控制。 5.项目收尾:移交评审、项目合同收尾、项目行政收尾、项目后评价。 一般来说,管理的方面主要有:项目采购管理,项目成本管理,项目范围管理,项目风险管理,项目集成管理,项目时间管理,项目质量管理。面对这样一个过程,全球主要有三种软件管理体系: PMBOK, ICB, P2M。 对于一些大型的公司来说,采用企业项目管理的一个重要措施是建立项目 技术支持部。大型企业通常同时面临多项目的任务环境,而且这些项目投资大,工序复杂,在这样的情况下,建立项目技术支持部是非常必要的。项目技术支持部是独立的职能部门,该部门由熟练掌握项目管理专业技术的专业人员组成,面向整个企业提供项目管理的服务支持,直接向企业决策层汇报工作,同时向项目经理提供项目管理方面的技术支持。其实在现实中对于中小型软件企业来说这也是一个可取的方法,往往一两个人的技术支持部也能较好的服务与小规模的软件开发。