变更请求管理(CRM)的必要性
伴随着现代化社会的高速发展,对软件开发的要求也越来越高,变更量之多、变更频率之快,使开发人员必须在相当的压力之下,迅速解决问题。另一方面,随着开发规模的不断扩大,加入开发的人数也在不断增加,处理错误的成本也相应成指数级增加。在这种状况下,是否能高效地跟踪并合理地管理变更请求对软件开发的成功与否,就起到了举足轻重的作用。所以,为了保证整个项目开发的成功,在项目管理方面必须克服如下挑战:
难以有效地管理和追踪变更请求
变更请求是指在软件开发生命周期内产生的所有需要改动项目相关内容的请求,如:缺陷、功能增强、需求变更等。它是推动项目向前发展的源动力,同时也是项目重要的过程资产。所以,能否有效地管理和追踪变更请求成为项目成功的关键要素之一。正是因为如此,目前有很多研发企业都已建立了自己的变更管理流程,但多数企业都是以书面变更单的形式来记录和管理变更请求,但此种方式很难对变更请求的发展状态进行追踪,导致变更管理流程难以贯彻实施,同时也很难对变更请求进行统计分析。
缺少必要的团队沟通导致工作效率降低
目前大多数项目的研发人员都在几十人甚至上百人,在如此大规模的项目中沟通成了一个至关重要的问题。例如某个开发人员对自己模块的接口进行改动后没有及时通知相关的开发人员,导致集成困难。又如某个核心模块的缺陷被修改后没有通知整个团队,导致开发团队多次修改同一个缺陷。诸如此类的沟通问题如果不能很好的解决将会导致团队效率的降低。
难以及时准确地了解项目状态和发展趋势
在软件开发生命周期中变更请求可以被视为项目的活动或任务,所以变更请求的信息和统计数据可以直接反映项目的状态和发展趋势,但由于我们多以书面变更单的形式来记录和管理变更请求,导致难以查询变更请求的状态或对现有变更请求进行统计分析,所以,项目经理通常是通过会议、电话或邮件的方式去了解项目状态,但这种方式不但耗时且很难及时准确地了解项目状态和发展趋势,致使项目经理对项目做出错误的判断或决策。
难以进行量化的项目管理
变更请求是项目管理的重要数据之一,通过对这些数据的统计分析可以进行量化的项目管理。例如我们可以统计项目组每个成员的任务分配情况;统计目前还有多少未被响应的变更请求;统计缺陷的平均修复时间;统计在一段时间范围内变更请求数量的变化等等!以上这些统计数据都是项目经理迫切需要的,但如果在项目规模较大的情况下,仅以手工的方式对变更单进行管理,根本无法对其进行统计分析。
难以将项目活动与配置管理对象的变更相关联
项目活动的主要来源是变更请求,项目活动的最终结果是配置管理对象的变更(即文档或代码的修改)。通过传统的项目管理方式很难将项目活动与配置管理对象的变更相关联。从而使得开发人员不清楚自己对代码所作的修改是和那些任务相关,导致在集成时代码提交错误;同样集成人员和项目经理很难确定某一个特定的变更请求到底和那些代码的修改相关,导致集成过程出现的问题难以定位,以上这些问题都会直接导致集成时间的拖延。
由此可见,如果没有变更管理,重要的变更就会被遗漏,项目的监视、检查能力就会丧失,项目管理人员及开发人员不能掌握工作重点及轻重缓急,测试及文档的编写均不能反映项目开发的实际状况。直接后果表现为:由于交货期推迟而造成的开发成本增加、生产率低下、产品质量低下。
变更请求管理是软件开发的成本降低的最大因素之一。再优秀的软件开发团队也不能保证从一开始就100%地正确开发。在开发系统生命周期中,变更是永远不可避免的。部署高效的CRM系统,通过对项目开发整个生命周期中的变更请求进行管理及各种数据查询,可以使问题的解决时间大幅度降低,从而有效地降低开发成本。
如何有效地组织和管理变更请求
成立变更管理委员会
变更请求管理决不是向大家所想象的仅仅是单一的跟踪,变更请求管理所强调的是对开发过程中成百上千的变更请求进行慎重的信息管理,"慎重"包含的是跟踪、分析、决策的完整过程。这种"慎重"的处理过程必须由一个变更管理委员会(CCB)进行控制和管理,CCB应该由开发团队中富有分析、决策能力的角色构成,CCB的主要职责是对递交进来的所有变更请求进行审查、分析,从而决定如何处理这些变更请求。
制定合理的变更流程
如前所述,变更管理的关键目的是通过建立合理的变更流程,来改进产品的质量和服务。而变更管理流程执行的有效性取决于团队之间的密切配合。单一的工具并不能保证变更请求管理的成功。以下是变更请求管理流程实施的基本步骤:
1. 确定变更请求管理流程执行的范围:你可以从一个项目、一个部门或多个组开始实施。但在制定变更管理流程前,你必须确定好实施范围,然后制定响应的变更流程;
2. 制定变更管理流程模型:这是整个变更管理流程的核心部分。你必须与团队人员合作,编制、审查和修改此模型,直到团队每一个人都能认可此流程;
3. 决定团队各个角色在流程实施中所起的作用:通常情况下,在团队中有变更请求提交者、CCB、请求解决方案实施者、测试人员及QA等;
4. 确定实施计划及开始实施日程:实施过程可以分阶段完成,但要注意跟踪各个阶段完成的质量,保证变更请求相关者对各个阶段完成的认可;
5. 部署变更请求管理系统:在完成了上述步骤后,你已具备了实施变更请求管理的条件;
6. 不断强化变更管理流程:变更管理流程不是一成不变,它需要团队发展的不断变化及时作相应的调整,不断地被改进和强化。
开发项目有关人员都有权利提交变更请求。如开发人员在编码过程中,会觉得某部分设计不合理,提出更改设计的请求,这种请求如不得到跟踪管理,我们就不能清晰地掌握产品是否真正满足了最终用户需求。所以,完整的变更管理系统,不应该仅仅是对缺陷的管理。它应是通过对缺陷及其各种他变更的登记、保管、跟踪、解析,达到团队之间的各种变化信息的共有、安全而可靠的高质量变更信息管理系统。这种信息管理系统通过以下特征的体现,有效地组织和管理变更请求。
1. 应可提供具有各种重要特征的变更请求信息,且对各种变更请求在处理完毕之前的内容能及时调整、并保证各种请求的信息绝对不能丢失。
2. 有效地跟踪各种变更,对管理人员提出各种变更状况的查询请求,做到快而准地提供信息。
3. 有能力对项目整体发展状况,提供宏观及定量的分析,从而能合理分配项目开发人员的工作、合理制定项目的计划、合理管理项目各种请求实施的优先级。
有效的CRM系统,应具备从简单地列出问题清单对缺陷进行跟踪,到对项目开发的各种可能的变更流程进行定义、以及各种变更请求在适当时机采用适当方法进行访问等灵活多样的选择性,以适应开发过程中的各种变化。也就是说,有效的CRM系统应具备良好的系统适应性、扩展性及灵活定制性。
2. 完整的变更请求管理解决方案:IBM Rational ClearQuest
概要
IBM Rational ClearQuest 是强有力的且灵活性很强的CRM系统。通过对开发整个生命周期中发生的各种类型变更请求的跟踪及管理,保证各种规模的开发团队按照预定计划按期交出高质量的软件产品。
IBM Rational ClearQuest是一个具有定制性高、跨越多种数据空间的CRM系统。适用于在任何平台上,任何类型的项目中,捕获各种类型的变更。ClearQuest 使用行业标准数据库(Microsoft Aclearcase/" target="_blank" >ccess、 SQL Anywhere 、SQL Server 、DB2、Oracle),因此支持的项目可大可小;并拥有可完全定制的界面和工作流程机制,能适用于任何开发过程。此外,通过提供各种各样的流程模,对于一般的开发环境和流程,可以做到"拿来就用"或"稍做修整,即可使用"的方便而灵活的部署。
ClearQuest与IBM Rational的其他解决问题方案(如配置管理工具、自动测试管理工具、需求管理工具)的集成,使团队开发的各个角色在开发的各个阶段都可以随时递交变更请求,成为支持软件开发整个生命周期的变更管理的有效工具。
ClearQuest 的特点
有效的记录、管理和追踪变更请求
ClearQuest通过多种易于使用的客户端(Windows,UNIX,Web,Email),让您在任何地点、以任何方式都可以捕获在整个开发生命周期中出现的各种类型的变更请求,包括测试阶段发现的缺陷、需求分析阶段的需求扩展请求等等。所有的变更请求在ClearQuest中被集中存储在统一的数据库之中,以便进行各种形式的查询,同时也便于集中管理。另外,ClearQuest给变更请求还附加了状态信息,以便于追踪变更请求的发展状态。
促进团队的沟通和协作
ClearQuest 提供一套完备的电子流管理系统。它可以利用企业现有的邮件服务系统实现自动电子邮件通知功能。当系统内提交了新的变更请求或已有变更请求的状态发生变化时,ClearQuest会自动通过电子邮件通知相关的人员,从而大大促进团队的沟通和协作。
随时随地了解项目状况
ClearQuest支持通过WEB的方式对系统进行访问,在浏览器中可以查询变更请求的状态、浏览变更请求的信息、生成多种统计分析图表和项目状态报告。所以,项目经理无论是在公司还是在外地出差都可以及时准确的了解项目的状况。
灵活、客观的项目统计指标
ClearQuest的查询、图表(年龄、趋势、分布图表)、报告(与SoDA集成)功能,使得项目管理人员能够方便、准确地得到项目统计指标数据,如:
"变更请求是否在团队成员中被合理分配?"
"还有多少优先级为1的缺陷未得到处理?"
"平均修复一个错误需要多长时间?","实现一个扩展请求需要花多少时间?"
"在两个月内变更请求数量的变化曲线"
依赖各种项目统计指标数据,项目管理人员就可以进行更加科学、量化的管理、规划、调配、监控,保证项目如期的进行。
系统可定制能力强
在ClearQuest系统中所涉及的表单信息域、状态变迁过程、分析图表和状态报告等都是可以根据企业的实际需要进行定制的,并且可以随项目的发展不断进行调整。所以,ClearQuest可以适用于任何类型以及任何规模的项目。对于一个立足长远发展的企业而言,ClearQuest是一笔可以长期保值的投入。
可以有效地控制各种变更请求之间关系
在ClearQuest可以建立各种变更之间的关系,这种变更的关系实际上是双向的,这种关系的管理,体现在以下几个方面:
1. 变更请求的包括关系,通过建立多数"子"请求与"父"请求的关系,控制全部"子"请求没有到closed状态,"父"请求不能close;
2. 不同变更请求之间的连接关系, 通过建立定义不同的变更请求类型,建立数据的参照关系 (record reference),实现数据共享。比如:在缺陷变更请求中调用用户信息时,可以另建立用户变更信息数据库,通过建立与缺陷变更请求关联,便可得到实现。
通过与ClearCase的集成可以实现项目活动和配置管理对象的统一
ClearQuest可以和配置管理工具ClearCase集成,从而将变更请求和配置管理对象有机的联系到一起。主要的集成方式有以下两种:
1、 ClearQuest与Base ClearCase集成
集成是通过将ClearCase的版本对象库(VOB)与ClearQuest的数据库相关联来实现的,集成后开发人员在修改代码(Check Out)时会自动弹出ClearQuest的变更请求列表,并强制开发人员将此次修改与特定的变更请求相关联。这样一来,开发人员在代码提交时可以清楚的知道哪些修改过的代码是对应哪些任务的,集成人员可以准确的了解到某次建立到底集成进来哪些变更请求。项目经理可以轻松的定位变更请求和哪些改动相关。
2、 ClearQuest与UCM ClearCase集成
此种集成方式与上一种集成方式从实现机制上没有本质的区别,但从功能上二者的集成更加紧密,且很多功能更加自动化。如开发人员在提交代码时系统会自动检测出此次需要提交的变更请求,待开发人员确认后系统会自动对代码进行归并。总而言之,UCM对于开发人员来讲使用非常简便且不要出错,对于集成人员来讲,由于UCM采用组建式管理,使得系统架构更加清晰,集成工作更加快捷。对于项目经理来讲UCM为团队提供了一套完整且高效的变更管理流程。
关于作者
Rational Software Greater China