需求分析的20条法则(本节摘自软件工程专家网)

客户与开发人员交流需要好的方法。下面建议20条法则,客户和开发人员可以通过评审以下内容并达成共识。如果遇到分歧,将通过协商达成对各自义务的相互理解,以便减少以后的磨擦(如一方要求而另一方不愿意或不能够满足要求)。

1、 分析人员要使用符合客户语言习惯的表达   
      需求讨论集中于业务需求和任务,因此要使用术语。客户应将有关术语(例如:采价、印花商品等采购术语)教给分析人员,而客户不一定要懂得计算机行业的术语。

2、分析人员要了解客户的业务及目标   
      只有分析人员更好地了解客户的业务,才能使产品更好地满足需要。这将有助于开发人员设计出真正满足客户需要并达到期望的优秀软件。为帮助开发和分析人员,客户可以考虑邀请他们观察自己的工作流程。如果是切换新系统,那么开发和分析人员应使用一下目前的旧系统,有利于他们明白目前系统是怎样工作的,其流程情况以及可供改进之处。

3、 分析人员必须编写软件需求报告   
      分析人员应将从客户那里获得的所有信息进行整理,以区分业务需求及规范、功能需求、质量目标、解决方法和其他信息。通过这些分析,客户就能得到一份“需求分析报告”,此份报告使开发人员和客户之间针对要开发的产品内容达成协议。报告应以一种客户认为易于翻阅和理解的方式组织编写。客户要评审此报告,以确保报告内容准确完整地表达其需求。一份高质量的“需求分析报告”有助于开发人员开发出真正需要的产品。

4、 要求得到需求工作结果的解释说明   
      分析人员可能采用了多种图表作为文字性“需求分析报告”的补充说明,因为工作图表能很清晰地描述出系统行为的某些方面,所以报告中各种图表有着极高的价值;虽然它们不太难于理解,但是客户可能对此并不熟悉,因此客户可以要求分析人员解释说明每个图表的作用、符号的意义和需求开发工作的结果,以及怎样检查图表有无错误及不一致等。

5、 开发人员要尊重客户的意见  
      如果用户与开发人员之间不能相互理解,那关于需求的讨论将会有障碍。共同合作能使大家“兼听则明”。参与需求开发过程的客户有权要求开发人员尊重他们并珍惜他们为项目成功所付出的时间,同样,客户也应对开发人员为项目成功这一共同目标所做出的努力表示尊重。

6、 开发人员要对需求及产品实施提出建议和解决方案   
      通常客户所说的“需求”已经是一种实际可行的实施方案,分析人员应尽力从这些解决方法中了解真正的业务需求,同时还应找出已有系统与当前业务不符之处,以确保产品不会无效或低效;在彻底弄清业务领域内的事情后,分析人员就能提出相当好的改进方法,有经验且有创造力的分析人员还能提出增加一些用户没有发现的很有价值的系统特性。

7、 描述产品使用特性   
      客户可以要求分析人员在实现功能需求的同时还注意软件的易用性,因为这些易用特性或质量属性能使客户更准确、高效地完成任务。例如:客户有时要求产品要“界面友好”或“健壮”或“高效率”,但对于开发人员来讲,太主观了并无实用价值。正确的做法是,分析人员通过询问和调查了解客户所要的“友好、健壮、高效所包含的具体特性,具体分析哪些特性对哪些特性有负面影响,在性能代价和所提出解决方案的预期利益之间做出权衡,以确保做出合理的取舍。

8、 允许重用已有的软件组件   
       需求通常有一定灵活性,分析人员可能发现已有的某个软件组件与客户描述的需求很相符,在这种情况下,分析人员应提供一些修改需求的选择以便开发人员能够降低新系统的开发成本和节省时间,而不必严格按原有的需求说明开发。所以说,如果想在产品中使用一些已有的商业常用组件,而它们并不完全适合您所需的特性,这时一定程度上的需求灵活性就显得极为重要了。

