SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3296|回复: 1

[推荐] 建立一个成熟的需求管理流程来削减成本

[复制链接]
发表于 2013-1-24 16:44:30 | 显示全部楼层 |阅读模式
本帖最后由 技术狂人 于 2013-1-24 16:49 编辑 ) c0 |4 G% z; |; ^( M; t
8 z0 \5 t  b# ~! L  L
良好的需求管理与良好的软件同样关键, |$ ]7 j( J+ {8 q
研究表明,IT 项目中的计划外成本往往取决于需求管理的成熟度级别(参阅 参考资料 一节中的研究参考文献)。因此,有效和成熟的需求管理流程,对于任何软件开发项目取得成功都是非常重要的因素。
8 I% R: N. D2 c9 `0 [$ z" r以下是衡量需求管理成熟度的典型因素:
8 L4 S$ s5 \- N
  • 需求管理流程
  • 可以产生出色交付产品的标准模板的可用性
  • 在需求和开发流程中的完全可追溯性
  • 项目团队的技能
  • 支持工具的可用性。
    ' A& A% a- z  B
如果项目团队或公司改进了所有这些因素,而不只改进其中一部分因素,那么其成熟度级别会有所增加。仅购买一个需求定义和管理工具(如 IBM® Rational® Requirements Composer)并不足于改进项目团队的开发,并且有可能只是增加了他们的总体项目成本。仅凭借工具根本无法帮助提高成熟度。不过,如果您成功引入一种方法,其中项目团队的所有成员必须遵循一个过程,使用标准模板,并建立项目的可追溯性,那么该工具就有可能帮助提高您的需求管理流程的整体成熟级别。, p& f$ D% ]* t4 @) w/ T

7 y) r" D6 I" m+ O2 ?
: Y' n6 f* y" t
实现强大需求管理流程的步骤  Y/ }* ]) h; i# E5 F! \  Y
本文将演示如何使用 IBM® Rational® Requirements Composer 和 IBM® Rational Team Concert™ 来确保稳定和成熟的需求定义及管理。这种方法曾在大型真实客户项目中得到应用,在这些项目中,IBM 帮助指导当地项目团队建立这样一个流程。
; y# o' B( h& g) T& W注:
% a  y7 W* C. _! I( O. u' y本文并没有解释如何使用 Rational Requirements Composer 来创建需求,也没有解释您如何可以将它们连接到测试用例或实施任务。developerWorks 其他文章、Rational Requirements Composer Information Centers 中的产品文档,或在 Jazz.net 的 Rational Requirements Composer 部分中均已涵盖了这些主题(参阅本文 参考资料 中的链接)。
/ y' [5 Q  X7 e8 r% u定义所需的流程和信息
$ s$ i" o0 K7 y( Z5 b; T甚至在您考虑安装软件工具之前,您就应该定义您的需求管理流程和模板。根据您的具体情况,您可以针对您的项目、整个计划,甚至整个公司进行定义。
9 m+ v" Z1 x1 {0 r通常情况下,将采用一个现有的需求管理流程,并对其进行调整以符合您的项目。在定义流程时,重要的是要考虑可能发生的异常情况,以及将参与此流程的人员。例如,您需要想想,如果需要修改一些需求,或者有些需求变得过时,将会发生什么情况。有时,因为需求必须一起交付,所以需要捆绑在一起,或者它们需要根据其内容经过专门审批。或者,您必须记住,如果各个利益相关者无法对某个需求达成一致意见,那么您必须定义一个升级流程。
! h# d( Z3 t9 @. d2 i  y与需求管理流程配合,还要针对您计划在流程不同步骤中创建的不同类型的文档定义一组模板。除了书面需求之外,您通常还需收集运行流程或筛选需求(例如,列出原先请求该需求的团队)时所需的更多信息。最好是定义需求管理流程和您计划在不同流程步骤中创建的文档所需的信息。( h, u6 D( E  p( B) A0 P
当清晰定义这些东西后,您就已经准备好设置软件工具来支持您的流程。在您安装和设置自己的基础架构之前,先调查是否可以更方便快捷地部署托管服务。4 u5 L) q8 B+ E# J
定义可交付成果和模板- `: `3 B, c6 U* ^" [$ Q, O6 y( E
要创建已定义的需求管理流程,重要的是要定制 Rational Requirements Composer 和 Rational Team Concert 以满足您的需求。软件提供了预定义的模板结构,但最好是根据您的流程定义检查该结构,并作出必要的修改。1 R5 q7 D  a8 J
针对您计划创建的每种构件类型创建一个构件模板(例如,一个用于初始需求,一个用于用户界面需求的定义,以及一个模板用于业务规则的定义)。布局和结构的标准化程度越高,团队成员就越可能生成标准化的可交付成果,并理解其他团队成员的工作。如果他们都按照相同的流程和模板工作,在团队之间切换人员就会更容易(只寻找他们的业务技能,但不需要担心他们有不同的流程或文档样式)。& F' ?  N$ J0 J) Z' U
为了定义和管理构件模板,我在项目文件夹中创建了一个名称为 Templates 的目录,然后使用 TMPL_ 前缀为每个类型添加一个构件。在此目录中,您为模板执行所需的所有变更,并通过点击 Create Artifact Template 图标发布它(参见图 1)。在您用于管理需求和构件的所有筛选器中,排除以 TMPL_ 前缀开始的所有构件。
1 q# ?1 P" J/ r( e' O% D$ u1 v
7 v2 k( ~2 m" a( f2 c7 y% U, z图 1. 构件模板示例
5 H2 j0 h, G, r8 Q1 v; L. i
7 H+ n5 I9 Q$ L% Z2 a% V, k, {, G2 k7 b0 ?
定义信息筛选器的属性, {& w. y9 L5 G8 }* Q, |9 p, o& K
信息筛选器是一种机制,可以用于将大量构件(例如,需求)减少为一个较短并因此更具可读性的构件列表。为了减少构件的数量,您可以使用筛选器来选择其中某个特定信息(属性)被设置为某个特定值的构件。
2 t! r3 W3 ^) ~6 A* ]* j6 A5 Z在项目的开始阶段,处理所有已定义的构件非常简单。然而,随着时间的推移,项目团队成员可能会迷失在规模日益扩大的需求构件中。如果您有长期运行的项目和大量的参与者,重要的是要做到以下几点:
8 g0 `0 A) u0 w: ~/ b
  • 使用属性来创建筛选器查询
  • 定义一个良好的文件夹结构
  • 使用可以帮助团队成员导航构件依赖性的链接
    % m6 Q3 m0 R; f! g4 R
筛选器是查找您感兴趣需求的一个很好的方法。您可以使用预定义元素,如姓名、日期、文件夹结构或构件类型(或这些元素的组合)进行筛选,您可以结合这些元素和自己的信息进行筛选。对于每个构件,您都可以定义许多属性。这些属性需要由管理员或需求管理流程中的另一个项目负责人在 Manage Project Properties 视图(参见图 2)中创建,使得属性可以在筛选器中使用。
% @& ]! u/ v* M. d: ~! y4 u& \/ m
图 2. 输入属性的定义
, _5 L  e: Q0 Z
; `* q' {, h/ @! f; a$ {Artifact Types 视图中(图 3),您可以为每种类型的构件定义一组属性。% H7 B) d7 h/ b. i9 v; Z

) F7 L  F1 l  ~  S5 K图 3. 构件类型属性定义样例9 t9 L4 }4 a8 a: f3 ^2 |
4 D% Q7 ~4 \: _6 ^

" [2 Z$ i) ]* I在每个构件(初始需求、用例或用户界面定义)的创建过程中,您需要设置不同的属性,如构件类型或有效性。在某些情况下,项目管理员设置某些关键属性,而中央团队或其他流程参与者设置另一些属性。
3 T1 a: P% p1 C4 t' j* G! |4 `( Z使用标准和特定的属性来为典型查询定义全局筛选器,如 “向我显示所有 NFR” 或 “向我显示 Rational Team Concert 元素状态未关闭的所有需求”。图 4 中的示例使用了以下筛选器:; y, n/ w4 ?: T9 Y% F4 t* H
  • 排除带有 TMPL_ 前缀的所有模板
  • 只显示构件类型为 "Specification-Artifact" 的构件
  • 只显示 “非功能性需求” 的规范构件
  • 找到符合以下条件的属性:6 V6 D8 _/ D" ]" z$ E8 Z
    • Link type exists: Used in
    • Artifact types: requirement
    • Team_BMSW: yes" h% j. ^  Z% S
7 P  k) q- \! a  M
图 4. 可以在项目范围内发布的自定义筛选器; g* P- Z+ P# \6 ~

