由于敏捷开发正成为越来越多开发团队的标准,敏捷应用生命周期管理持续呈现增长势头。一个已经被证明了的事实,那就是很多工具供应商发现把自己的产品标识成敏捷工具甚至是敏捷ALM工具,是很管用的。
然而,何谓敏捷应用生命周期管理?应用生命周期管理结合了技术因素和功能因素,为常见的项目活动(如开发,配置,部署,发布,测试,质量,集成,和需求管理)提供一个综合方案。
敏捷ALM用敏捷的价值观和策略,丰富了应用生命周期管理。敏捷方法下的ALM可以提高产品质量,缩短产品上市时间,并让开发者感到快乐。传统的ALM有助于为敏捷ALM提供一个架构,同时保证过程和工具链是灵活的,可更改的和高品质的。
个体和交互胜过过程和工具
首先,敏捷ALM是一个准则,是一种思想。从事敏捷应用生命周期管理应该从价值观和人,以及人们背后的观念开始。敏捷ALM工具是一个能够促进敏捷过程的ALM工具。
敏捷ALM工具必须能够为项目增加价值并改善利益相关者之间的合作。这些是通过构建敏捷ALM的基石:协作和基于任务的开发,功能/技术发布,利益相关者关注点和质量保证来实现的。
很多团队都很乐于把几个单独的好用的工具拼凑起来用。把许多轻量级的,可配置的工具整合为一个工具链。这种混搭的工具集合通常能够提供完成一个任务所需的大部分功能。很多时候,虽然工具之间存在隔阂,但这些隔阂可能不会存在于完全整合的解决方案中。
理想的情况下,敏捷ALM工具应该有一个整合的,灵活的架构,可以让你扩展过程和功能。依托一个完全整合的工具,可以显著提高产品安全性和沟通效率,因为你可以很容易地维护各个交付件之间的关系,并且不用担心工具间传输时会遗漏细节。现在,我们来讨论一下构建敏捷ALM基石的其他重要部分。
基于任务的开发
基于任务的开发方法中,任务是团队工作和交互的基本单元。基于任务的开发需要能够跟踪具体变更的关联工作项,通过追溯性定位并完成这些工作。例如,你正在处理事件系统上的一个任务。你的SCM(比如SVN)与事件系统(比如DevTrack)是相集成的,从而透明化任务的工作进度和相互依赖关系。在DevTrack中,你可以看到Sprint中每个任务的计划,它们的状态,以及已完成的代码更改。此外,DevTrack作为完整DevSuite中的一个组件,你可以为DevTrack中的任务链接原始的用户需求及可用的测试用例。
功能性和技术性发布管理
发布管理包括产生软件交付件,并按照既定流程发布这些交付件。发布管理可以区分为功能性的和技术性的。要想成功交付软件,这两部分都是非常重要的,并且应该相互融合。
功能发布管理涉及到客户的需求,将这些需求分配到各个版本中,然后把功能提供给客户。经常使用敏捷实践来支撑这一过程,许多项目通过使用Scrum管理模板取得了良好的效果。通过定义一个简洁的框架,Scrum促进了规范化,并且让缺陷(软件中的以及过程中)可视化。但是,Scrum太抽象化了,有些“纸上谈兵”。你必须实施Scrum,并且使之适应软件工程。例如,实施实践可能在不同的开发阶段会存在差别,微观层面上,在一个Scrum发布内部:发布过程中,你可能会为了关闭开发阶段而考虑冻结某些新功能的开发实现,而允许开发人员只处理缺陷的修复工作。另一个有效的选择是使用一定时间间隔的代码冻结,来完成和交付最终版本。
技术发布包括构建软件和提供最终产品给用户。构建管理(包括编译脚本,打包和分发组件)对于敏捷ALM来说是必不可少的。技术发布管理描述了以下活动:识别配置项,跟踪和审核基于需求和配置项的变更,集成和交付实施。在软件工程中,变更更像是规则,而不是例外。因为需求总是在变化的,保证需求和实施的同步是非常重要的。功能发布管理和技术发布管理之间可能存在的隔阂应该被桥接。一个完全整合的敏捷ALM工具可以通过自动创建相应的关系和链接来避免这些隔阂。
总结
敏捷应用生命周期管理涵盖软件工程中的许多学科。敏捷ALM关乎人和策略,以及用一个完全整合的工具套件来实施这些策略。敏捷ALM有助于为敏捷提供架构,并且通过一种果断,务实的方式来实现应用生命周期管理。使用敏捷方法来进行应用生命周期管理,你将收益更好的结果并更快的获得成功。
最新内容请见作者的GitHub页:http://qaseven.github.io/