软件过程与项目管理
软件过程改进
过程改进帮助软件企业对其软件过程的改进进行计划、措施制 定以及实施。
软件过程改进环境
一个软件过程改进环境不断要对过程的定义及文档化加以支持,而且要实现对软件监控、反馈、角色改进及活动的支持,从而最终建立一个可持续改进的软件过程.
软件过程改进步骤
软件过程改进步骤.jpg评估:发现弱项或存在的问题
计划:针对弱项或问题制定改进计划
改进:实施改进监控计划
监控:检验实施的情况,纠正不符合要求的现象
软件过程改进框架
软件过程改进框架.jpg是支撑软件过程运作的框架以及结构基础
不但包含人员组织、管理方面所涉及的角色与职责,而且还包括执行过程活动、获取并分析过程活动结果、过程反馈以及过程改进活动所需的技术工具和运行架构。
必须拥有两类架构
- 组织与管理方面的架构
- 技术方面的架构
主要目的: 主要目的是支持软件工程组活动,从而能够以一种高效、系统并且连续改进的方式进行软件开发。
影响方面:
- 过程效率
- 产品质量
- 软件工程师生产率
- 时间、费用评估的准确性
- 项目计划的跟踪
组织与管理方面的架构
包括用于建立过程监控和对过程执行实施 强制措施的角色与职责
-
全局的角色:是针对整个组织的
-
确保过程有效性
-
为项目组成员以及团队活动提供支持和指导
-
提供项目组活动状体啊报告以实施对项目的监管
-
局部的角色: 针对项目组一级或者针对特定的关键过程域的
-
体工队日常工作的支持
-
提供个体软件工程活动报告,监控实施效果
-
指导帮助阮江工程师提高其个体软件过程水平
角色
- 负责人角色:支持整个软件过程改进活动的负责人。拥有对预算及资源授权的权力,并可监控企业的获利情况。应是企业的高层管理者。
管理角色:一个可以通过委员会对软件过程改进活动提供管理方面指导与战略方向的人。
协调角色:共同的SEPG(软件工程过程组),在协调及技术指导方面为软件过程改进团队提供帮助。负责制定过程改进计划。
改进团队角色:软件过程改进团队(软件PIT),具体实施软件过程改进活动的人员。
[图片上传失败...(image-57de25-1513791811221)]
-
实施负责人/领导:应是企业高管
-
具有建立软件过程改进方案的权利
-
在企业中确保过程改进能持续获得足够的管理权限
-
协调软件过程改进活动与企业其他活动之间的关系。
-
确保软件过程中强制度量的实施
-
推动软件过程改进的动力
-
执行委员会: 是由一群高级经理以及一线经理组成的一个政策制定团体,制定整个企业过程改进以及监控策略
-
为SPI活动设定战略目标
-
检查软件过程评估结果
-
批准软件过程改进组的结构设置
-
批准不同软禁过程改进组的实施计划和优先级设置
-
监控软件过程改进组获得相应的权利和资源
-
检查当前政策的执行以及资源和过程管理的情况。
-
与高层或有相同计划的组织进行协商
-
在不同的软件过程改进组之间进行协调
-
软件工程过程组(SEPG):是企业级的工作组,他的任务是协调、实现对整个企业中所有软件过程改进组及其活动的支持。
-
协调企业中所有的过程改进活动,对不同级别上的管理活动加以维护。
-
提名并召集软件过程改进组(PIT)成员,协调他们的工作。
SEPG目标与任务
sepg目标与任务.jpg- 软件过程改进组(PIT):由软件工程师组成的团队,他们利用部分工作时间,针对某一特定的领域进行过程改进。
- 实现关键过程域的过程改进活动。
- 对当前过程的分析、再设计以及文档话。
- 对过程在设计问题的思考
- 为新过程编写相应的文档。
- 为实现对新过程的支持,评估、选择不同的方法、技术与攻击。
- 为过程开发相应的培训课程
- 在SEPG的帮助下协调与其他相关软件PIT的关系。
- 为过程实施情况的监控制定相应的规程、制定反馈机制并提供针对反馈数据的分析工具。
实体职责
实体职责.jpg技术方面的架构
- 软件过程技术方面的架构包括
- 用于支持软件工程过程组与过程改进团队的技术架构、计算机设备以及工具
一个高效灵活的技术过程架构是进行有效的过程改进和过程维护的基础。
包含内容
技术架构包含内容.jpg 技术架构实例.jpg过程支持工具
- 保存及管理过程定义和过程数据的工具
- 检索及传播过程定义和过程数据的工具
- 支持软件过程和管理过程活动的工具
软件过程改进规划图
- 提供一个表明有效软件过程特征的模型,规划出实现高效软件过程的行动步骤
- 实现软件过程需要经历的阶段及层次以及为实现过程目标所必经的关键点
- 可以是公开发表的过程标准
要求
- 渐进的改进,通常讲过程成熟度划分为不同的级别
- 应标示不同层次的过程的特点
- 应标示不同级别软件开发环境的特征、特点与属性,并告诉人们要做什么
- 应说明每个级别面对的调整,并在制定计划时将挑战考虑进去
规划图模型
- 阶段性过程改进规划图模型
- 由一系列成熟度界别所构成,每个过程域都处于一个特定的级别
- 连续性过程改进规划图模型
- 每个过程有自己的成熟尺度
比较
阶段型与连续型的比较.jpgCMMI
CMMI模型.jpg软件过程评估方法
- 评估组织当前软件过程、活动以及架构的方法和技术
- 十一过程改进规划图为依据进行度量、检测过程的成熟度级别,并总结出当前活动的特点,给出优势与弱势,判断出当前过程对质量、成本、进度方面进行控制以避免问题的能力。
评估内容
- 不应将注意力只集中于过程的文档化
- 应关注是否进行了软件管理以及具体实施的培训
- 应通过下面几个判断过程是否有效
- 是否有管理以及组织方面的授权
- 过程的实施结果是否被度量与监控
- 反馈机制是否已建立
- 是否有明确的过程负责人,过程是否真正得到了改进
- 不应只通过几个问题就对过程加以评估,应该通过检查及小组讨论深入到软件开发和项目管理中去
- 应由受过专业培训的专业软件人员进行评估
- 应遵循一个已定义的过程改进规划图进行评估
评估目标
- 了解并检查组织当前软件工程实施状况与整个组织的运行情况
- 确定过程中的优势及弱势,确定软件过程改进的关键领域
- 促进过程改进活动的开展并让组织ing到这参与到改进过程中来
- 为过程改进活动提供框架
- 帮助获得应有的权利并对评估活动提供支持
评估方式
评估方式.jpg软件过程评估领域
组织即->项目级->个体级别
即
[图片上传失败...(image-7998cf-1513791811221)]
评估流程
评估流程1.jpg 评估流程2.jpg软件过程改进计划
- 根据评估所发现的问题,有针对性的制定出相应的改进方案,并将方案转化为软件过程改进的行动计划
- 通过执行过程改进计划,将会提高现有的软件过程水平,同时提高过程的规范化程度以及过程的有效性。
前提
已通过评估了解软件过程的状态,而且已采用一种改进规划图来度量软件过程改进的状态,并以此得出过程改进的目标
成功判断标准
- 可行性
- 灵活性
- 资源的可获得性
- 评估的风险
网友评论