5 N6 I' s/ o8 F. R& q许多团队成员都习惯于与其本地系统或共享网络驱动器相似的一个文件夹结构。因此,您还可以在您的 Rational Requirements Composer 安装中设置一个文件夹结构。遵循显示元素如何能构成的常用方法。
" v1 N( c" O1 ^3 ?* F1 [" o

8 }2 @% n6 F: z" H7 E5 e7 m- C# [$ V/ Q6 s  t" O/ d2 u
Rational Team Concert 协作和工作项特性的最佳用法
# X( S0 S+ t0 A: n7 m! gRational Requirements Composer 对于编写需求、建立不同构件之间的可追溯性以及使用 Review 特性进行质量审查非常有用。因此,您完全可以使用它来定义、开发和审查需求。
; Q2 ^+ S) [9 m* L然而,对于定义工作流(带有状态值)、分配一个所有者和使用 Discussion 或 Subscribe 特性,Rational Team Concert 则是一个更合适的工具。总之:7 H. }' r% s" T$ ]6 k
  • 使用 Rational Requirements Composer 来定义、讨论和审查内容
  • 使用 Rational Team Concert 来运行和控制需求管理 流程
    5 K/ ?4 O2 @1 b
这种方法的好处是,所有内容相关的信息(包括需求、词汇术语和规范要素)都在同一个位置:Rational Requirements Composer。同样,所有的项目管理数据(包括任务、监控和计划)都在同一个位置:Rational Team Concert。这两种工具无缝集成,您就可以在 Rational Requirements Composer 中筛选需求,这些需求要么在 Rational Team Concert 中有特定状态,要么在 Rational Requirements Composer 中带有特定的信息(例如,优先级)。" ~# i( L* z4 W
这个特定的项目示例使用 Rational Requirements Composer 中的 Tracked By 链接。每当我们在 Rational Requirements Composer 中创建一个新需求,我们就使用 Tracked By 链接类型添加一个相关的 Rational Team Concert 工作项。当我们在 Rational Requirements Composer 的 Create Link 窗口选择 Create new 时,会自动创建 Rational Team Concert 工作项目。& r) U0 L- C0 v9 B1 {) C4 v

