基于项目管理的软件产品研发管理研究
发表时间:2007-8-26  作者: 胡红艳 刘咏梅    来源: 万方数据
关键字: 项目管理 启动管理 计划与控制 

文章首先分析了常见的软件产品研发管理模式,并从项目管理的角度,针对当前软件项目管理中的薄弱环节,提出了“以项目目的为中心,以兴趣为导向,以制度规范为基石,以逆向三级目标管理方法为保障”,并且有效结合利用现有的先进项目管理工具与方法的软件产品研发项目管理模式。

    从1968年“软件危机”、“软件工程”,第一次被提出,至今软件工程已走过了将近40年的历程,但“软件危机”并未被彻底解决。

    软件开发技术、方法不断更新换代,软件开发过程与软件工程方法也得到不断地改进,现代项目管理方法也开始进入到软件研发等高科技领域。最近几年“项目管理”,在国内软件研发领域非常火热,项目管理培训与认证(如PMP 认证)成为热门,网络上的软件项目管理论坛、讨论群组更是越来越多、越办越好,在许多软件企业中,也将项目管理作为他们的软件产品研发管理体系的一个重要组成部分。

    但是,软件产品研发项目仍然存在许多问题,也就是还没有真正把项目管理理论与方法运用到软件产品研发管理中来;没有确定的组织结构与合用的软件产品研发管理体系;软件产品研发管理团队组建不合理;不注重软件研发项目的启动与收尾管理,仍停留在软件过程与工程的层面上;经常出现有计划无控制的局面;最重要的是缺少对“人”这种非标准化资源的有效“管理”。 针对这些问题,本文主要介绍了如何通过一些项目管理方法来避免问题,更好地达到目的。

1 现有软件产品研发管理模式分析

    目前几种常见的软件产品研发管理模式一般是基于以下一种或几种体系与方法而建立起来的。

    ISO9000质量标准对高技术性的软件研发企业的帮助不大,它适用面广但专业性弱,也不符合软件产品的特性,所以它的指导价值不高。

    CMM对软件过程改进有很多有益的指导,但它对企业“如何进行软件过程改进”没有强制要求,对开发工作的直接指导性较弱,而且CMM投入很大、产生效益时间长,所以国内大部分软件开发企业不具备这样的条件。

    IBM总结的IPD作为一套先进的产品开发模式、理念和方法,更适合于指导大型企业的研发管理流程改进。但IPD的实施风险较大,失败比成功的可能性要高得多。

    RUP是软件业界迄今为止商品化最成功的软件过程模型。它是一个通用过程框架,适应性广,同时配套的软件工具相当完备,可以说它是重量级的软件研发管理解决方案。但大部分国内软件企业是没有能力来实施RUP的,只能借用其中某些适合的方法论。

    敏捷开发方法表达了“简单、快速、实用”的软件开发思想,但它不是成熟的理论、也不是事实上的标准可供企业广泛接受。敏捷开发方法对于提高局部的工作效率可能是很有帮助,但指导大中型软件企业的研发管理是有很高风险的。

2 基于项目管理的软件产品研发管理模式设计

    目前很多企业都在推行CMM,ISO9000等体系,并把项目管理作为这些体系的重要组成部分之一。但是大部分公司只是做了一些软件开发管理规范,却没有形成适合自己公司特点的软件产品研发管理模式,所以他们没有从根本上解决软件产品研发的质量、进度、成本控制等问题。
   
    项目和项目管理都是在一个大于项目本身的环境中进行的,软件产品研发项目也不例外。我们将软件产品研发项目生命周期分为4个基本的项目阶段:项目启动、项目策划、项目执行与控制、项目结尾。本文不讨论组织结构的设计等环境建设,只对项目各阶段所应注意的关键问题进行分析。

    2.1 项目启动

    做好一个项目的首要任务就是要做好立项管理,也就是确定项目的目的:“做正确的事情”。从整个软件产品研发项目来看,项目启动阶段也就是项目定义与决策的阶段,有人“发现问题”,并对“问题”进行必要的调研分析,然后提出具体的项目建议书、项目可行性分析报告,最终做出项目方案的抉择和项目的决策。简单说,就是正式认定一个项目应该开始,并且向这个项目提供资源。

    本阶段主要输出成果是项目可行性分析报告、项目建议书、立项评审报告、项目任务书。在本阶段已确定了项目的初步范围说明,并设立两个项目管理者的职位:项目经理和设计师,项目经理负责小组人力资源、非技术方面的管理,并向上级负责,设计师负责项目的规划设计、方案选择等并为此负责。

    2.2 项目规划

    项目规划阶段的主要活动就是制定软件研发项目计划,本阶段需要确定软件的功能设计、任务分配及相关的成本、资源等的预算。

    软件研发项目计划管理面临的最大挑战就是计划的准确性差,大多数项目实际完成时间都会超过估算进度的20%~100%。为了加大软件计划的准确性(主要指成本、质量、进度三大要素),需要按照计划颗粒度由大到小、由小到大的循环过程来制定计划,也就是采用逆向目标管理。

    2.2.1 制订计划的基本步骤

    本阶段输入软件开发项目任务书,通过需求分析、任务分解、任务分派、进度确定、计划评审等子过程,最终输出软件开发项目计划书、系统设计说明书。

    第一,“选择正确的人”“快乐”能够带来更高的效率、更好的成果,建立“兴趣小组”是很好的软件项目团队模式。“兴趣”包含着两层意思:其一是对整个软件产品的研发兴趣,其二是主动挑战自己有能力完成的、并有信心做好的任务目标。让全体团队成员主动参与到项目管理中来,这是对当前我国软件项目管理的“被动式管理”状态的改善。

    第二,进行软件功能的设计,把用户的业务需求转变成功能需求,并进行功能的排序以判断各项功能的必要性与紧急性。

    第三,进行任务分解与工作分配。为了使得预期的工期与成本更加合理,首先按照项目管理中的工作任务分解结构(WBS)方法进行工作单元划分,并由“兴趣者”去估算它的时间与资源需求,通过逆向三级计划法得出各级计划时间表。除了要保证计划在时间点上的各级计划保持一致外,我们还需要对时间流通过网络图来计算关键路径,以保证工作的并行度以及把力量集中在瓶颈上。

    最后制定其他配置管理计划、质量管理计划等独立计划,风险、成本、沟通等附属计划,一切就绪后就可以进行计划的评审。

 


责任编辑:蒋汉桥