怎样做需求分析(之三)
怎样做需求分析(之三)
N1fG(}_ x0
W{FveC;Ma0客户的需求观
-C7VS7\aRJ0友商社区,g7K f#]R(xY
vmgP4RT
---客户与开发人员交流需要好的方法。下面建议20条法则,客户和开发人员可以通过评审以下内容并达成共识。如果遇到分歧,将通过协商达成对各自义务的相互理解,以便减少以后的磨擦(如一方要求而另一方不愿意或不能够满足要求)。友商社区.V%o b1HE0lJrm
9Ea`vS/`2A)i g0---1、 分析人员要使用符合客户语言习惯的表达友商社区K)kAz(G&Q/Q
d0LA;_$BSi M'Nt0---需求讨论集中于业务需求和任务,因此要使用术语。客户应将有关术语(例如:采价、印花商品等采购术语)教给分析人员,而客户不一定要懂得计算机行业的术语。
(KQ0y6ZKXb0友商社区%V'i5~@4q{};_
---2、分析人员要了解客户的业务及目标友商社区3qOB-[(Ydo
友商社区|8t;A3Xc]!C+\O
---只有分析人员更好地了解客户的业务,才能使产品更好地满足需要。这将有助于开发人员设计出真正满足客户需要并达到期望的优秀软件。为帮助开发和分析人员,客户可以考虑邀请他们观察自己的工作流程。如果是切换新系统,那么开发和分析人员应使用一下目前的旧系统,有利于他们明白目前系统是怎样工作的,其流程情况以及可供改进之处。s友商社区 u~vNfJ
友商社区8{ d;RuQ#O
---3、 分析人员必须编写软件需求报告友商社区E"D}`f(a
友商社区#Z{[K j{!]
---分析人员应将从客户那里获得的所有信息进行整理,以区分业务需求及规范、功能需求、质量目标、解决方法和其他信息。通过这些分析,客户就能得到一份“需求分析报告”,此份报告使开发人员和客户之间针对要开发的产品内容达成协议。报告应以一种客户认为易于翻阅和理解的方式组织编写。客户要评审此报告,以确保报告内容准确完整地表达其需求。一份高质量的“需求分析报告”有助于开发人员开发出真正需要的产品。
4nJ y)dk+u5HfR0
H WPm }J2yA!E0---4、 要求得到需求工作结果的解释说明友商社区9D4p*I9] P
友商社区-s
yF'l3G&Z_
---分析人员可能采用了多种图表作为文字性“需求分析报告”的补充说明,因为工作图表能很清晰地描述出系统行为的某些方面,所以报告中各种图表有着极高的价值;虽然它们不太难于理解,但是客户可能对此并不熟悉,因此客户可以要求分析人员解释说明每个图表的作用、符号的意义和需求开发工作的结果,以及怎样检查图表有无错误及不一致等。
;dpd
E%s|0
+V g:T
q#hJ0FK0---5、 开发人员要尊重客户的意见
5tv'VR
l0友商社区j9VUH e+~(c
Q
---如果用户与开发人员之间不能相互理解,那关于需求的讨论将会有障碍。共同合作能使大家“兼听则明”。参与需求开发过程的客户有权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间,同样,客户也应对开发人员为项目成功这一共同目标所做出的努力表示尊重。
1gd2P8w1p#fWr0友商社区^)Ga*t$i/n
---6、 开发人员要对需求及产品实施提出建议和解决方案友商社区6~Bf4e~ c U
U
友商社区,i0y:l7h\
---通常客户所说的“需求”已经是一种实际可行的实施方案,分析人员应尽力从这些解决方法中了解真正的业务需求,同时还应找出已有系统与当前业务不符之处,以确保产品不会无效或低效;在彻底弄清业务领域内的事情后,分析人员就能提出相当好的改进方法,有经验且有创造力的分析人员还能提出增加一些用户没有发现的很有价值的系统特性。友商社区xA9I}2Yr
n-zCf y_bjG+F-x/T0---7、 描述产品使用特性
k\ ] p
RV0友商社区0NPjl$b.q
yG8I
---客户可以要求分析人员在实现功能需求的同时还注意软件的易用性,因为这些易用特性或质量属性能使客户更准确、高效地完成任务。例如:客户有时要求产品要“界面友好”或“健壮”或“高效率”,但对于开发人员来讲,太主观了并无实用价值。正确的做法是,分析人员通过询问和调查了解客户所要的“友好、健壮、高效所包含的具体特性,具体分析哪些特性对哪些特性有负面影响,在性能代价和所提出解决方案的预期利益之间做出权衡,以确保做出合理的取舍。
8rp&miCq0友商社区y\PE+T4q3Y!l
---8、 允许重用已有的软件组件友商社区;DLU P7`'{
友商社区7M9J.V ],s
---需求通常有一定灵活性,分析人员可能发现已有的某个软件组件与客户描述的需求很相符,在这种情况下,分析人员应提供一些修改需求的选择以便开发人员能够降低新系统的开发成本和节省时间,而不必严格按原有的需求说明开发。所以说,如果想在产品中使用一些已有的商业常用组件,而它们并不完全适合您所需的特性,这时一定程度上的需求灵活性就显得极为重要了。
e"ku$lA"H~.e0友商社区r!a3_fzl4J,y
---9、 要求对变更的代价提供真实可靠的评估
vNb
i#^'W0友商社区+ck2q&c&YAeQ.r
---有时,人们面临更好、也更昂贵的方案时,会做出不同的选择。而这时,对需求变更的影响进行评估从而对业务决策提供帮助,是十分必要的。所以,客户有权利要求开发人员通过分析给出一个真实可信的评估,包括影响、成本和得失等。开发人员不能由于不想实施变更而随意夸大评估成本。
(c(sjD[0友商社区"j~j zg&zjn9\R
---10、 获得满足客户功能和质量要求的系统友商社区{+h'o;X5P
友商社区Kau
L"d;~
---每个人都希望项目成功,但这不仅要求客户要清晰地告知开发人员关于系统“做什么”所需的所有信息,而且还要求开发人员能通过交流了解清楚取舍与限制,一定要明确说明您的假设和潜在的期望,否则,开发人员开发出的产品很可能无法让您满意。
+y0p
U {H+?0友商社区Rv.?L*aL
---11、 给分析人员讲解您的业务友商社区8kM0V&C1l@.N
友商社区;PBa j^P5d
@5w
---分析人员要依靠客户讲解业务概念及术语,但客户不能指望分析人员会成为该领域的专家,而只能让他们明白您的问题和目标;不要期望分析人员能把握客户业务的细微潜在之处,他们可能不知道那些对于客户来说理所当然的“常识”。友商社区.W I8\2y2QA J
RE'f#o?,e0---12、 抽出时间清楚地说明并完善需求
dy$q5tO0
2|p.T&nb)HM$C0---客户很忙,但无论如何客户有必要抽出时间参与“头脑高峰会议”的讨论,接受采访或其他获取需求的活动。有些分析人员可能先明白了您的观点,而过后发现还需要您的讲解,这时请耐心对待一些需求和需求的精化工作过程中的反复,因为它是人们交流中很自然的现象,何况这对软件产品的成功极为重要。友商社区 a.P)STCjf
W^
友商社区.I'{?)RiZdG3rE
---13、 准确而详细地说明需求
A$A!c c!si8vP(C0