在当今快速发展的软件行业中,敏捷开发方法因其能够快速响应变化而受到青睐。然而,许多公司在尝试实施更灵活的开发流程时,却陷入了过于僵化的过程。本文将探讨如何通过软件配置管理(SCM)来实现敏捷开发的最佳实践。
根据Dr. Dobb's Journal的调查,大多数敏捷项目都取得了成功。在相同的研究中,受访者还被询问了关键的成功因素,得出了以下前三项:
显然,正确的软件配置管理(或称为“版本控制”)对于实现其他两个成功因素至关重要。为了理解这一重要性,需要看看敏捷采用在软件配置管理方面带来的特定挑战。本文特别关注使用迭代开发时的挑战。定期交付可工作的软件带来的挑战将是下一篇文章的主题。
短迭代开发主要是对许多需求在开始时不完全理解的反应。如果客户能够看到并测试中间产品,他们可以更好地决定他们想要什么。为了获得这种灵活性,业务请求通常被分解成更小的任务,这些任务应该在1-2天内完成。这些任务被记录在待办事项列表中,并根据它们的商业价值进行排序。这确保了最重要的任务首先完成。
这种逻辑突出了一些重要事实:
允许短迭代的一个重要规则是截止日期是固定的。如果有延误的风险,将功能移动到后续迭代。
专注于任务。这意味着思考问题,如错误修复或新功能,而不是单个文件更改。在PureCM中,“Changesets”代表完成特定任务所需的文件更改集。PureCM中的每个操作都集中在这些Changesets上:检查它们的历史,回滚错误的更改,将任务从一个配置合并到另一个。PureCM在处理任务方面的优势在之前关于The Code Project的文章中有更详细的介绍。
确保可以重构代码。PureCM支持文件复制/移动/重命名,同时保留完整的历史记录,也可以跨整个分支层次结构。重构可以在开发者想要的任何地方进行,例如使用PureCM的Eclipse或Visual Studio插件。
允许多个检出。PureCM完全支持多个检出和可写的工作区。这样,文件甚至不需要检出就可以编辑。所有当前文件状态都在服务器上实时跟踪并显示,以促进开发者之间的沟通。
使用PureCM的基于策略的安全性来控制是否想要允许多个检出,或者是否想要锁定文件。这些策略可以按文件类型指定,例如允许文本文件进行多个检出,但锁定二进制文件。
如果必要,能够将未完成的任务移动到后续迭代。基本上,PureCM支持两种方法来解决这个挑战:在进行主线开发时使用搁置,以及任务分支。
搁置是一种在服务器上检查点代码(更改)的方法,而不需要将它们集成到底层代码线中。当所有(或许多)开发人员在同一个代码线上工作时,搁置最有用,这具有简单分支模式的优势。在这种模式下,搁置允许将未完成的任务从一个迭代移动到另一个迭代,而不会造成返工。
想象一下,一个开发人员正在开发一个功能。然而,他为下一个迭代构建而迟到了。因此,而不是将代码检入主线,开发人员可以在服务器上搁置它。一旦发布构建完成,他的工作可以轻松集成到主线,并包含在下一个构建中。
PureCM提供了关于哪些任务在特定代码线上搁置的完全透明度。开发经理可以看到每个搁置集在它所属的分支中(在PureCM中称为“流”)。由于分支和标签在技术上是相同的,搁置集可以轻松地从一个流移动到另一个流,例如在创建了新的基线之后。
任务分支是完全隔离开发人员同事的最佳方法。这样,集成经理可以选择他想要集成到特定发布中的任务,即合并任务分支到主线。这种方法的优势是它提供了最大的灵活性,并且工作是基于已知的稳定版本的代码。然而,这需要更复杂的合并,因为主线在任务分支工作期间通常已经发展,特别是当任务集成被推迟时。
因此,PureCM通过使用强大的流概念来促进使用任务分支。流是从其父流继承代码的轻量级分支。对于分支每任务模式所需的频繁分支,使用PureCM时变得非常快速和高效。此外,PureCM允许选择性地选择Changesets和自动快速合并。选择性地选择Changesets对于使用主线的特定更改更新任务分支很有用,而快速合并功能在开发完成后加速将任务分支集成回主线。
软件配置管理是敏捷实施的关键成功因素。迭代开发模式带来的新挑战必须仔细考虑,以增加成功的机会。PureCM是一个易于使用但功能强大的工具,可以解决这些挑战。
开发人员可以专注于任务而不是文件更改,控制这些任务何时集成到主线中,并且在需要时可以在后续迭代中重构代码。这增加了他们的灵活性,而不会在他们的日常开发中增加额外的工作。
点击此处下载免费PureCM评估。
PureCM是一个软件配置管理(SCM)解决方案,控制和跟踪数字资产的更改。PureCM使用基于流的分支和合并的领先概念,促进和加速团队环境中的开发。完整的问题管理功能,PureCM可以定制以适应任何开发和变更管理过程。PureCM在面向任务的环境中表现出色,使用本地工作区结合客户端/服务器架构优化生产力和安全性。