软件项目工作分解结构模型研究.doc
软件项目工作分解结构模型研究 摘 要:工作分解结构是确定项目范围的一种主要技术。从软件的过程、产品二元性以及软件工程异于传统工程的特点出发,提出了将工作分解结构、组织分解结构、产品分解结构和项目中的工作责任相结合的 WBSR 模型,给出了模型的工作流程,分析了该模型对软件项目管理的作用。在一个国际性软件企业的软件项目管理软件中成功地实现了该模型,它对软件项目的范围界定和软件项目计关键词:软件工程 ; 项目管理 ; 工作分解结构 1 软件项目管理的核心内容就是软件项目计划的管理,软件计划的第一个活动就是确定软件范围,该范围是项目的最终成果和产生该成果需要做的工作,既不欠缺也不多余,在管理级和技术级均是无二义的。在软件项目计划中,对项目范围的准确确定以及工作量、成本等各项估算都是十分重要的。工作分担 (责任范围 )不明确,工作分解结构 (Work Breakdown Structure, WBS)与项目组织结构不明确或者不相对应,各成员之间的接口不明确,将会导致一些工作根本无人负责,而这将成为软件项目失败的重大隐患。进行软件项目的估算最精确的 方法通常是工作分解结构是为了管理和控制的目的而将项目分解的技术。它按层次把项目分解成子项目,子项目再分解成更小的、更易管理的工作单元 (或称工作包 ),直至具体的活动 (或称工序 )的方法。 WBS 通常是一棵结构化树,该树组织并确定产品分解结构 (Product Breakdown Structure, PBS)是面向产品或服务的分解,它用于定义项目可交付的产品及产品的组成单元,确定产品或服务中应包含的功能和特征。这里的产品指软 件工作产品,包括软件产品 (最终要提交给用户的 ) 项目的组织分解结构 (Organization Breakdown Structure, OBS)是关于项目内部组织的分解,它是用与工作分解结构相似的方法构建而成的项目的内部组软件具有过程和产品的二元性。软件项目的生命周期有项目立项、系统需求分析、系统设计、系统实现、系统测试、系统上线安装和系统维护等几个阶段,每个阶段的工作也有其很强的规律性,都有其相应的操作规程。所以,软件项目按照软件系统开发过程的规律对工作进行分 解,确定项目工作范围是非常重要的。同时,由于软件产品主要是逻辑产品而非物化的有形产品,这样对客户需求的正确理解就会有或多或少的偏差。鉴于此,对软件项目产品进行分解,尽可能准确地界定软件产品范围,对项目的成功也是非常关键的。如果过程很弱,最终产品(1)软件是被开发或设计的,而不是传统意义上被制造的 ; (2)软件开发不需要使用大量的物质资源,而主要是人力资源 ; (3)虽然软件产业正在向基于 构件的组装前进,但大多数软件仍是定制的 ;(4)软件开发的产品只是程序代码和技术文件与数据等逻辑产品,并没有其基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性,不能像管理其他项目一样管理软件项目。对软件项目而言,最重要的资源是人,最重要的生产力也是人,确定了软件项目的工作范围和产品范围,如果有人对范围内的各个元素负责,那么制定工作计划就容易多了。 下面要讨论的 WBS 模型就是针对软件项目的特点所提出来的。 2WBSR 模型 本文要提出的 WBS 模型是工作、产品、 组织分解的结果要素与责任(Responsibility)相结合的,在本文中把该模型称为 WBSR(Work Breakdown Structure Responsibility) 2.1 软件工程项目的 WBSR 模型示意图从 WBS, PBS, OBS 三个维度来结构化项目并将其结合起来,可以有效地确定软件工程项目的工作范围和产品范围,并确定相关负责工作和产品的组织或人员及其相关责任,如图 1 WBS, PBS 平面体现的是软件项目中工作分解结构与软件产品分解结构之间的关系,确保每个分解的 PBS 都有相应 的 WBS 去完成,也让项目管理者明确某个WBS 对应的 PBS 产品。图 1 所示的 WBS 制定项目计划,其对应产品有《项目计划》WBS, OBS 平面体现的是软件项目的某项工作与项目组织结构之间的对应关系,就是责任分配矩阵 RAM,这可以让项目组成员明确自己所要做的工作和责任,同时让项目管理者明确项目各项工作相关的责任人。这将为项目计划的制定、项目组人员的绩效考核提供依据。图 1 中所示的 WBS 制定项目计划有 OBS 中的项目经理和项目监管人 (一般为软件企业的部门经理 )对其负责, PBS 中的《项目计划》和《项目基线计划》分别由 OBS 中的项目经理和项目监管对其负责。其中项目经理负有“负责”责任,项目监管负有“审批”责任。 2.2WBSR 模型的相关定义 定义 1 S 是一个非空有限集合, {S|s∈ S, s的一种责任 } 在软件项目中,对于某一种工作,有某人为之负一种责任,这责任可以是通定义 2 责任集 R 是一个非空有限集合, {R|F∈ R, f∈ F, f∈ S} R 是 S 的不含空集的幂集,对于软件工程的某一项工作,某人可能对其有多重责任 定义 3 WBS 集 W 是一个非空有限集合, {W|w∈ W, w 是软件项目的 WBS 树型结构的一个节点或空集φ } 定义 4 PBS 集 P 是一个非空有限集合, {P|p∈ P, p 是软件项目 PBS 树型结构的一个节点或空集φ } 定义 5 OBS 集 O 是一个非空有限集合, {O|o∈ O, o 是软件项目组 OBS 树型结构的一个节点 } 定义 6 四元组 (w, p, o, r) (1)w∈ W; (2)p∈ P; (3)w, p 不同时为空集φ ; (4)o∈ O; (5)r∈ R 定义 7 工作包集 V 是一个非空有限集合, {V|v∈ V, v工作包 } 定义 8 工作责任矩阵,即工作包集 V 在三维空间 WBS, PBS, OBS 向 WBS, OBS定义 9 产品责任矩阵,即工作包集 V 在三维空间 WBS, PBS, OBS 向 PBS, OBS 定义 10 工作产品对应矩阵,即工作包集 V在三维空间 WBS, PBS, OBS向 WBS,PBS 平面投影所形成的矩阵。 定义 11 工作包可达。 vi, vj∈ V, vi 可达 vj 当且 (1)vi 与 vj 相关 ; (2)vi 先于 vj 在软件项目中,“先于”的概念主要从软件开发阶段和产品先后顺序来考虑。定义 12 工作包一步可达。 vi, vj∈ V, vi 可达 vj (1)vi 与 vj 直接相关 ; (2)vi 先于 vj。 两个工作包,项目经理完成工作计划后由项目负责人审批,这是直接关系,是一步可达的。 2.3WBSR 根据具体软件项目的特点,分析得到责任集 ;由软件过程规律和项目个体特性,对软件项目做工作结构分解,得到 WBS 集 ;以 软件项目的客户需求为基础,分析得到该软件项目的产品分解结构的输出 PBS 集 ;结合软件企业和项目组的特点得到项目的组织分解结构 OBS;在以上基础上分析得到工作包集以及工作包的 该模型的输入是 WBS, PBS, OBS 的分解策略,项目自身特征,客户需求,软件工程过程方法 ;输出是 WBS 树型结构图、 PBS 树型结构图、 OBS 树型结构图、工作责任矩阵、产品责任矩阵、工作包可达矩阵和工作包一步可达矩阵。 3WBSR 模型的工作流程 WBSR 模型的工作程序包括组建 WBSR 工 作小组,对项目工作、产品、组织进行分解,工作结果的确认,软件项目范围变更时 WBS 结果的更新等作业序列,如图 2 (1)组建 WBSR 小组成员一般由该软件项目的项目经理、技术经理、系统分析人员、客户代表、项目外有经验人员等组成,还可能包括 SEPG, SCM, SQA 组的成员和最终用(2) 工作结构分解是该模型工作程序很关键的一步,一般是根据软件开发的过程,按照阶段进行分解的。同时,小组成员的经验和企业的软件过程知识库是很重要(3)产品结构分 软件产品主要是逻辑产品的特性决定了客户需求在软件产品分解工作中的地位,在产品分解时要从产品功能和服务两个方面去分析和分解,对于隐含的功 (4) 组织结构分解在很大程度上依赖软件企业的运作模式,如 SEPG 小组、 SQA小组、 SCM 小组的设置等。在该模型中,将这三个小组纳入组织结构分解的范畴,(5) 责任类型划分主要取决于软件项目行业领域和软件企业的管理方法,主要参(6) 项目工作包集的生成是 WBSR 模型最为重要的一步,也是该模型的核心。 WBS与 OBS 的映射、 PBS 与 OBS 的映射、责任集 R 的分派、工作包粒度的控制等都是(7) 在工作包集 V 正确定义的基础上生成的工作包可达矩阵将为软件项目计划提供科学的依据。可以先将工作包集分成相对独立的小集合,然 后在小集合的范围内再进行工作包可达性分析,这样可以降低复杂度,提高其准确性。在项目计(8) WBSR 工作小组在完成工作包集和可达矩阵后将检核工作结果,确保范围定义没有遗漏并正确定义,工作包可达矩阵、一步可达矩阵正确,并对有偏差的地(9) 软件项目实施的过程中,项目范围发生变更的情况是无法避免的。项目范围变了,工作包集和可达矩阵也要作相应变化,从而为项目当前计划的制定提供依据。 4WBSR 模型对软件项目管理的作用 WBSR 模型的工作成果有软件项目责任矩阵 WBS 结构图、 PBS 结构图、工作包集、工作包可达矩阵等,这些将对软件计划、预估、评估等提供依据或参考。具体关系如图 3 所示。 WBSR 模型最重要的工作成果是 WBS 图、 PBS 图和工作包集合,它们将是软件项目计划的制定尤其是工作分配的主要依据,同时也是跟踪监督项目计划完成情况以及计划调整的依据。在项目的成本、资源、缺陷、风险预估的过程中,分解后的 WBS 图和 PBS 图对各项预估结果的准确性和正确性将起到至关重要的作用。工作包集是软件过程评 估和改进以及产品的检测等环节的数据采集过程中保证数据精确性的重要基础。 WBSR 模型所得到的责任矩阵,对于项目组成员工作的监督和绩效考核将提供重要的依据。 5WBSR 模型性能分析与评价 WBSR 模型从过程和产品的不同视角对项目进行分解,从而使软件项目范围的定义更加准确和有效,减少工作的遗漏及做一些无用的工作 ;并且工作落实到人,在工程实践中可以有效避免有些工作无人负责的情况。模型对软件项目范围WBSR 模型中工作包可达分析是较为复杂的部分,但模型没有给出具体的分析方法 ,如果能提出具体有效的可达分析算法,该模型对项目进度安排的支持作用将得到充分发挥。 6 结束语 本文提出将 WBS, OBS 与 PBS 相结合,并进一步与具体工作的责任相结合的WBSR 模型。 WBS 主要从软件工程过程的角度出发去界定软件项目的范围 ;PBS 主要从客户的需求出发对软件项目进行面向结果的分解 ;WBS 和 PBS 的整合遵循软件的过程、产品二元性规律,并有效解决软件项目范围难以确定的问题 ;WBS, PBS分别与 OBS 相结合,从而使得软件工程的各个阶段、各个环节以及客户需求的各个细节能与项目组的每个组织或个人对应 起来,都有人为其负责,确保软件项目顺利完成,并能满足用户的需求。 WBSR 模型还提出将软件项目分解的结果 (工作包 )按照软件过程和软件产品的要求分析其可达性 (相关性和先后关系 ),形成工在一个国际性软件企业 (宜诺维新集团武汉开发中心 )的项目管理系统ESSP(Enovation Software Service Platform)中对上述 WBSR 模型作了剪裁,并成功地实现了该模型。该模型的采用将会对软件项目的范围界定、项目计划、计划跟踪、绩效考核、软件过程 改进等起到较好的效果。