有几种原因使需求分析变得困难:
(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。
1 客户说不清楚需求
有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多政府机构在搞网络建设,这些单位的领导和办公人员大多不清楚计算机网络有什么用,反而要软件系统分析人员替他们设想需求。这类工程的需求是如此的主观,以致产生很多贪污腐败现象
有些客户心里非常清楚想要什么,但却说不明白。读者可能很不以为然。就举日常生活的事例吧,比如说买鞋子。我们非常了解自已的脚,但没法说清楚脚的大小和形状。只能拿鞋子去试,试穿时感觉到舒服才会买鞋(居然也有神通广大的售货员,看一眼客户的手,就知道应该穿什么样的鞋)。
如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松、愉快。如果客户全不懂软件,但信任软件开发方,这事也好办。分析人员可以引导客户,先阐述常规的需求,再由客户否定不需要的,最终确定客户真正的需求。最怕的就是“不懂装懂”或者“半懂充内行”的客户,他们会提出不切实际的需求。如果这些客户甚至觉得自己是上帝的爸爸,那么沟通和协商都会很困难。
2 需求自身经常变动
唐僧曾说:“妖要是有了仁慈之心,就不再是妖,是人妖。”(《大话西游之大圣娶亲》)
连妖都会变心,别说人了。所以喜新厌旧乃人之常情,世界也因此变得多姿多彩。
软件的需求会变化吗?
答:据历史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。[Cline 1995]
让我们先接受“需求会变动”这个事实吧,免得在需求变动时惊慌失措。明白“需求会变动”这个道理后,在进行需求分析时就要留点神:
(1)尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。
(2)在合同中一定要说清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。要防止象韩复渠那样,在别人请他喝酒吃饭时他什么都点头(人家就更加献殷勤),吃完了他就宣布刚才答应的事都不算数,便扬长而去。
3 分析人员或客户理解有误
有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。……有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。”
软件系统分析人员不可能都是全才。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致开发人员白干活,吃力不讨好。我读中学时候最怕写作文逃题,如果逃题了,不管作文写得多长,总是零分。所以分析人员写好需求说明书后,要请客户方的各个代表验证。如果问题很复杂,双方都不太明白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。
由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。有时客户还会把软件系统分析人员的建议或答复给想歪了。
有一个软件人员滔滔不绝地向客户讲解在“信息高速公路上做广告”的种种好处,客户听得津津有味。最后,心动的客户对软件人员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”
为什么软件系统分析员的工资要比普通程序员高?就是因为需求分析困难嘛。

软件项目需求分析困难的原因相关推荐

  1. 软件项目失败的心理原因

    这是一篇有关软件工程领域中事务状态的评论文章.它讨论了程序员的实际挑战和实际职责.它把程序员分为四个类别:聪明.强盗.无助和愚蠢,另外两个类别是天真和无知.它讨论了程序员必须如何熟悉特定领域,不仅能够 ...

  2. [SE]软件项目需求分析为什么困难

    有几种原因使需求分析变得困难:(1)客户说不清楚需求:(2)需求自身经常变动:(3)分析人员或客户理解有误. 1 客户说不清楚需求 有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求.例如全国各地的 ...

  3. 软件项目需求分析为什么困难?

    发布于:软件开发网 来源:Internet 作者:网络收集 时间:2008-11-25 11/3/2009 10:34:51 AM 有几种原因使需求分析变得困难: l 客户说不清楚需求: l 需求自身 ...

  4. 浅谈软件项目需求分析

    这里不是写标准化的理论知识,而是想写写对软件需求工作的感受.         理论上的需求管理是要解决系统需求做什么的问题,以此界定系统功能和非功能性的内容.需求指的是由项目接受的或项目产生的产品和产 ...

  5. 采用简化原型法进行软件项目需求分析

    发布于:软件开发网 来源:Internet 作者:网络收集 时间:2008-11-25 点击: 11/3/2009 10:51:36 AM 前言:需求分析阶段是管理信息系统(MIS)开发最重要的阶段. ...

  6. 软件项目需求分析:非功能性六大点

    1.功能性项目 功能性指与一组功能及其指定的性质有关的一组属性,这里的功能是指满足明确或者隐含的需求的那些功能.具体包括: • 适合性:与规定任务能否提供一组功能,以及这组功能的适合程度有关的软件属性 ...

  7. 软件项目需求分析与设计

    第一章 大纲 1.整体需求分析 2.数据库设计 需求分析:数据需求分析,明确功能需求与主体 概念设计:系统流程图,数据流图,数据字典(Visio,UML等) 逻辑设计:定义数据实体,绘制E-R图(Vi ...

  8. 一地鸡毛——软件项目中的人际困局

    文/方坤 作者结合切身经历,展示了他之前所在团队软件项目延期的种种原因,而其中印象最深刻的是各种人事纷扰乃至于勾心斗角. 六年前,毕业未久的我在一家外企工作,我所在团队开发的软件项目在交付到集成测试组 ...

  9. APP软件项目开发-功能设计

    目前2C的APP在生活中使用已经非常普及,市场也基本饱和,APP市场的竞争已经进入2B市场,越来越多的企业希望做属于自己的APP,为客户提供更加便捷高效的产品和服务.接着上一篇文章,接下来和大家分享怎 ...

最新文章

  1. hive sqoop 分区导入_Sqoop概述及shell操作
  2. kubernetes实战篇之通过api-server访问dashboard
  3. 这也许是你不曾留意过的 Mybatis 细节
  4. val什么意思vb中的属性值_老司机带你探索Mysql中int(1)、int(10)、int(11)的区别是什么?...
  5. c语言读取nc文件格式,nc文件资料地读取与处理.doc
  6. ssrs 生成pdf_在SSRS报告中生成热图的可用选项
  7. 图片的变形与模糊,是两回事
  8. TinyPXE网络启动,打造无盘工作站
  9. 第四课 vi编辑器使用
  10. U3D[02.21]
  11. 想加薪怎么和领导谈?学会这四招轻松涨薪
  12. 修复图片音频全新升级带特效喝酒神器小游戏微信小程序源码下载-多种游戏支持流量主
  13. SAP ABAP ZBA_R003 查询用户下的角色里的公司
  14. git.exe 启动 慢_安化县利勃海尔挖掘机维修全车动作慢无力
  15. 28 篇论文、6 大主题带你一览 CVPR 2020 研究趋势
  16. 电脑桌面宠物-bango cat
  17. 莱布尼兹三角形(C++)
  18. 简单运算器的设计与仿真
  19. 干货|语义网、Web3.0、Web3、元宇宙这些概念还傻傻分不清楚?(中)
  20. 苹果CEO史蒂夫·乔布斯在斯坦福演讲(一)

热门文章

  1. JAVA做OA用到手机_基于JAVA的OA系统的制作毕业设计论文
  2. C语言中的问号表达式
  3. 蛮力法/最大连续子序列的和O(n^3)
  4. 低级BUG记录 - 我的sprintf瞎逼操作
  5. 如何在CentOS7上编译WELD
  6. cdi 2.7.5_CDI参考实施Weld 1.1.6最终焊接区,OSGi即将到来
  7. (八) 基于cadence 617 简单差分电路仿真
  8. 从现在开始每天进步一点点
  9. zookeeper 选取主 leader
  10. 中国乡村振兴论坛:腾讯安心平台成数字兴农的优秀样板