1、针对OSSP的过程剪裁
当一个组织已经接近或者超过了已定义级时,OSSP和剪裁手册可以用来开发每个项目中所使用的软件过程。在SW-CMM中,调整OSSP使之能够适用于项目的特定商业需要和技术需要的过程称为剪裁OSSP以建立项目定义软件过程。在这个过程中,开发一个组织范围内的剪裁手册是必不可少的手段。
通过剪裁OSSP建立项目定义软件过程非常类似于将SW-CMM剪裁成为OSSP的过程。剪裁中需要注意的一些重要方面也是一样的,包括:
OSSP中所描述的组织结构和项目结构的相同点和不同点。
客户关系和需求。
项目在一般情况下所要求的正规化程度、频率、精度以及范围。
项目的特定商业目标和需求。
组织当前的过程能力和项目要求的过程能力。
(1)项目结构
OSSP中假定的组织结构和角色集合可能并不适用于该组织中的每一种环境或项目。例如,许多OSSP中都假定了一个完整的开发生命周期,但是许多小型的、维护性的项目并不能将所有这些角色都转换为自身的特定需求。组织的剪裁手册应该提供关于如何将这些角色转换为组织环境的有关指导。有些OSSP活动无疑要依赖于其他组织的协助或输入。在对OSSP进行剪裁的过程中,必须经常注意这一点:对于某个特定的项目来说,所需的协助或者输入能否得到及时的提供?
(2)客户和终端用户关系和需求
OSSP中假定的特定客户关系类型可能并不适用于组织中的所有项目(例如维护性的项目和用于内部开发和使用的软件)。OSSP需要被剪裁,以满足特定的客户和终端用户关系。此外,有些客户可能会提出与OSSP相矛盾的一些特殊需求。在开发项目的特定软件过程时必须考虑客户的需求。
(3)剪裁程度
频度——许多OSSP都会定义一些需要“周期性执行”或者“事件驱动”执行的活动。活动执行的频度需要根据组织和项目的需求进行重新解释。
精度——过程定义中所需要的详细程度可能各有不同。OSSP中可能包含对某一些实践的详细过程定义进行描述,而对另一些实践则可能只是给出大概的描述。项目在必要的时候需要补充一些细节。根据过程产品的构成、与其他过程产品的一致性程度,项目包含的细节可能比建议的更详细,也可能会更简略。
范围——考虑到组织的限制条件、商业环境等因素,执行某些活动可能是毫无意义的。这里最简单的例子就是子合同管理——如果一个项目根本就不需要使用子合同,则可以不考虑OSSP中对这方面所规定的一些程序。更好一点的例子是决定是否放弃SQA组织的独立评审,或者决定不度量在执行跟踪和监控活动中所花费的精力。在去掉整个过程域或者去掉大量的活动时,一定要综合考虑这样做可能带来的风险以及相应的费用/效益平衡。
对于适合于项目环境但不适合OSSP中所指定程度的实践来说,可以在其执行程度上进行剪裁。这种剪裁方式认为,对某些项目环境来说,一个或多个方面的实践可能会要求不同程度的执行。对于这样的实践,组织可以开发一系列替代的执行实践,这些实践在上面所描述的各种属性方面各有不同。每一个组织都需要定义一系列对于其所服务的环境或项目有用和有意义的实践属性。
(4)商业目标
在针对某一个特定项目对OSSP进行剪裁时,必须考虑组织和项目的商业目标和需求。除了在OSSP所假定的商业目标(如低费用、高质量、好的执行计划以及持续改进的软件过程)之外,每一个项目都可能有一些对项目的特定过程产生影响的特定商业目标。例如,该项目是否要求采用某种新技术?客户是特别关心费用还是更关心项目进度?以及项目如何满足其自身的过程改进目标并帮助组织满足其全程过程改进目标?所有这些都会影响到OSSP在项目中的执行。
(5)成熟度等级对剪裁的影响
要想根据特定项目对OSSP进行剪裁,必须知道组织当前的过程能力以及项目要求的过程能力。较高级别的成熟度活动可能要依赖于组织基础结构的支持(例如培训和工具)。在完全配置这些基础结构之前OSSP就可以被更新,或者项目也可以在OSSP所定义的成熟度等级之上进行操作。在某些情况下,可能还会需要将组织中的某些项目运行在不同的成熟度等级之上。在这种情况下,组织就必须决定OSSP是否应该反映(大部分或全部项目都应该达到的)主要要求或者平均条件(大多数项目的当前状态)。所有这些因素都会影响到项目如何将OSSP剪裁成为特定的过程。
2、剪裁中需要考虑的过程元素
再次需要说明的是,将OSSP剪裁成为项目特定过程非常类似于剪裁SW-CMM而形成OSSP的过程。其中的过程元素与对SW-CMM的剪裁中是相同的,同样包括角色、进入标准、输入、活动、输出、工作产品、退出标准等因素。对此本人在《根据SW-CMM建立组织标准软件过程(OSSP)》一文中已经有所论述,这里不再重复说明。
3、剪裁方法
如前所述,对于剪裁OSSP形成项目特定过程的分析和思考非常类似于剪裁SW-CMM以形成OSSP的需求集合。但是,在将SW-CMM剪裁成为OSSP需求时,我们很大程度地依赖了各种核对表的使用。而在将OSSP剪裁成为项目特定过程时,则应该分析和剪裁OSSP的过程元素以适应项目的需要,这时我们可以换一种方式来获取所需要开发的分析需求。
我们推荐使用(也是SW-CMM所推荐)的方法是获取组织中剪裁手册的可能变化范围。这可能会在某种程度上限制了项目的选择项,但是却大大减轻了执行分析的负担。比较简短的分析仍然只涉及三个过程元素——输出、活动和角色,但这还要依赖于项目的需求和项目定义软件过程所需要的详细级别。
(1)开发OSSP剪裁手册
为了使组织中多个类似的项目环境中实践的变化最小化,减少剪裁中所需的过程开发数量,我们推荐使用一种可控制的剪裁方式,使得剪裁可以通过OSSP的一系列剪裁手册来进行控制。
在开发剪裁手册时,首先应该创建一个初始表,表中显示过程元素,每个元素中可被剪裁的属性、每种属性的范围以及选择某个特定范围时所应考虑的条件等。这种方法紧密结合了过程元素、剪裁程度以及剪裁条件等因素——所有这些在前面都已经有所描述。表的一个具体实例如表1所示。
剪裁手册开发步骤如下:
识别过程元素。不同的OSSP的结构可能要求不同的小组或元素。从可操作性考虑,在开始可以集中于输出、活动以及角色等元素,然后再根据需要慢慢扩展到其他元素。
识别需要剪裁的每个元素的属性。属性就是关于过程元素的一些可描述的条款,一些最常用的属性已经在剪裁程度部分中有所描述。每个组织都需要开发对其业务环境和商业目标有意义的一系列属性。属性的作用就是使得实践中所用到元素的性质更加清晰。
逐个检查每个过程元素。对于该元素的每一个属性,都需要决定其可能变化的范围(以及相应的替代集合)。例如,在声明某个代理(角色过程元素)完成某项任务的一个实践中,代理的范围就是一个属性。因此,“个人”、“小组”或者“多个部门”都可能是合适的代理。在此建议选择项目能够从中进行选择的值集合或者替代项。
对于每一种替代项,确定在执行过程剪裁时之所以选择该替代项的主要原因。比如大小、复杂性风险或者环境等。
表1:可剪裁的过程元素示例
过程元素 | 过程元素示例 | 可能具有的可剪裁属性 | 可选的替代项 | 所需考虑的项目条件 |
角色 | 代理 提供商 客户 评审员 验证员 |
执行者 | 个人 | 项目大小:人数少于5人,时间少于6个月; 客户:内部客户或小型外部客户 |
小组 | 项目大小:5-15人,时间半年到一年; 客户:大型外部客户,政府代理 | |||
团队 | 项目大小:10-25人,时间一年至三年 客户:超大型项目 | |||
活动 | 编码 测试 评审 通讯 |
频度 正规化程度 |
每周一次 每月一次 每季度一次 |
高标准的超大型项目 |
正式会议 备忘录 电子邮件 电话通知 |
大型或中型项目 大型、中型或小型项目 中型或小型项目 小项目 | |||
输入 输出 工作产品 |
核心模块 | 正规化程度 | CCB可控文档 CM可控文档 日期/版本控制 |
|
文档 | 范围 | 正式标准 建议模板 工程纪录 | ||
报告 | 精确度 | 文档评审 正规评审 自评审 |
(2)开发项目特定过程
在项目层次上,剪裁的执行通过根据项目需求从推荐集中选择相应的选项来执行。其中的选择机制就是人为进行判断。
4、软件开发计划
项目定义软件过程中包含在项目中所使用的OSSP的剪裁版本。该版本可能与同一组织中的其他项目定义软件过程类似或者完全一致。所要开发的特定软件配置和开发进度表并不是项目定义软件过程的一部分。它们来源于项目的特定业务和技术需求,并且与项目定义软件过程一起组成了项目软件开发计划的主要部分。
在组织开发合理有效的软件开发计划,并将该计划应用于项目的管理和控制的过程中,剪裁是一个关键元素。从某种程度上说,对OSSP进行剪裁的最终目的就是要根据项目的特定环境,建立起项目定义软件过程,并进一步开发出合理有效的软件开发计划。因此,比较完善的软件开发计划可以看作在项目范围内对OSSP进行剪裁的最终结果。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/