内容


Rational Insight 在软件开发生命周期中的应用,第 1 部分

使用 Rational Insight 度量软件开发项目

Rational Insight 入门简介

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: Rational Insight 在软件开发生命周期中的应用,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:Rational Insight 在软件开发生命周期中的应用,第 1 部分

敬请期待该系列的后续内容。

前言

如何加快产品市场化,使得产品满足市场和客户需求?如何保证产品的质量?如何提高产品生产率?软件开发过程中有很多的问题让管理人员感到困惑。尽管业界有相当丰富的流程和经验,但是选择适合自己所在组织的方法,却不是那么简单。

毫无疑问,软件及系统交付是一个非常繁复的过程,涉及到需求、设计、开发、测试、变更、缺陷、投入市场等一系列的流程,为了保证产品按时高质量地交付,必须保证在软件开发的各个环节上都不出差错,加上各个过程本身并不相对独立,这就更增加了管理的复杂性。虽然越来越多的 IT 公司和组织认识到软件及系统全生命周期管理的重要性,并着力通过使用新的流程,方法,最佳实践来改进这一过程,但是什么样的方法是有效的,什么样的方法是无益的,这种判断大多数组织都不见得能够把握。事实上,据调查,很多公司斥资巨额用以提高业务流程,却并没有达到预期效果,难以准确地衡量是否业务流程得到了改进,是否达到了预期的业务目标。如何衡量软件开发过程?如何将过程的状态,健康度,资源分布,质量水平,工作效率准确地展示给项目管理人员?如果能够将这些指数量化,像仪表盘一样地呈现在您的眼前,就可以方便,随时监控项目了。

IBM Rational 推出的企业级报表工具 Rational Insight 就能够帮助您达到这个目的!通过准确的度量,Rational Insight 能够使得管理者及时掌握项目进度,产品质量,资源配给等方方面面的问题;能够使得管理者为进一步提高交付流程的效率做出有效的决策和调整,并为开发流程注入新的管理流程。同时通过及时的度量,又可以验证新流程新实践方法的适用性,从而推动企业过程的改革和创新,最终帮助企业实现业务目标。

Rational Insight——衡量软件生命周期的企业级方案

Rational Insight 能够和 Rational 的多产品集成的软件交付平台以及主流的第三方开发工具集成,利用 IBM Cognos 的报表,建模和数据整合功能,在各个阶段生成分析型报表,比如从企业商务目标角度的投资回报率,从质量管理角度的缺陷趋势,等等,丰富的报表样例能够帮助管理人员随时查看项目健康状况。不仅如此,Insight 还集成了 IBM 公司在近 20 多年的软件开发领域的过程衡量方法和最佳实践,也包括了目前流行的敏捷开发技术。这些宝贵的经验,加上相关的报表设计模板,利用 Insight 强大的 BI 解决方案,用户可以在短时间内部署实施该产品,又能最快地应用这些最佳实践,并采用 Insight 的报表衡量自己的流程改进效果和产品交付过程,最大程度地实现企业目标,带来更多盈利。

Rational Insight 的报表支持两种不同的源数据方式:来自数据源的实时数据以及来自数据仓库的统计数据。Insight 提供了一套将源数据抽取到数据仓库同时进行数据分析统计的工作流,通过定期的数据抽取,数据仓库存储了来自不同数据源的历史数据和最新数据,并以软件开发流程的不同阶段和角度的逻辑方式重新组织。报表开发人员根据相应的数据关系模型,可以制作出满足不同商务需求的报表。

RI 在软件生命周期管理中典型应用

Rational Insight 提供了一套开箱即用的报表,可以协助项目管理,衡量项目性能。对涉及到软件生命周期的几个关键阶段,包括需求管理,变更管理,测试管理,以及对目前的流行的敏捷开发方式提供了报表分析的示例和途径。如图 1 所示。以下章节就选择部分报表,介绍 Insight 产品如何协助度量项目健康度,发现问题,帮助决策。本文将着重从软件需求管理、软件开发管理、软件变更管理、软件测试管理,以及项目度量管理方便详细阐述 Rational Insight 如何实现软件生命周期度量的。