9、 要求对变更的代价提供真实可靠的评估   
       有??同的选择。而这时,对需求变更的影响进行评估从而对业务决策提供帮助,是十分必要的。所以,客户有权利要求开发人员通过分析给出一个真实可信的评估,包括影响、成本和得失等。开发人员不能由于不想实施变更而随意夸大评估成本。

10、 获得满足客户功能和质量要求的系统   
      每个人都希望项目成功,但这不仅要求客户要清晰地告知开发人员关于系统“做什么”所需的所有信息,而且还要求开发人员能通过交流了解清楚取舍与限制,一定要明确说明您的假设和潜在的期望,否则,开发人员开发出的产品很可能无法让您满意。

11、 给分析人员讲解您的业务   
      分析人员要依靠客户讲解业务概念及术语,但客户不能指望分析人员会成为该领域的专家,而只能让他们明白您的问题和目标;不要期望分析人员能把握客户业务的细微潜在之处,他们可能不知道那些对于客户来说理所当然的“常识”。

12、 抽出时间清楚地说明并完善需求   
      客户很忙,但无论如何客户有必要抽出时间参与“头脑高峰会议”的讨论,接受采访或其他获取需求的活动。有些分析人员可能先明白了您的观点,而过后发现还需要您的讲解,这时请耐心对待一些需求和需求的精化工作过程中的反复,因为它是人们交流中很自然的现象,何况这对软件产品的成功极为重要。

13、 准确而详细地说明需求   
      编写一份清晰、准确的需求文档是很困难的。由于处理细节问题不但烦人而且耗时,因此很容易留下模糊不清的需求。但是在开发过程中,必须解决这种模糊性和不准确性,而客户恰恰是为解决这些问题作出决定的最佳人选,否则,就只好靠开发人员去正确猜测了。

在需求分析中暂时加上“待定”标志是个方法。用该标志可指明哪些是需要进一步讨论、分析或增加信息的地方,有时也可能因为某个特殊需求难以解决或没有人愿意处理它而标注上“待定”。客户要尽量将每项需求的内容都阐述清楚,以便分析人员能准确地将它们写进“软件需求报告”中去。如果客户一时不能准确表达,通常就要求用原型技术,通过原型开发,客户可以同开发人员一起反复修改,不断完善需求定义。

14、 及时作出决定   
      分析人员会要求客户作出一些选择和决定,这些决定包括来自多个用户提出的处理方法或在质量特性冲突和信息准确度中选择折衷方案等。有权作出决定的客户必须积极地对待这一切,尽快做处理,做决定,因为开发人员通常只有等客户做出决定才能行动,而这种等待会延误项目的进展。

15、 尊重开发人员的需求可行性及成本评估   
      所有的软件功能都有其成本。客户所希望的某些产品特性可能在技术上行不通,或者实现它要付出极高的代价,而某些需求试图达到在操作环境中不可能达到的性能,或试图得到一些根本得不到的数据。开发人员会对此作出负面的评价,客户应该尊重他们的意见。

16、 划分需求的优先级   
      绝大多数项目没有足够的时间或资源实现功能性的每个细节。决定哪些特性是必要的,哪些是重要的,是需求开发的主要部分,这只能由客户负责设定需求优先级,因为开发者不可能按照客户的观点决定需求优先级;开发人员将为您确定优先级提供有关每个需求的花费和风险的信息。   在时间和资源限制下,关于所需特性能否完成或完成多少应尊重开发人员的意见。尽管没有人愿意看到自己所希望的需求在项目中未被实现,但毕竟是要面对现实,业务决策有时不得不依据优先级来缩小项目范围或延长工期,或增加资源,或在质量上寻找折衷。

17、 评审需求文档和原型   
      客户评审需求文档,是给分析人员带来反馈信息的一个机会。如果客户认为编写的“需求分析报告”不够准确,就有必要尽早告知分析人员并为改进提供建议。更好的办法是先为产品开发一个原型。这样客户就能提供更有价值的反馈信息给开发人员,使他们更好地理解您的需求;原型并非是一个实际应用产品,但开发人员能将其转化、扩充成功能齐全的系统。

