海军工程大学,武汉, 430000
摘 要:加强软件项目风险识别、评价、应对及监控,对软件项目管理举足轻重。通过工作分解结构(WBS)的方法原理对软件生命开发周期分解,评定全过程和各阶段风险评价等级,可以有效帮助项目管理者采取应对策略加强防范。
关键词:WBS 软件开发项目 风险管理
软件开发项目存在需求变动频率高、人为风险因素大等特点。根据软件项目工作分解结构,构建SDLC-WBS模型,有利于识别风险因子,提高开发实效。
1.相关理论
软件生命开发周期(SDLC)也叫软件开发生命周期,通常情况下,SDLC主要包括需求分析、设计、实现、测试四个阶段。
工作分解结构(WBS),即把项目按一定原则分解成任务,再分解成单项工作,再一直分配到个人的日常活动。即:项目→任务→工作→日常活动。工作分解结构以可交付成果为导向,对项目要素进行分组,它归纳并定义了项目工作范围,每下降一层代表对项目工作更详细定义[1]。WBS处于计划过程中心,也是制定进度计划、资源需求、成本预算、风险管理计划和采购计划等的重要基础。
2.WBS理论应用
WBS一般通过树形层次结构图或者行首缩进表格表示,WBS的分解可采用多种方式进行,如产品的物理结构、功能、地域分布、目标职能等。通常情况下,WBS结构种类包括纲要结构、项目和合同结构、合同工作分解结构、组织分解结构、资源分解结构、材料清单、项目分解结构等八种[2],如表2.1所示。
表2.1 WBS结构种类
结构种类 | 概念 |
纲要结构 | 指导性的、战略性的工作分解结构 |
项目结构 | 针对某一特定项目,对纲要性工作分解结构进行裁剪得到的工作分解结构 |
合同结构 | 适用于特定合同或采购活动的完整的工作分解结构 |
合同工作分解结构 | 主要用于定义卖方提供给买方报告的层次,通常不如卖方管理工作使用的工作分解结构(WBS)详细 |
组织分解结构 | 用于显示各个工作元素被分配到哪个组织单元 |
资源分解结构 | 是组织分解结构的一种变异,通常在将工作元素分配到个人时使用 |
材料清单 | 用于制造一个加工产品所需的实际部件、组件和构件的分级层次 |
项目分解结构 | 基本上与工作分解结构(WBS)的概念相同 |
2.1 需求分析阶段风险识别及分析
需求分析阶段是SDLC第一个阶段,目的是让参与者清楚掌握项目开发任务及实施步骤。构建需求分析阶段的WBS如表2.2所示。
表2.2 需求分析阶段的工作任务
工作任务 | 工作内涵 | 风险管理特点 |
需求问题识别 | 针对项目开发的综合条件及需求标准,收集使用需求 | 开发者的人为风险因素高 |
需求规格说明 | 针对项目开发中各需求之间的逻辑关系分析并形成规范文档 | 开发者的人为风险因素高 |
需求沟通 | 项目技术开发者与产品使用者之间针对软件内容以及如何组织开发等进行沟通,确保技术开发者与产品使用者对软件项目的相关需求有明确认识 | 使用者与开发者沟通要求高 |
需求管理 | 确保项目需求规格说明书统一性,防止混乱;尽量保证需求的恒定性,减少变更;要加强对需求规格书和需求变更的跟踪 | 使用者需求变动频度高 |
2.2 设计阶段风险识别及分析
此阶段目标是设计项目架构,应用相关技术,以最合适的决策按照项目定义的要求设计各功能模块的逻辑结构及数据结构,包括概要设计和详细设计。以此构建设计阶段的WBS,如表2.3所示。
表2.3 设计阶段的工作任务
工作任务 | 工作内涵 | 风险管理特点 |
组成组件 | 项目的组成结构,功能模块细分及逻辑设计、数据结构设计、E-R模型的设计 | 开发者人为风险因素高 |
成本预算 | 对于项目的成本控制,预算经费的影响,如确保客户需求定义清楚控制项目开发时间增长产生的费用 | 使用者需求变动频度高 |
关键技术 | 针对项目开发,所采用的技术经验充足,将新技术导入设计,跨技术平台能力应用 | 开发者人为风险因素高 |
人力资源 | 项目开发团队负载、团队人员调动以及团队人员流失 | 开发者人为风险因素高 |
进度计划 | 项目时间范围、进度安排,如限制客户需求变动频繁导致项目开发修订不断调整,控制开发时间 | 使用者需求变动频度高 |
2.3 实现阶段风险识别及分析
此阶段目标是实现项目架构,应用相关技术,以最合适的决策按照项目定义的要求实现各个功能模块的逻辑结构及数据结构实现相关功能,达到软件开发的相关性能。以此构建实现阶段的WBS,如表2.4所示。
表2.4 实现阶段的工作任务
工作任务 | 工作内涵 | 风险管理特点 |
功能编码 | 对于项目的实现,软件设计阶段设计的功能模块编码实现,达到需求分析规格说明书的要求,功能与需求相符合 | 开发者人为风险因素高 |
性能开发 | 项目的视觉效果佳,无多余附加功能、系统具有扩展性及可操作性、系统安全性能好、系统与接口灵活有弹性等 | 使用者与开发者沟通要求高 |
算法应用 | 项目功能实现的算法处理及优化,提高功能实现的最优化 | 开发者人为风险因素高 |
编制手册 | 针对项目的使用,编制《项目使用的用户手册》以及《项目使用的维护手册》 | 使用者需求变动频度高 |
2.4 测试阶段风险识别及分析
对于项目来讲,测试阶段是SDLC第四个阶段,此阶段目标是测试项目功能实现情况及性能实现情况,通常可采用黑盒测试、灰盒测试和白盒测试。梳理该项目测试的工作任务构建WBS,如表2.5所示。
表2.5 测试阶段的工作任务
工作任务 | 工作内涵 | 风险管理特点 |
合同履行 | 项目合同事项履行情况,对减少或增加事项进行核对,规避与客户合同争议事项 | 使用者与开发者沟通要求高 |
测试计划 | 对于项目的测试,测试用例的设计及实施,及测试的计划设计及实施,编制《项目测试计划》 | 开发者人为风险因素高 |
市场需求 | 分析开发周期变化对用户需求的影响以及市场需求的变化,是否存在同质产品及替代产品,是否出现知识产权问题 | 使用者需求变动频度高 |
测试评审 | 根据《软件测试计划》,对软件项目进行系统集成测试,并输出《软件测试报告》 | 开发者人为风险因素高 |
3.结论
通过软件生命开发周期(SDLC)与工作分解结构(WBS)的方法原理分析项目风险的特点,可以得出SDLC各阶段的工作任务,构建各阶段的工作分解结构,以此识别并分析项目的各阶段风险,有利于加强风险监控,构建风控体系、把握风险审核、注重风险跟踪。
参考文献:
何涛.电子商务软件开发项目风险管理工作探析[J].科技经济市场,2015(08):208-209.
张培良,王见伟,崔锡霖,张帆.软件项目管理中的风险识别与管理分析[J].数字通信世界,2018(09):276+284.
第3页