图 1. 使用 Rational Insight 管理项目开发周期
图 1. 使用 Rational Insight 管理项目开发周期
图 1. 使用 Rational Insight 管理项目开发周期

查看大图

使用 Insight 度量需求管理

软件需求通常有多种来源,例如市场搜集,直接客户反馈、管理层决策等,具有多种形式,如客户实际应用场景、产品新特性等。面对繁杂的头绪,用户希望通过简明、方便的报表,可以从多个不同的方面,最快地掌握当前项目中需求管理的信息。

Insight 提供了一套针对需求管理的开箱即用的报表,这些报表可以从需求的状态、优先级、稳定性等多个维度对当前项目的需求管理状态进行度量,通过多样的报表,帮助需求管理人员及时掌握需求的变动趋势,了解当前需求实现的进展。

下面我们以报表“需求分布图(Requirement Distribution)”为例,介绍 Rational Insight 在需要管理中的使用方法。用户可以直接点击并运行该报告,Rational Insight 会根据报告内置参数,请求用户选择参数值,选择所关注的项目。该报告运行结果包含三个不同的部分,针对用户选择的项目,分别呈现出需求的状态分布、优先级分布、稳定性分布。运行结果如图 3 示(为了简化行文,此处只表现状态分布图)。该图中横轴是不同需求类型,不同颜色的表示需求在不同状态下的分布,如右图标所示,纵轴代表需求数量。请注意,该结果基于 Rational Insight 提供的样例数据,在用户基于自身实际数据运行时,结果会有所不同。

图 2. 需求状态分布图
图 2. 需求状态分布图
图 2. 需求状态分布图

该图呈现出当前选定的项目中所有需求的状态分布,用户可以从中掌握当前需求的实现情况。在理想状态下,当管理人员在项目进入尾声点击查看该图,可以看到绝大部分的需求处于已验证(Validated)状态。否则就意味着在项目收尾阶段,多数的需求依旧没有完成,当前的进度已经落后于预定的计划。

在 Insight 的帮助下,通过简单的操作,运行报表,用户可以直观的掌握当前项目中需求的变化趋势。这不仅可以为用户节省大量的时间和精力,还可以及时的发现项目中存在的需求管理问题,有效地提高了需求管理效率。

使用 Insight 度量迭代开发管理

敏捷开发是近年来越来越多开发团队采用的一种实践方式。通过多个迭代(iteration)的渐进式开发,结合用户反馈,及时调整开发内容和流程,使得产品真正满足市场需求。Insight 针对这一流行的开发模式,提供了多种报表支持。包括迭代速率趋势,代办事项完成率,版本构建成功率等。既有迭代周期内的数据统计,也有迭代间对比,从而帮助开发团队了解开发进展,更加敏捷地做出相应调整。

如图 3 所示,该柱状图展示了某项目各个迭代中,相对开发计划,工作任务的完成和通过率。可以看出,该项目在第一、二个迭代的完成率不高,可能是计划任务过多,也可能是完成过程遇到了其它问题,导致生产效率不高。项目经理通过调查可能原因,并及时排解,或者根据当前团队的工作效率,调整计划,在后面的两个迭代,完成率和通过率都非常令人满意。

图 3. 各迭代执行结果统计图
图 3. 各迭代执行结果统计图
图 3. 各迭代执行结果统计图

使用 Insight 度量变更管理

变更管理负责跟踪软件的变更请求,包括缺陷和新特性,都属于变更的范畴。Rational Insight 通过对变更请求和缺陷的跟踪,来增加软件项目的透明度和可控性。使得项目的管理人员、开发人员和利益相关人员更加了解软件的质量。软件发布前的质量评价,开发过程中实时的软件质量跟踪,缺陷在不同组件的分布都需要变更管理来支持。

软件发布之前,通常要对软件质量进行评价。软件中残留的缺陷数,是衡量软件质量,决定软件是否可以发布的一个重要指标。如果在软件发布之前,软件残留缺陷数过高,尤其是高严重级别的软件缺陷数过高,说明软件有严重的质量问题,需要推迟发布。Insight 的示例报表提供这种支持,并根据缺陷严重程度对缺陷进行分类,并显示每个严重等级的缺陷数量,如图 4 所示。

