65.9K
CodeProject 正在变化。 阅读更多。
Home

敏捷开发中的软件配置管理 (SCM) 考量

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2008 年 1 月 9 日

CPOL

6分钟阅读

viewsIcon

22241

为什么考虑转向敏捷开发方法以提高产品质量、降低成本并更快响应市场需求的企业,也应该考虑新模型对SCM系统提出的不断变化的要求,以及哪些方面对成功至关重要。

这是我们对 The Code Project 赞助商的展示性评测。这些评测旨在为您提供我们认为对开发人员有用且有价值的产品和服务信息。

敏捷资源

免费敏捷网络研讨会

敏捷白皮书

square.jpg

引言

敏捷开发是一个概念框架,它促进项目整个生命周期中的演进式变更。敏捷软件开发的定义在20世纪90年代中期演变而来,作为对“重量级”开发方法的反击。面向对象编程语言的开发和采用,以及互联网日益普及带来的对“上市速度”的新强调,对敏捷方法的创建产生了强烈影响。

敏捷开发框架背后的原则

  • 在过程开始时,需求并未完全理解。
  • 没有软件能在第一次构建时就完美无缺。
  • 当使用新工具、技术和架构时,传统过程变得不可预测。

敏捷开发代表了一种比标准瀑布方法更灵活的开发方法,而瀑布方法曾是软件开发的常态。瀑布方法往往过于严格、僵化和微观管理。使用瀑布方法,单个迭代的时间框架往往很长:从几个月到一年或更长时间不等。因此,瀑布方法缺乏对不断变化的市场需求作出反应的能力,导致开发的软件往往不能像期望的那样紧密地与市场需求保持一致。此外,由于在漫长的开发周期后,一次性对许多功能进行测试,因此发现的问题往往更难调试和修复,导致产品质量低于预期。

rectangle.jpg

许多软件开发组织正在考虑转向敏捷开发方法,以提高产品质量、降低成本并更快地响应市场需求。考虑这种变化的企业也应该考虑新开发模型对软件配置管理(SCM)系统提出的不断变化的要求。

AccuRev 支持敏捷开发的 SCM 需求

由于所有敏捷开发方法都涉及在 SDLC 期间不断变化的需求和更短的开发迭代,因此对 SDLC 期间使用的各种工具提出了与传统瀑布方法不同的要求,包括:

面向功能的开发

所有敏捷开发方法都要求并行完成功能开发。功能通常被分解成尽可能小的任务,以便可以跟踪、集成和调试每个任务。AccuRev 的 SCM 工具可以提供对每个任务所做更改的可见性,并支持按任务而不是按单个文件工作、将更改从一个配置合并到另一个配置,以及在需要时还原任务更改的能力。

检入前进行私有构建的沙箱

由于敏捷开发鼓励频繁检入,因此开发人员在将代码集成到主代码行之前,对代码能够成功构建并通过单元测试具有一定的信心非常重要。通过 AccuRev,开发人员可以在主代码线之外的隔离区域(例如私有分支)利用私有检入,并在将其提升(例如检入)到主代码线之前,在其私有工作区(例如沙箱)中构建代码。开发人员可以在本地测试和调试代码,并且只有在通过构建和单元测试后,代码才能集成到主代码线中。这降低了集成构建失败的可能性。

当集成测试失败时,能够恢复到最后一次良好工作版本

在构建失败的情况下,能够恢复到最后一次良好构建非常重要,这样其他开发人员就可以拥有一个干净的代码配置用于自己的工作。恢复到最后一次良好配置允许一名工程师修复损坏的构建,而团队的其余成员可以继续他们的任务,并使用他们自己的私有构建验证工作。AccuRev 提供了一个简单的机制,可以回滚到最后一次良好的集成版本。

分段层次结构

所有开发工作都来自主线通常会导致混乱。这可以通过使用开发层次结构来缓解。开发层次结构仅仅是包括集成、质量保证和代码审查等过程步骤的组之间依赖关系的层次表示。层次结构中的每个阶段都使用一个单独的代码配置。它是私有分支的自然延伸。利用分段层次结构和私有版本控制,可以在层次结构中向上迈进的每一步中获得更高的代码稳定性。当更改从一个阶段推送到下一个阶段时,特定的更改以及整个系统都会达到更高的成熟度。可以采用连续多阶段集成来自动构建和测试推送到每个阶段的更改。AccuRev 支持创建层次结构,提供对每个阶段更改的可见性,并实现阶段之间的直接合并。

能够恢复和重新定位更改

使用敏捷开发方法,需求由业务驱动,并且可以在整个SDLC中进行更改。因此,能够识别为特定功能所做的更改,并从一个迭代中删除更改,将其重新定位到下一个迭代,这一点很重要。AccuRev支持重新定位功能,而无需编写和维护脚本来执行这些操作。

重构支持

敏捷开发方法侧重于当前迭代中正在开发的功能的简单设计,而不是设计能够满足产品生命周期内所有功能需求的架构。因此,代码必须定期重构,使其更容易理解并可用于其他功能。为了重构代码并仍然能够追溯更改历史,SCM工具必须支持文件和目录的重命名和移动操作,并将其作为元素历史的一部分进行跟踪。AccuRev的代码重构支持无缝处理元素的重命名和移动,并简化了合并过程。

地理分布式开发

虽然敏捷开发传统主义者提倡所有开发人员集中化以促进有效沟通,但有些方法认识到对专业人才的需求,而这只能通过利用地理分布式开发资源来实现。即使是XP或Scrum等敏捷开发方法,由于软件开发组织的分布式性质,也不可能总是在不涉及多个地点的团队成员的情况下组建跨职能团队。对于这些情况,SCM工具必须提供分布式团队从中央存储库协同工作的能力,这一点很重要。通过AccuRev,世界各地的团队可以像一个单一的本地团队一样协同工作和协作。

免费下载AccuRev评估套件

© . All rights reserved.