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