图 4. 决定软件是否发布的缺陷分布图
图 4. 决定软件是否发布的缺陷分布图
图 4. 决定软件是否发布的缺陷分布图

软件项目管理者需要跟踪新提交软件缺陷的变化趋势,实时监控产品质量。新提交的软件缺陷,应该随着软件项目的进展而逐渐减少,这说明项目相对稳定。相反,如果在项目的后期,新提交的软件缺陷并未见明显减少或者还有增加,这说明项目还未稳定,不能冻结代码。Insight 的示例报表缺陷到达率,就提供这种支持,如图 5 所示。

图 5. 缺陷数量趋势图
图 5. 缺陷数量趋势图
图 5. 缺陷数量趋势图

软件开发过程中跟踪软件缺陷在不同组件中的分布非常重要。如果某个组件中软件缺陷数目过高,应该引起项目管理人员的足够重视,并进行调研,如果该软件组件确实存在质量问题,就要加强资源力量给以解决。如果某个组件中软件缺陷数目过低,也同样应该引起项目管理人员的重视,并应进行调查,判断该现象是否是针对该软件组件的测试资源不足而造成的。Insight 的示例报表缺陷分布,就提供这种支持,如图 6 所示。

图 6. 缺陷在软件组件中的分布图
图 6. 缺陷在软件组件中的分布图
图 6. 缺陷在软件组件中的分布图

使用 Insight 度量测试管理

测试管理在软件开发生命周期中非常重要,贯穿始终,包括测试计划管理,测试用例管理以及测试配置管理等。测试管理不仅可以帮助发现更多潜在的软件缺陷,提高软件产品的质量,同时还可以量化测试工作,跟踪测试状态以及分析测试覆盖程度,从而更加高效的为提高产品质量服务。在项目的阶段性评估时,项目管理者通过什么手段评估需求的测试覆盖率,怎样评估开发阶段的代码质量,以及测试执行进度成为项目评估的关键。

在测试管理阶段,测试项目经理往往会关注测试计划和测试用例的状态及其执行进度。通过测试阶段的各种关键度量,可以查看某测试执行计划相关测试用例的成功、失败、阻塞及其他状态的各种进度比例,从整体上对测试项目的状态进行评估。

而对于整个产品的质量来说,产品经理往往需要通过测试计划于需求管理的关联分析,来评估需求的测试覆盖率。通过分析产品经理将很容易的定位到未被测试覆盖到的具体需求。从而对这种风险进行快速评估。同样的,产品经理也可以通过测试管理和变更管理的关联分析,来定位测试用例的发现问题的执行绩效,产品经理可以方便的定位测试用例发现问题的严重程度和数量关系。

Rational Insight 提供了开箱即用的测试管理报告来支持测试绩效评估和产品不同管理阶段的关联分析,使得项目管理者方便快捷地定位问题,发现项目执行中的缺陷,及时改进,从而提高整个产品各个团队的协作绩效。本文选择其中两个加以介绍:测试用例执行状态以及需求的测试覆盖率。

对于测试管理来说,测试的成功和失败率是很重要的衡量指标。在项目的早期,高比例的失败对于软件项目来说是正常的,符合项目预期的。特别是在测试驱动的项目中,希望通过测试尽早地发现产品中的问题,从而提高对产品的质量控制。Rational Insight 的测试用例执行状态报告中提供了两个典型指标:成功的测试用例和失败的测试用例。随着项目的进度,成功的测试用例讲越来越多,失败的测试用例越来越少。反之,说明测试用例设计不合理或者产品的质量有所下降。

同时,Insight 提供在柱状图上对成功或者失败的测试用例进行向下钻取操作,可以查看到具体的测试用例。

图 7. 测试用例执行状态图
图 7. 测试用例执行状态图
图 7. 测试用例执行状态图

对于产品经理或者项目经理来说,查看产品需求的测试覆盖率,能够方便地发现有多少比例的需求已经被测试用例覆盖到,有多少没有被覆盖到,进而分析具体原因(比如测试用例开发不够完全)。

