首页 > 软件工程 > 主流软件工程与项目管理观点

主流软件工程与项目管理观点

2009年11月22日 蔡晓东

经过多年的发展,软件业已成为一个日趋成熟的工程学科。IEEE计算机学会主持建立了《软件工程知识体系指南》(SWEBOK),系统阐述了软件工程职业的核心知识体系。其中“软件工程”指的是应用系统化、学科化、定量的方法,来开发、运行和维护软件;即将“工程”应用到软件;以及对上述各种方法的研究。

SWEBOK识别出10个知识领域,即:软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具和方法、软件质量。对其中每个知识领域,进一步分解为知识子域。例如软件需求知识域,分解为软件需求基础、需求过程、需求获取、需求分析、需求规格说明、需求确认、需求度量。

SWEBOK的大多数知识领域,对应于法约尔所描述的“技术职能”。粗放的软件开发技术,被分解为软件需求、软件构造(编码实现)、软件测试等多种技术,并进行工作分工,由不同的软件工程师分别承担。我们知道,适当的专业分工有利于提高效率及质量。另一方面,专业化分工有利于软件工程师个人技能的提升。例如,对于负责需求的软件工程师,可以专注于学习需求获取、需求分析、需求规格说明、需求确认等需求子域的知识,并通过工作不断累积经验,成长为需求专家。

软件工程管理定义为应用管理活动——计划、协调、度量、监控、控制和报表——以保证软件的开发和维护是系统的、有纪律的和量化的。软件工程管理的知识子域为:启动和范围定义、软件项目计划、软件项目实施、评审和评价、关闭及软件工程度量。前5个知识域与项目管理知识体系联系紧密,可以视为项目管理知识在软件工程项目中的应用。软件工程度量知识子域则是管理过程的基础之一,有度量信息的管理可以改善软件工业效率和质量的不可预测性。也正是因为软件度量,才使软件业成为一个工程学科。

项目管理知识体系指南(PMBOK)中详细描述了项目管理知识。PMBOK并为软件项目设计,所描述的各个知识领域适用于所有项目。正由于这个原因,对于大多数软件项目经理来说,这些知识并不怎么适用。但由于PMI及培训机构的力推,拥有PMP认证对于中国项目经理来说相当有意义,因此重视PMBOK而忽视SWEBOK就很自然了。

根据PMBOK的定义,过程是为完成预定的产品、成果或服务而执行的一系列行动和活动。每个过程都有各自的输入、工具和技术,以及相应输出。项目过程由项目团队实施,一般可以分为两大类:项目管理过程和产品导向过程。其中项目管理过程具有一般性,由PMBOK描述;而产品导向过程则因应用领域而不同,例如,对于软件产品,应当参照SWEBOK。

项目管理过程分为5类过程组,即:启动过程组、规划过程组、执行过程组、监控过程组、收尾过程组。每个过程组包含若干管理过程。各个过程组不是孤立的,而是重叠及相互作用的。对应于5个过程组,项目管理的相关知识领域有:项目整合管理、项目范围管理、项目时间管理、项目成本管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理、项目采购管理9个知识领域。

作为事实上的标准,PMBOK涵盖了几乎所有项目管理相关的知识领域和技能,提供了项目经理从事项目管理工作的终极指南。然而,对于大多数软件项目经理来说,PMBOK提供的知识过多过泛,很难作为实际工作的参考。举例来说,每个项目经理都知道沟通很重要。PMBOK更是把沟通管理作为一个独立知识领域来强调,并分解为:识别干系人、规划沟通、发布信息、管理干系人期望、报告绩效5个知识子域。在实际项目中,特别是小项目,沟通管理应当是简单的,而且受到企业环境及外部环境的强烈约束。对于整个项目管理来说,我们也不太可能严格遵循“过程”。过于关注管理过程,反而对导致管理成本过高而损失效率。

SWEBOK与PMBOK分别描述了主流软件工程知识与项目管理知识。这些知识不能简单应用在我们的软件工程上,但已经构成了深远的影响。软件工程师接受各自关注领域的软件工程知识,项目经理获得了PMP、IPMP认证,形成了我们工作环境中的主流软件工程及项目管理观点。在面对工作中一些分歧的时候,一些人员将引用权威的说法,以证明自己的观点;但当真正进行实际工作时,又将权威观点束之高阁。这一点并没有导致非议,因为我们的高层管理者并不真正相信软件工程和项目管理。

他们相信的还是“中学为体,西学为用”。

注释:本系列文章使用“软件工程师”概念与SWEBOK保持一致;即软件工程师不但包括典型的软件设计和编码人员,也涵盖其他从事软件工程的专业人员。

本文属于项目管理专题,请到专题页发表评论
我要啦免费统计