UML软件工程组织

项目管理与软件工程
来 源:项目管理者联盟 作者:乔东
一提到软件工程,大家自然就会想到软件开发、项目组、想到新产品开发有关的种种相关的事情。现在把项目管理和软件工程联系起来,就更让人想到软件开发中的项目管理、项目组的管理。那么,项目管理和软件工程之间到底应该是什么关系呢? 

我们首先来回顾一下软件工程的有关内容。软件工程是针对软件这一具有其特殊性质的产品的工程化方法。它关注的是软件产品的生命周期,包括从计划、设计、编程、测试、到运行和升级维护共六个主要阶段,而且随着软件产品的不断升级维护,还会使同一软件产品经历多次这样的生命周期,软件工程在产品的一次生命周期中的各个阶段中,提供了一整套的工程化的方法,来指导软件人员的工作。因此可以说,软件工程是一种围绕产品生命周期的工程化方法。 

我们再来看一下项目管理。项目管理是针对一个项目的管理方法,它关注的是项目的生命周期,包括从项目的启动、计划、执行,到控制和收尾共五个主要的项目过程。在不同的过程中都涉及到对时间、人员、成本、质量、风险等内容的管理,强调的是项目的绩效,通过有效的项目管理来完成对项目提出的需求,这当中也包括提交软件产品。因此,项目管理是关注于项目生命周期的管理方法。 

既然软件工程是围绕软件产品管理的,项目管理是围绕项目过程的,那么自然也就容易明确它们之间的关系: 

1 在软件产品的生命周期中,由于软件产品的性质、用途、规模等方面的差异,软件生命周期和项目生命周期可能会重合,一个软件的生命周期在一个项目周期结束时也随之结束。 

而在更多情况下,一个软件的生命周期会通过多个项目来完成,例如在软件的计划阶段,可以以一个项目的方式来实现,在软件的设计、编程阶段,可以通过一个项目的方式来管理,在测试阶段也可以单独组织一个项目,在运行阶段,则主要通过一般的运行管理而非项目管理的方式来进行,而在升级维护阶段,仍然可以根据具体要求通过组织项目的方式来完成,或者随着软件产品进入下一个生命周期,而又启动新的项目。产品生命周期与项目生命周期之间这种差别,在项目管理理论中是特别强调的,在项目管理中应该充分考虑其产出结果与整个产品生命周期的关系,而不应该孤立、片面地只强调项目周期的要求。

2 软件有其自身的科学规律,当项目管理涉及到软件内容时,应该给予充分的重视。 

项目管理的最终目的还是要提交符合要求的产品,在软件工程中,已经总结了软件产品的许多规律性的内容,并提出了一整套的工程化方法,因此,在软件项目的管理中,也必须遵循这种规律。在项目管理理论中,也一再强调项目管理者在具体应用领域中的专业知识,在项目的不同阶段,也都强调结合产品的要求而制定不同的工作内容,获得相应的资源,采用适当的管理方法。产品自身的规律对项目管理的具体实践有着极其重要的影响,产品是目标,实现过程是手段。要做好软件项目的管理,就必须首先对软件工程具有深刻的理解。 

3 在软件工程中,也涉及到一些管理方面的问题,与项目管理有一些重叠的部分。 

这是很自然的,既然一种工程化的方法,就一定要提到工程管理的问题,但是在软件工程中提到的管理要求,只涉及到与工程方法紧密相关的、有针对性的方法,而项目管理知识体系是一个通用的知识框架,在内容上与软件工程中的管理内容是不重复的,而是互相补充的。例如在项目管理知识体系中强调人力资源管理的有关管理方法,而在软件工程中则强调系统分析人员、编程人员、测试人员等不同角色在不同阶段的责任。在软件项目管理中,应充分注意这两者的有机结合。 

综上所述,以通用的项目管理知识体系为基础,结合软件工程自身的科学规律,采用适合软件产品自身特点的管理方法,是真正管理好软件项目和软件产品的最终出路。特别是当一个企业作为软件产品的最终用户时,更要同时做好项目管理和软件产品管理两方面的工作,始终不可偏离企业的最终经营目标。

版权所有:UML软件工程组织