难以量化的需求开发与管理-1

上一篇 / 下一篇  2012-09-29 10:08:12 / 个人分类:杂谈

51Testing软件测试网{9l,C@PF

  在软件项目的开发过程中,需求管理贯穿了软件项目的整个生命周期,在软件项目管理中需求工程是软件开发的第一步,是关键的一步,也是最难把握的一步。需求管理做得好坏直接影响到软件的质量,甚至软件项目的成败。从软件的项目立项、研发、维护,用户的经验在增加,对使用软件的感受有变化,以及整个行业的新动态,都为软件带来不断完善功能、优化性能、提高用户友好性的要求。

kNopDsg wL'e W051Testing软件测试网$v'U| H5f)\x\

   在项目管理过程中,项目经理经常面对用户的需求变更,如果不能有效处理这些需求变更,项目计划会一再调整,软件交付日期一再拖延,项目研发人员的士气将 越来越低落,将直接导致项目成本增加、质量下降及项目交付日期推后。这就决定了项目组必须拥有需求管理策略和有效的落地。

&wPA[.oS051Testing软件测试网(\ u:K+{+HJ-X

  让我们一起来回顾一下实际研发过程中,通常会面临到的需求管理挑战:51Testing软件测试网 WQN+]-f.MTZ*z

'Ayc)PgF*Id0  1、缺乏需求的集中管理

ikmM'Qii RL0

9k5L$M Bsxb0   按照需求工程的说法,在进入开发环节之前,开发团队和客户之间需要形成一份完整的需求规格说明书,详细地说明目标软件的各种需求,这其中包括功能性需 求、非功能性需求和其他各种约束。在典型的瀑布模型中,需求规格说明书是在需求分析阶段完成的。然而,由于软件外部环境的变化,很少有哪个项目在需求分析 阶段就能将所有可能的需求准确无误地包含进来,并且在开发阶段不需要修改,一句话,需求的变更是不可避免的。需求的变更也需要及时地反应到需求管理中。51Testing软件测试网3R9@.Y3^_ZK7G U$W

51Testing软件测试网N[t iz9h'B

  除此之外,在实际的敏捷软件开发中,对开发而言,需求的来源不一定像瀑布模型那样完善的需求规格说明书,而通常有以下几种:51Testing软件测试网JKj'n`.SgGBz

51Testing软件测试网SR |+z:W1TfLe

  1)客户初始的业务需求:很多客户可能只会告诉我们,它想做一个系统或者工具平台,大致是什么样子,应该具备哪些功能,但这种需求往往比较抽象,缺乏细致的分析。这种需求可能源自于一次交谈,或者一封Email,形式上并不正式。

8Z(@^-ay$~0

@%`p v#Y]v(Q0   2)客户对项目快速原型的反馈意见:对于需求,在实际项目开发中,客户关注的业务功能,项目经理关注的是抽象设计,而开发人员关注的却是具体实现。在项 目初期,客户往往也不是很清楚他们要什么,或者理想中的产品到底最后会是什么样的,界面布局,操作流程等等。这一点,在新产品的开发中尤为明显。

"G&];B!|h!e'D0

d9|qD;_Ln&{0  这时候,就需要开发团队能够按照现有的理解快速地开发一个原型,作为开发团队和客户讨论和分析需求的共同基础,原型能够帮助用户更好地发掘和定义需求。客户对于原型的论证作为反馈意见也可以使开发团队更加直观和感性地认识客户的需求。51Testing软件测试网SDs] rx-S%D

51Testing软件测试网nk}TI

  3)客户对每个迭代周期发布的版本的修改建议

.O1V&N6l9^ Ww z7vR0

(CJc D,Ql/N5?e0  如果该企业采用的是敏捷开发,每个迭代周期都要发布一个可用的版本给客户,该版本尽可能多地实现了当前迭代周期内的需求以及之前迭代周期内遗留下来的需求。客户要验证需求的实现是否符合他们的要求,并提出修改意见和建议。

aK;QP:l"j7[iMC051Testing软件测试网6_3x*a1g T:vG3N3Qo Iu

  4)客户在研发周期中的需求变更

9h WY,uo0

~#b!I:Xa'X2{0   需求来源的特殊性决定了软件开发过程中需求管理的特殊性,尤其是对于一个同时承担数个小项目的开发团队而言,不同的项目需求是由不同的开发人员或QA分 别进行管理和跟踪的,缺乏集中的管理,对于需求的跟踪也比较原始。往往是手工整理需求邮件和需求列表,然后形成简单的需求文档,在需求查询和状态维护方面 存在明显不足。

3gK'Z#pI` mG051Testing软件测试网4E TG4hH

  2、需求变更频繁

2\t,cdyb'h0

rNS1^eJ([.G0  软件开发的显著特点之一就是灵活性、机动性、对 变化的快速响应能力。尤其是敏捷开发过程,需求变更更为频繁。敏捷开发的口号是拥抱需求变化,也就是说,开发团队对于客户提出的需求变更通常是抱以欢迎的 态度,尽管这些变更可能会给项目计划和项目进度带来麻烦,但这种观念上的转变更能体现开发团队和客户之间合作的诚意。

4r6@5Q3occ3ye x"[0

/Se(c.y'j4Md0  客户在迭代周期中 的变更大致可以分为五种类型:添加新需求、删除本次迭代周期内的需求、删除之前迭代周期内的需求、更改本次迭代周期内的需求、更改之前迭代周期内的需求。 这就是说,开发团队需要实时高效地管理这些变更,并且将需求变更涉及到的迭代周期内项目计划和人员安排变更的影响最小化。51Testing软件测试网5Pw[@)Bp1R+K

51Testing软件测试网Ym O N!L^

  3、缺乏有针对性的需求管理流程

p6G,a3}^0

Y.B!vPCP'Sj!w0   传统的需求管理过程,尤其是其中的变更控制过程是针对那些组织机构清晰,只能定义明确的传统软件项目,其流程相对比较严谨和死板。同时,为了弥补需求变 更对项目进程带来的影响,开发人员常常需要快速的进行功能修改和增加,而没有遵循统一的流程控制,从而常常使得软件开发的有序性被破坏,人为地增加了工作量。这就需要有更为高效和精简的需求管理过程以及相应的工具支持。

Y.V b\0zkO0

0Ft7vb6EW#x%K7UJ0  4、需求、测试用例Bug管理脱节

e] G+a/KG I-?0

6Q p ih)BY0[I0   软件开发中,需求和测试用例是紧密联系的,通常来说,一条需求只有通过了所有针对该需求的测试之后才能说这条需求的实现真正实现了。而测试的结果是产生 Bug报告,如果针对某条需求的一个测试用例没有通过测试,换句话说,也就是产生了一个Bug,这就说明该需求根本没有完成。同时,需求的变更直接影响到 与该需求相关的测试用例的更新,继而影响到现有Bug的状态的更新。然而现实情况却是,大多数敏捷开发团队都没有实现需求、测试用例和Bug的一体化管 理。

8A/yN2C:z_ F0  我们希望在需求、测试用例和Bug之间建立一种动态的联系,能够实时地更新三者的状态,并且实现三者之间状态的动态联动,从而减少开发团队在管理和维护需求、测试用例和Bug时的工作量。
2e@!\$~L['{z3`\0
51Testing软件测试网+Pf#{oA-F

  5、缺乏量化的项目管理反馈

.c,A7k!I5V5KO~051Testing软件测试网D%M`5Y^!X7{(h:@

  企业在项目管理中,需求的频繁变更对项目管理者评估需求、制定迭代周期内的项目计划都是个巨大的挑战。管理者在需求评估经验和能力上的不足,以 及管理者对团队成员开发能力认识不足容易造成需求评估出现大的误差,虽然这种误差是不可避免的、但是我们希望可以通过历史评估数据的反馈来帮助项目管理者 积累经验,逐步修正和调整自己的判断和评价体系,从而尽可能减小由于评估误差引起的项目风险。而没有工具的支持,历史的准确数据则很难获取。51Testing软件测试网&J(Pt(oU|

51Testing软件测试网d$rC bK M/a$`,[y1^I%lp

  总结以上问题,显而易见,需求管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占到45%,因此 有效的需求管理是企业软件开发项目顺利达成目标的重要支撑条件。如何理解项目开发的目的和用途,梳理用户需求,监控需求变化,进行需求确认,对需求风险进 行防范,并利用工具进行有效的实施需求管理工具,方能推进软件项目良性发展,达到用户与软件开发企业的双赢。51Testing软件测试网E{"B!yKg\

.a,Po)fo0  有效的需求管理方法与工具51Testing软件测试网/jh"jd&]V0f8z w2H;^

o qZk;ptK)|0  方法一:量化需求管理51Testing软件测试网 PJit F#P

2H W*rHUb1x)h4j2@5|0  如前所述,企业研发项目通常规模巨大,涉及部门众多,需求功能描述文件中包含众多内容,若仅仅只用整篇的文档来指导开发和测试工作,很容易引起任务分配的混乱;当发生需求变更时,也很难追溯历史版本。

+E5P wuBqKS ZVss S0

9D}k9w{JK8p0  TechExcel公司推出的DevSuite产品研发管理软件,从实践中提炼出一个行之有效的解决方法——用规范点 (Specification,以下简称Spec)量化需求,正规表达每一个功能单元。只需打开《需求功能描述书》的WORD文档,就可以利用插件,将其 中的功能单元逐条地复制出来,在需求管理系统 DevSpec中直接生成Spec。相对于需求,Spec是更面向技术人员的语言。

C!X!j"M S'H%Xh0

+wl'a~^oa)N0

  客户业务需求可以在平台中进行集中管理,并以需求结构化和条目化的形式管理需求,为需求的评估、追踪与变更管理提供 了基础。同时,通过系统强大的页面自定义能力,我们可以管理需求的来源、难度、实现时间、实现成本等,这些信息为需求优先级的评估,提供了量化的指标,帮 助项目经理准确的排布需求优先级,让团队优先实现最重要、最紧急、客户价值最高的需求。51Testing软件测试网"?C5JtGM^9S9cB.A

  此外,需求说明书、分析设计文档、评审记录等,均可以以附件形式保存,且能对文档的版本进行有效的管理。51Testing软件测试网Z,Tpy{2?

  方法二:有序管理需求变更51Testing软件测试网'c/f4z-}/kIb&T;\f

  在实际项目中,实现需求变更的成本随着开发进度呈指数级增长。需求变更的流程化管理能保障正常的开发进度,将变更及时反应到开发和测试等部门。51Testing软件测试网u o0S-FCep

  以下描述的是一个典型过程(如图1)。一项变更请求在需求管理系统中被提交后,与之关联的各个部门,如市场、项目管 理、产品研发、QA、测试等,都会有相关人员接到系统通知而介入。他们将组成评估团队,根据实施难度、周期、费用、对其他机制的影响等指标,对该变更进行 全面考察和评估。51Testing软件测试网-U|i,o}2}oJ

51Testing软件测试网;jJKk4\7P@

$w0^v jj4N.uwi,y9l0
N-k$eFk8i.Zu!p0

TAG:

 

评分:0

我来说两句

Open Toolbar