18、 需求变更要立即联系   
      不断的需求变更,会给在预定计划内完成的质量产品带来严重的不利影响。变更是不可避免的,但在开发周期中,变更越在晚期出现,其影响越大;变更不仅会导致代价极高的返工,而且工期将被延误,特别是在大体结构已完成后又需要增加新特性时。所以,一旦客户发现需要变更需求时,请立即通知分析人员。

19、 遵照开发小组处理需求变更的过程   
      为将变更带来的负面影响减少到最低限度,所有参与者必须遵照项目变更控制过程。这要求不放弃所有提出的变更,对每项要求的变更进行分析、综合考虑,最后做出合适的决策,以确定应将哪些变更引入项目中。

20、 尊重开发人员采用的需求分析过程   
      软件开发中最具挑战性的莫过于收集需求并确定其正确性,分析人员采用的方法有其合理性。也许客户认为收集需求的过程不太划算,但请相信花在需求开发上的时间是非常有价值的;如果您理解并支持分析人员为收集、编写需求文档和确保其质量所采用的技术,那么整个过程将会更为顺利。

“需求确认”意味着什么   

在“需求分析报告”上签字确认,通常被认为是客户同意需求分析的标志行为,然而实际操作中,客户往往把“签字”看作是毫无意义的事情。“他们要我在需求文档的最后一行下面签名,于是我就签了,否则这些开发人员不开始编码。”   

这种态度将带来麻烦,譬如客户想更改需求或对产品不满时就会说:“不错,我是在需求分析报告上签了字,但我并没有时间去读完所有的内容,我是相信你们的,是你们非让我签字的。”   

同样问题也会发生在仅把“签字确认”看作是完成任务的分析人员身上,一旦有需求变更出现,他便指着“需求分析报告”说:“您已经在需求上签字了,所以这些就是我们所开发的,如果您想要别的什么,您应早些告诉我们。”   

这两种态度都是不对的。因为不可能在项目的早期就了解所有的需求,而且毫无疑问地需求将会出现变更,在“需求分析报告”上签字确认是终止需求分析过程的正确方法,所以我们必须明白签字意味着什么。 
  
     对“需求分析报告”的签名是建立在一个需求协议的基线上,因此我们对签名应该这样理解:“我同意这份需求文档表述了我们对项目软件需求的了解,进一步的变更可在此基线上通过项目定义的变更过程来进行。我知道变更可能会使我们重新协商成本、资源和项目阶段任务等事宜。”对需求分析达成一定的共识会使双方易于忍受将来的摩擦,这些摩擦来源于项目的改进和需求的误差或市场和业务的新要求等。   需求确认将迷雾拨散,显现需求的真面目,给初步的需求开发工作画上了双方都明确的句号,并有助于形成一个持续良好的客户与开发人ONT>

转载于:https://www.cnblogs.com/Jay_Chen/articles/1804132.html