& C. v9 [. x6 {. P4 K$ i: T3 w7 D图 5. Rational Team Concert 工作项的 Tracked By 链接
) j1 v& X, ~: y4 l* a& h% E
0 ^3 {( b# n# G1 R我们在 Rational Team Concert 中定义了一个特殊的 Requirement 工作项,此工作项根据我们的需求管理流程拥有一个状态流。我们分配应对需求采取下一步操作的责任人,并使用讨论特性来记录在该流程中发生的事情(因为...升级,等待...的反馈,等等)。 , y% B) t. e& w% z2 ^
如果您是一个需求管理团队而不是一个人在管理流程,那么使用 Rational Team Concert 中的相关工作项对您会非常有帮助。团队中的每个人都可以订阅工作项,因此,大家都了解正在发生的变更。使用 Rational Team Concert 的仪表板,团队还可以看到在某个特定状态的需求的数量。; l8 {5 U- I$ ?5 O
  }% h9 a: X2 @2 u; m; y
图 6. Rational Team Concert 中的状态概览,显示了所有项目需求
% F$ }0 x0 J9 S8 Z1 G! k
7 ^* {. [1 x8 \
" X8 c) L) [) ?* U' N
- M" M6 G0 S% d. T2 O0 O" H4 e
结束语
7 {, ~  Y' Z5 q& ]项目团队可以结合 Rational Requirements Composer 和 Rational Team Concert,并将它们用作一个集合工具,通过以下四个步骤在您的组织中建立和维护一个成熟的需求管理流程:! G; r0 h% Z6 X5 u/ l
  • 定义需求管理流程和所需的信息模型,然后再开始安装和使用软件工具。
  • 定义构件模板,以标准化您的可交付成果,并在您的整个团队中构建通用方法和技能。
  • 使用属性、筛选器、文件夹结构和链接来找到您要处理的需求。
  • 使用 Tracked By 选项和 Rational Team Concert 中的工作项控制,并运行您的需求管理流程,使您的团队和项目受益于协作和报告特性。
    % E0 m! p" _4 E$ l+ M& c6 Y6 X
显然,没有团队的参与,就不会出现这些步骤。重要的是要建立一个强大的需求管理团队来定义和运行流程。需求管理团队需要得到管理层的充分支持,因为不同的项目成员总是会找到理由去遵循旧的流程。项目团队必须表现出明确的领导权,以确保每个人都遵循着所定义的需求管理流程开展工作。随着您的新流程开始顺利运行,您会认识到调节团队规模和角色的能力,它可以为您提供提高流程效率的更多好处。
3 z; i" d- F! T( Y9 u2 S% t0 r+ |$ O/ m, E" ]$ d" ^3 B0 J+ s1 ^

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2013-1-24 16:50:12 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-7-19 17:36 , Processed in 0.074620 second(s), 8 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表