对于以提供服务为主的企业来说,企业提供的服务也是需要预先进行设计的,例如旅行社的导游服务,可供游客选择的每条旅游线路,其实都是一种服务产品,银行设计的每一种金融服务,其实也是一种服务产品,企业同样要对这些产品进行规划、设计、销售、评价等管理工作,只是这些产品的具体提供过程,同时也是生产过程。因此,当一项服务内容需要向客户反复提供时,也同样需要做好产品管理。
在产品管理中,一般都需要使用产品的路线图(Roadmap)来定义产品的发展历程。典型的路线图包含的信息有:当前的稳定版本、正在开发中的版本、下一次发布的版本所包括的功能,以及下一版本的发布日期等等。通过预先定义产品路线图,对产品的发展过程做出规划,对新产品的开发直接提供指导和要求。
在产品管理中,一项非常重要的内容就是决定产品的生产工艺。每一种产品都需要特定的产品生产工艺过程才能生产出来。例如机械加工、建筑工程、汽车装配、软件开发等等,每种产品的生产都必须遵循一定的专业过程,这种生产工艺是与产品密切相关的。即使是在服务产品中,也同样需要产品生产工艺,在一些服务产品中,对服务过程和方法的设计,其实就是生产工艺,例如在企业ERP系统的实施服务中,许多咨询公司都提供了自己的项目实施方法论,这种方法论就成为了该公司提供服务的工艺过程。产品生产工艺决定了产品的生产过程,服务的方法论决定了服务的过程,如果不遵守产品工艺特点的基本规律,就可能无法保证生产出预期的产品。
因此,作为企业中的产品管理来说,要对本企业的产品有着清晰的发展规划,对产品特性有着深刻的剖析,对产品工艺特点有着详细的描述,对产品质量有着明确的标准。对应着这些管理职能,在企业中经常可能存在对应的职能部门,例如负责整体产品架构规划和产品设计的总工室,专门负责质量保证(QA)或质量控制(QC)的质量管理部门等。
三、项目管理与产品管理的关系
项目管理与产品管理是紧密相关而又不同的管理内容。在企业中,产品管理是主线,而产品生命周期中的具体阶段的工作过程,则可以通过项目实现。产品管理是项目管理的目标,而项目管理是产品管理的实现手段。同时,产品生产工艺特点决定了项目的基本过程,但具体的生产过程组织,只有通过项目管理才能完成。在具体项目中,往往两者会同时存在,特别是在提供服务的项目中,也包含了服务产品的生产过程,项目管理者必须在非常清楚两者各自的管理内容的前提下,将两者有机地结合起来,才能同时满足各方面的要求。
以软件项目为例,看看软件工程方法与项目管理方法之间的关系。一提到软件工程,大家自然就会想到软件开发、项目组,想到新产品开发有关的种种相关的工作内容。现在把项目管理和软件工程联系起来,就更让人想到软件开发中的项目管理、项目组的管理。那么,项目管理和软件工程之间到底应该是什么关系呢?
我们首先来回顾一下软件工程的有关内容。软件工程是针对软件这一具有其特殊性质的产品的工程化方法。它关注的是软件产品的生命周期,包括从规划、设计、编程、测试、到运营和升级维护等主要阶段,而且随着软件产品的不断升级维护,还会使同一软件产品经历多次这样的生命周期,软件工程在产品的一次生命周期的各个阶段中,提供了一整套的工程化的方法,来指导软件人员的开发工作。因此可以说,软件工程是一种围绕产品生命周期的工程化方法,是软件产品的生产工艺。
我们再来看一下项目管理。项目管理是针对一个项目的管理方法,它关注的是项目的生命周期,包括从项目的启动、计划、执行,到控制和收尾共五个主要的项目过程。在不同的过程中都涉及到对时间、人员、成本、质量、风险等内容的管理,强调的是项目的绩效,通过有效的项目管理来完成对项目提出的需求,这当中也包括交付软件产品。因此,项目管理是关注项目生命周期的管理方法。
既然软件工程是围绕软件产品管理的,项目管理是围绕项目过程的,那么自然也就容易明确它们之间的关系:
1, 在软件产品的生命周期中,由于软件产品的性质、用途、规模等方面的差异,软件生命周期和项目生命周期可能会重合,一个软件的生命周期在一个项目周期结束时也随之结束。而在更多情况下,一个软件产品的生命周期会通过多个项目来完成,例如在软件的可行性分析阶段,可以以一个调研项目的方式来实现,在软件的设计、编程阶段,可以通过一个开发项目的方式来管理,在测试阶段也可以单独组织一个测试项目,在运营阶段,则主要通过一般的运营管理而非项目管理的方式来进行,而在升级维护阶段,仍然可以根据具体要求通过组织项目的方式来完成,或者随着软件产品进入下一个生命周期,启动新的项目。产品生命周期与项目生命周期之间这种差别,在项目管理理论中是特别强调的,在项目管理中应该充分考虑其产出结果与整个产品生命周期的关系,而不应该孤立、片面地只强调项目周期的要求。
2, 产品工艺的特点决定着项目的基本过程。软件产品有其自身的科学规律,当项目管理涉及到软件内容时,应该给予充分的重视。项目管理的最终目的还是要提交符合要求的产品,在软件工程中,已经总结了软件产品的许多规律性的内容,并提出了一整套的工程化方法,因此,在软件项目的管理中,也必须遵循这种规律。在项目管理理论中,也一再强调项目管理者在具体应用领域中的专业知识,在项目的不同阶段,也都强调结合产品的要求而制定不同的工作内容,获得相应的资源,采用适当的管理方法。产品自身的规律对项目管理的具体实践有着极其重要的影响,产品是目标,实现过程是手段。要做好软件项目的管理,就必须首先对软件工程具有深刻的理解。
3, 在软件工程中,也涉及到一些管理方面的问题,与项目管理有一些重叠的部分。这是很自然的,既然是一种工程化的方法,就一定要提到工程管理的问题,但是在软件工程中提到的管理要求,只涉及到与工程方法紧密相关的、有针对性的方法,而项目管理知识体系是一个通用的知识框架,在内容上与软件工程中的管理内容是不重复的,而是互相补充的。例如在项目管理知识体系中强调人力资源管理的有关管理方法,体现的是具体组织过程的要求,而在软件工程中则强调系统分析人员、编程人员、测试人员等不同角色在不同阶段的责任,体现的是产品工艺的要求。在软件项目管理中,应充分注意这两者的有机结合。
目管理知识体系为基础,结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,是真正管理好软件项目和软件产品的最终出路。目前,许多软件企业正在热衷于CMM的评级,其实CMM的各个领域的内容,无不同时反映着软件工程和项目管理的共同要求,也在试图将两者有机地结合起来,在这个特定的软件开发领域中形成规范的过程方法。
在企业内,必须要协调好产品与项目之间的管理关系。对于同时提供产品和服务的企业,或者是对于企业内部同时提供产品和服务的部门来说,产品管理与项目管理结合,就会产生多对多的关系,即一个项目会涉及多个产品,而一个产品可能会在多个项目中被使用。这种多对多的关系,也是一种矩阵关系:
在这种结构中,项目经理必须能够有效地将多个产品组织起来,达成项目目标,同时保证对每个产品的影响,都能与产品自身发展路线保持一致。而负责产品管理的产品经理,则必须能够积极地支持项目的需要,并确保对产品的长期发展产生有利的影响。在处理产品管理与项目管理的两者关系时,容易出现的错误主要有两方面:一是产品的设计缺乏灵活性,不能有效地支持项目中各种个性化的要求;二是项目只关注项目自身的目标,不考虑产品长期发展的要求,结果影响了产品后续的健康发展。在项目集成管理中,也强调项目与产品的结合,在项目中也要同时考虑产品的全生命周期的成本,不能只考虑项目中的短期局部成本,例如软件开发项目中为了绕开一些技术难点,引入了某个开发工具,项目的成本降低了,但是在以后的软件销售中,由于必须配套使用该开发工具的支持模块,结果导致客户的成本增加,大大削弱了产品的市场竞争能力。
例如在软件开发项目中,需求分析、概要设计、详细设计、编码、测试等工作,都属于产品管理的范畴,这些工作都是由于软件工程的要求而存在的,是由相应的工程规范来约束的,软件工程规范就是软件产品的生产工艺,但是项目的计划、组织、控制,项目中的范围管理、时间管理、成本管理、质量管理等工作过程,则是属于项目管理的范畴。
产品管理关注内容,项目管理关注过程。
四、企业内IT部门所应采取的管理模式
企业内的IT部门,为企业提供的各个IT系统就是其提供的产品。企业内的IT部门,通常需要同时提供产品和服务。企业对IT部门的具体任务都表现为项目需求,但实际上所有对IT系统的产品管理工作都落到了IT部门,因为企业中通常都没有负责管理IT系统的产品管理部门,IT部门所承担的项目开发任务,也都是基于以前自己的开发成果,所以IT部门就必须自己做好产品管理,控制好各个产品的发展路线,保持整体应用架构的合理性,否则就无法从根本上满足不断涌现的具体项目的需求,更不能有效支持企业未来的业务发展。因此,企业内的IT部门,主要还是体现为产品公司的性质,其对外提供的服务也是基于这些产品的服务。
相关分类