[转]需求分析的20条法则(本节摘自软件工程专家网)相关推荐

  1. 需求分析的20条法则

    需求分析的20条法则 对商业用户来说,他们后面是成百上千个供应商,前面是成千上万个消费顾客.怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进.销.调.存的商品流通工作,这些 ...

  2. 软件工程:需求分析的20条法则

    对商业用户来说,他们后面是成百上千个供应商,前面是成千上万个消费顾客.怎样利用软件管理错综复杂的供应商和消费顾客,如何做好精细到一个小小调料包的进.销.调.存的商品流通工作,这些都是商业企业需要信息管 ...

  3. 需求管理之需求分析的20条法则

    1. 分析人员要使用符合客户语言习惯的表达  需求讨论集中于业务需求和任务,因此要使用术语.客户应将有关术语(例如:采价.印花商品等采购术语)教给分析人员,而客户不一定要懂得计算机行业的术语.  2. ...

  4. 研究生从事学术研究的20条法则:导师错的时候不多!

    研究生从大学生生活转换到研究生生活,在思想意识上,学习和工作方法上,都需要进行一些改变.如果转变不好,会严重影响研究生阶段的学习和工作.研究生阶段已经再也不是以考试成绩为标准了,需要独立的创造性工作. ...

  5. 导师对帮助研究生顺利完成学业提出了20条劝告:第一,不要有度假休息的打算.....

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文来源:转自科学网博客 王德华译 研究生从大学生生活转换到研究生生 ...

  6. 阿尔·里斯-市场营销的22条法则(22条商规)-20

    阿尔·里斯-市场营销的22条法则(22条商规) 20.过度宣传法则 事情往往与新闻媒介所宣传的正好相反 当IBM 取得成功时,它没有声张,而现在它却经常召开新闻发布会. 当事情进展顺利之时,公司不需要 ...

  7. 克服过拟合和提高泛化能力的20条技巧和诀窍

     克服过拟合和提高泛化能力的20条技巧和诀窍 你是如何提升深度学习模型的效果? 这是我经常被问到的一个问题. 有时候也会换一种问法: 我该如何提高模型的准确率呢? --或者反过来问: 如果我的网络 ...

  8. 2021软件测试行业问卷调查报告 20 条思考

    2021软件测试行业问卷调查报告 20 条思考这篇文章,基于「2021 软件测试行业调查问卷的数据 + IDO老徐 行业观察 + 过往数据分析」所得,供参考 .https://mp.weixin.qq ...

  9. 《壹百度—百度十年千倍的29条法则》

    <壹百度-百度十年千倍的29条法则>中的29条法则 1.人一定要做自己喜欢并擅长的事 内心的喜好是推动事业进步的最大动力,它能帮你克服困难,坚持到底:而如果你喜欢的事情有很多,要挑选自己最 ...

  10. 程序员之禅10条法则

    程序员是一份特别辛苦的职业,也是一个承受各种压力的群体.每周6天工作,无休止的加班,甚至过劳死,程序员的身心健康面临很大的问题.禅是另一种生活方式,在物欲横流的今天,禅对于程序员有着特殊的意义和价值. ...

最新文章

  1. 大数据软件产品研发进展及挑战
  2. 你还不知道 Eureka 和 zookeeper 的区别吗?
  3. opencv用haartraining训练出现的一些问题
  4. Swift调用Objective C的FrameWork
  5. VxWorks 6.9 内核编程指导之读书笔记 -- VxWorks kernel application (一)
  6. 如何激活 Trend Micro Deep Security Agent
  7. android jni调试打印char阵列
  8. android ndk下载安装教程,安装android NDK详细步骤
  9. 2008r2配置 iis mysql php_Windows Server 2008 R2 IIS7+PHP5(FastCGI)+MySQL5环境搭建
  10. 从拉格朗日插值法到范德蒙行列式
  11. 常用1寸,2寸照片标准尺寸
  12. 聚类——K均值简介及Python实现
  13. 您还差宝贝一张语文教学光盘!教你如何制作ISO文件
  14. POI根据模板导出word文件,以及word转PDF,PDF转图片再插入PDF中(防止PDF被修改)
  15. python logging配置时间或大小轮转
  16. Ubuntu调用USB摄像头
  17. let 92. Reverse Linked List II
  18. 做影视剪辑小伙伴们的福音,9个影视素材网站,抓紧收藏
  19. 无闻go编程基础笔记
  20. 我们跟30家PoS团队聊了聊,Staking最硬核的干货都在这儿了

热门文章

  1. Python下载(Windows)
  2. java textview多行_如何在java android中将ellipsize设置为textview的两行或多行
  3. MAC上mmap()的参数问题
  4. 文字处理技术:空格压缩
  5. clang: error: unknown argument: ‘-fpch-deps‘
  6. 高级插座的过载保护是否真的可靠?
  7. LINUX用C判断文件是否存在
  8. 谈因辐射拆基站,理在哪里?
  9. 能跑的东西,尽量继续跑,平稳过渡
  10. 编程语言对高手没有差别,对低手差别太明显