引入ClearCase:软件流程改进的实验探索
立即解锁
发布时间: 2025-08-22 00:19:03 阅读量: 2 订阅数: 9 

### 引入 ClearCase:软件流程改进的实验探索
#### 项目背景
在 GIS 领域,挪威的 Sysdeco GIS AS 公司旗下的图形工具部门(SGIS)一直有着明确的变更控制流程,此前采用基于 SCCS 和 Make 的配置管理系统。但随着业务发展,该系统逐渐暴露出不足。
公司主要为不同测绘领域开发终端用户系统,客户涵盖国家测绘机构、发电厂、地方当局等。图形工具部门交付两款主要产品:Tellus 和 Tellus Vision。Tellus 最初为 UNIX 环境开发,支持多种 UNIX 平台和数据库连接;Tellus Vision 则将 Tellus 拓展到 PC 平台,并集成了 QBE Vision 的功能,是未来的主要开发方向。
原配置管理系统在处理 Windows 产品时缺乏正式支持,依赖手动流程易出错。同时,产品改用 C++ 重写后,新的程序结构和依赖关系难以用原系统管理。
#### CMEX 项目概况
CMEX 项目旨在评估引入修订后的正式配置管理和版本控制系统对软件开发流程的影响,由 SGIS 与挪威科技大学合作开展,历时 22 个月。项目目标是减少 10% 的配置管理相关缺陷,并增加 5% 的相对开发工作量。
项目分为三个阶段:
|阶段|主要活动|
| ---- | ---- |
|准备阶段|流程建模、初始流程和产品测量、配置管理系统安装|
|实验阶段|系统引入与培训、系统使用和中期流程调整|
|评估阶段|测量改进结果并报告|
#### 项目具体活动
1. **流程建模**
- 此活动主要是对工作流程进行建模和理解,提出流程变更建议,确定用于评估新系统效果的流程参数,以及明确所需的测量方法。
- SGIS 的维护流程成熟且有文档记录,项目团队收集流程文档并编辑成主要为文本形式、附带若干图表的流程模型。虽未改变工作流程本身,但调整了部分表格以实现对当前流程支持数据库未记录方面的测量。
2. **测量**
- 为量化项目改进结果,项目团队采用类似 GQM 的流程确定了 16 个可能的产品和流程指标,涉及缺陷报告特征、流程性能、工作量、客户和变更规模等方面。
- 审查可能的数据来源后,发现客户数据库、缺陷报告数据库、项目数据库和 SCCS 下的源代码可直接用于 7 个指标,通过对交付跟踪系统进行小调整可收集 6 个流程性能指标的数据。经与开发协调员沟通,决定不使用其余 3 个详细描述缺陷特征的指标,因项目早期无法获取足够长时间的数据集。
- 项目开始 6 个月后的初始评估中,确定了 13 个指标的数据集;最终评估时,因数据不显著或不可比,指标数量减至 5 个。
3. **配置管理系统**
- **系统评估**:项目开始时,SGIS 组织的情况可概括为:有使用 SCCS 和严格变更控制流程的长期经验;Windows NT 下缺乏源代码控制,认识到需要新系统;意识到需要更高级的配置管理功能;承认构建和交付系统存在问题;对 ClearCase 的性能和成本效益存在一定怀疑。项目申请提交时已选定 ClearCase,为消除人员疑虑,对 ClearCase 和 Microsoft Visual SourceSafe 进行了简要评估,从功能、性能、可扩展性、成本和用户信心等方面考虑,最终选择了 ClearCase。
- **系统引入**:引入 ClearCase 的步骤如下:
- 培训系统管理员,使其担任 ClearCase 管理员。
- 在一个小型试点项目(Tellus 的产品附加组件)中使用 ClearCase。
- 逐步将源代码迁移到 ClearCase,并为开发人员建立工作环境。
- 由于 ClearCase 与开发环境(Microsoft Visual C++)集成良好,开发人员的培训在短时间内完成。
引入过程中,因系统管理员培训的时间安排问题,第一阶段花费的时间和资源超出预期,但延迟使项目能够使用更友好的新版本 ClearCase,简化了过渡过程。系统投入使用后,开发人员对其表示认可,这既得益于其用户友好性和出色的性能,也因为开发新 C++ 版本工具包时对配置管理系统的迫切需求。此外,安装 ClearCase 还需要对技术环境(工作站和服务器)进行大量升级,且最终发现最初购买的 5 个许可证不足,为 8 名使用 ClearCase 的开发人员每人配备了一个许可证。
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([项目开始]):::startend --> B(流程建模):::process
B --> C(测量):::process
C --> D(配置管理系统评估):::process
D --> E(系统引入):::process
E --> F(实验阶段):::process
F --> G(评估阶段):::process
G --> H([项目结束]):::startend
```
#### 项目结果与分析
1. **技术方面**
- **缺陷报告到达率**:外部缺陷报告到达率从 1995 - 1996 年的每月 12.1 份降至 1997 年的 7.8 份,减少了 36%(高优先级报告下降 31%,低优先级/变更请求下降 45%);内部报告的缺陷到达率增加了 132%,主要是由于测试新产品版本,紧急报告增加 40% 也表明内部发现了更多缺陷。此外,11% 的外部报告并非真正的缺陷,3.5% 为重复报告。
- **缺陷报告优先级**:高优先级报告(前两个优先级级别)的比例从 61% 略微上升至 64%,基本保持稳定。
- **缺陷修复时间**:处理和修复紧急缺陷的平均时间减少了 6%,内部发现的缺陷修复时间减少了 54%,可能是由于工作量减少。
- **资源使用**:1996 年和 1997 年图形工具部门的总资源使用基本不变,开发资源占比增加了 22%,维护工作减少了 33%,更多资源可用于外部项目,新工具版本包含了比计划更多的功能。
- **维护工作量**:维护工作量减少了 33%,其中纠正缺陷的工作量按预期减少,支持和测试方面的工作量增加,而系统构建、交付和系统维护方面的工作量显著减少,这正是 ClearCase 预期发挥改进作用的领域。
总体而言,外部缺陷报告减少,维护工作量相应降低,更多精力投入到测试中,内部发现的缺陷增加,表明项目实现了流程的预期转变,且远超初始目标。ClearCase 有助于实现源代码和系统管理的自动化,提高了构建步骤的效率。此外,项目还带来了一些定性改进,如流程建模活动使对维护流程的理解更深入,修订 Make 生产和交付系统提高了服务质量,引入 ClearCase 增强了重建以前产品版本的能力,测量活动有助于更好地理解维护流程的性能和成本,推动公司流程成熟度提升。不过,这些改进不能完全归功于引入 ClearCase,1996 年公司的重组和新产品发布等因素也可能产生了影响。
2. **业务方面**
- 实验带来了维护服务和流程质量与效率(成本和时间)的显著提升。维护工作量减少 33%,对应缺陷报告减少,大量资源可用于开发活动,开发资源占比从 1996 年的 48% 增加到 1997 年的 58%,在“上市时间”方面取得了远超预期的改进。
- ClearCase 购买、培训、安装和管理成本高,一个规模类似的成熟开发团队获取并运行该系统需 100 - 200 kECU。通过公式 $R = I / (P * N)$(其中 $R$ 为收回投资所需月数,$I$ 为投资资本,$P$ 为纠正一个错误的成本,$N$ 为每月减少的错误数量)计算投资回报率,项目中每月减少 4.3 个错误,纠正一个错误的平均成本为 5000 ECU,150 kECU 的投资在 7 个月内即可收回。
3. **组织方面**
- 实验对组织环境影响较小,维护流程在职责和任务定义上更加明确,引入了一些支持变更流程的附加表格。这可能是因为 SGIS 是一个成熟的组织,有丰富的产品变更管理和使用简单版本控制及生产系统的经验,项目带来的流程变更被视为公司流程持续讨论的自然部分。
- 起初,部分人员对引入复杂的 ClearCase 系统持怀疑态度,但接触其功能后,认识到它优于现有系统。主要原因包括:现有软件从 UNIX 移植到 NT 后,原配置管理系统不可用;产品平台和数据库系统增多,管理复杂;向面向对象设计的转变要求新的源代码管理方式,ClearCase 能够提供支持。项目结束时,参与人员的问卷调查显示,大家认可需要新的配置管理系统,但对选择 ClearCase 的过程和培训存在一些不满,不过对系统使用效果给予了积极评价,认为它改善了工作环境和团队协作。
### 引入 ClearCase:软件流程改进的实验探索
#### 关键经验教训
1. **技术视角**
- **ClearCase 引入**
- 引入 ClearCase 前,系统管理员和源代码管理员需深入培训,要规划较长的引入周期并做好组织准备。可让相关人员明确新流程和支持工具的问题与需求,再评估候选工具。
- 用户培训也必不可少,且应投入更多时间。软件许可证数量从引入开始就要合理规划,经验是为每个用户配备一个许可证,尽管系统允许共享许可证,但会导致系统无法正常使用。
- 产品变更管理更依赖严谨且被认可的工作流程,而非支持流程的工具。此实验的成功很大程度上得益于已有成熟的工作流程。
- 要确保 ClearCase 系统管理员有足够时间熟悉系统,保证安装稳定后其他人员再使用,否则可能导致对新系统的负面态度。同时,应逐步利用 ClearCase 的高级功能。
- 缺陷报告和其他变更相关事项的管理与文件版本管理一样耗时且易出错,投资支持缺陷报告、订单和产品版本可用性列表管理的工具可能具有成本效益。
- **流程建模**
- 定义工作流程是一项耗时的任务,需确保各方就工作执行方式达成一致。参与工作流程的不同团队可能对每个步骤的操作和责任有不同看法,流程建模活动是讨论这些观点并达成共识或修订流程定义的绝佳机会。
- **测量**
- 测量活动所需的工作量远超预期。现有数据难以直接用于测量,且部分衡量成功所需的数据缺失。为获得相关数据基础,需对流程进行一段时间的测量。
- 新的测量工作若不将数据收集融入日常工作流程则毫无意义。项目通过从管理缺陷报告和订单的新老列表及数据库中提取数据解决了这一问题。
- 基于错误报告的指标在显示流程或技术变更效果时存在固有延迟,从改进措施实施到产品在客户现场使用并产生缺陷报告可能需要 3 - 5 个月。
2. **业务视角**
- 实验显著提升了维护服务和流程的质量与效率,使大量资源可用于开发活动,新功能能更早推向市场。配置管理系统本身虽不能直接提高产品质量,但对维护(成本和资源使用)的关注增加导致产品缺陷减少。
- 从业务角度看,ClearCase 价格昂贵,相比之下,Microsoft 的 Visual SourceSafe 成本约为其 1/7。起初,ClearCase 的优势并不明显,但现在证明其成本与潜在改进相比微不足道。
- 尽管 ClearCase 初始看起来更适合在多平台支持多个产品的大公司使用,但对于开发和维护中型产品的 8 - 12 人团队而言,它也是一项不错的投资,既能带来业务效益,又能改善流程和工作环境。此实验还可能在 Sysdeco GIS 内部起到示范作用,鼓励其他领导关注开发问题的复杂性和工具投资的经济性。
3. **实验的优势与不足**
- **优势**:实验的明显优势在于组织成熟,相关人员认识到需要新的变更控制系统,这简化了推动人员使用 ClearCase 的过程。
- **不足**:明显的不足是缺乏过去几年的背景统计数据,导致大量精力用于数据收集和分析。此外,实验期间公司进行了重组、变更主要开发和供应平台,且产品发布频繁,留给 ClearCase 培训、安装和部署的时间短且分散。
#### 总结与展望
本次实验在一家小型但成熟的软件企业中评估了修订变更控制系统的益处,向挪威 Sysdeco GIS AS 公司的图形工具部门引入了 ClearCase。实验目标是减少 10% 的错误报告和 5% 的“上市时间”,实际结果远超预期:每月收到的缺陷报告减少了 36%,紧急缺陷修复时间减少 6%,开发工作量增加 22%,有助于新产品更快推向市场。同时,维护工作量减少 33%,尽管测试投入增加,内部发现的缺陷增多。系统构建和管理功能实现自动化,效率提高,用户对系统信心高,团队协作也得到改善。
实验的关键经验包括:引入 ClearCase 的成本在短时间(不到一年)内收回;引入新配置工具比预期困难,需要更精心的规划和实验;成熟的错误处理流程和经验丰富的开发团队对实验成功至关重要;收集用于测量改进的相关背景数据比预期困难。
基于实验的成功,公司将继续在产品开发和维护中使用新系统。同时,认识到支持变更请求管理流程部分的工具对质量和效率很重要,后续会考虑获取和部署此类工具。此外,已确定新的改进领域,未来将开展类似实验引入自动测试工具。此实验对计划在开发部门引入新工具(尤其是配置管理工具)的中小企业具有参考价值。
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([实验成功]):::startend --> B(继续使用新系统):::process
B --> C(考虑部署变更请求管理工具):::process
C --> D(开展新实验引入自动测试工具):::process
D --> E([持续改进]):::startend
```
以下是对实验各方面的总结表格:
|方面|总结|
| ---- | ---- |
|技术|实现流程转变,提高效率,带来定性改进|
|业务|提升维护服务质量和效率,成本回收快|
|组织|对组织环境影响小,改善团队协作|
|经验教训|引入困难,数据收集难,成熟流程和团队重要|
|未来规划|继续使用新系统,部署新工具,开展新实验|
0
0
复制全文
相关推荐