Insight 提供了开箱即用的需求的测试覆盖率的报表,使得分析需求的覆盖情况变得十分便捷。下面的饼状图显示了需求的测试覆盖率,此报告的目标是每个需求都被测试用例覆盖到。报告将展示有多少比率的需求已经被测试用例覆盖,有多少没有被覆盖。同时,可以通过向下钻取功能,定位未被测试覆盖的具体需求。然后决定是否为这些需求创建测试用例。

图 8. 需求测试覆盖率
图 8. 需求测试覆盖率
图 8. 需求测试覆盖率

使用 Insight 度量项目管理

广义的项目管理,包括对项目全生命周期各个阶段的管理。为了区分其它的阶段管理,这里的项目管理只做狭义的理解,指在项目周期中,从更高的层次上掌握项目的整体进展,通常包括进度、成本的追踪,产出和人力成本、时间成本的对比等。

项目管理领域中有很多用以标示项目进度、成本是否遵循计划安排的指标,是项目经理常用的衡量项目健康与否的手段之一。Rational Insight 能够将这些指标,以及在项目过程中的指标演进呈现出来,方便项目经理随时查看,并采取相应的改进措施。

如图 9 所示,项目进度绩效指标 (SPI) 和进度差异(SV)图。 SPI 是实际完成工作与计划完成工作的比值(SPI=BCWP/BCWS), SV 则是两者之差(SV = BCWP-BCWS)。当 SPI 为 1 或者 SV 为 0 时,代表项目的实际发生和项目原计划进度一致,这是最为理想的状态。从该图看到,在前期,SPI 远小于 1,而 SV 为负值,说明项目进度严重拖延,而随着时间推移,进度按计划赶上。这里的数据可以来自于任何项目进度管理工具,只要定期将数据抽取到 Insight 的数据仓库即可。

注:
BCWP:完成作业的预算成本
BCWS:项目计划作业的预算成本
SV:项目进度差异
SPI:进度性能指标
图 9. 项目进度绩效指标(SPI)和进度差异(SV)图
图 9. 项目进度绩效指标(SPI)和进度差异(SV)图
图 9. 项目进度绩效指标(SPI)和进度差异(SV)图

目前,Insight 1.0 对 Rational 需求管理工具 RequsitePro,变更管理工具 ClearQuest,配置管理工具 ClearCase,测试管理工具 RQM,CQTM,Test Manager,以及 Jazz 平台产品 Rational Team Concert 都可以进行无缝集成。除此之外,还可以将 Microsoft Project 的数据,甚至 Microsoft Excel 的数据进行抽取,分析并产生报表。同时,任何可提供 REST service 的产品都可以与 Insight 集成,并利用现有数据模型,定制出符合自己业务需求的报表。

除了单个报表,Insight 支持将多个相关报表定制成为仪表盘(Dashboard),比如为 CEO,CIO 等量身定制的仪表盘,让高级管理者,随时可以打开浏览器,点击运行,实时掌握项目进展,了解项目健康状况。图 10 示例了一个高级管理人员的仪表盘的部分数据,通过这几个图表来展示目前项目的生产效率。

图 10. 高层管理人员仪表盘
图 10. 高层管理人员仪表盘
图 10. 高层管理人员仪表盘

查看大图

总结

软件开发和系统交付是一个持续而复杂的过程,为了帮助用户能够轻松应对这其中的各种艰巨挑战,Rational Insight 提供了一套完整、简明且高效的开箱即用报表。通过上面的介绍不难发现,用户可以使用 Rational Insight 提供的这些报表,从软件工程开发的多个维度来度量当前项目的健康程度。这就为用户能够洞察当前项目进度中的问题、及时做出反应、保证项目顺利进行奠定了坚实的基础。为了能够使读者能够系统的了解 Rational Insight,感受到其强大的功能和先进的系统架构,我们将在后续的文章中介绍 Rational Insight 的系统整体架构和各个模块的工作原理,敬请期待。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=443068
ArticleTitle=Rational Insight 在软件开发生命周期中的应用,第 1 部分: 使用 Rational Insight 度量软件开发项目
publish-date=10302009