需求变更的原因
  需求包括业务需求、用户需求和功能需求。业务需求(Business Requirement )反映了组织机构或客户对系统、产品高层次的目标要求,用户需求(User Requirement )描述了用户使用产品必须完成的任务,功能需求(Functional Requirement )定义了开发人员必须实现的软件功能。
  会导致需求变更的原因会有很多,如老板临时改变想法、项目预算增加或减少、客户对功能的需求改变等。在IT项目中,变更可能来自方案服务商、客户或产品供应商等,也可能来源于项目组内部。在软件系统开发过程中,有很多问题都是由于在需求分析阶段没有正确地收集、编写、协商、修改产品真实需求而产生的,造成这样的状况有以下几方面的基本原因:

  (1)对需求的理解分歧
  当客户向需求分析人员提出需求的时候往往是通过自己的想法用自然语言来表达的,这样的表达结果对于真实的需求来说是一种描述(甚至只是某个角度的描述),远远不能保证这样的描述可以得到百分之百的正确理解,也许在同客户交流的第一时刻埋下了理解分歧的种子,打一个比方说客户说我要的是大象,身子象一堵墙,耳朵象扇子,四条腿象四根柱子,尾巴象绳子,分析人员想,哦,墙、扇子、柱子、绳子这些我都知道,但是真的画出来的时候客户当然会跳起来了!这是理解分歧的问题,一般跟分析员的知识、背景,还有客户表述的标准程度、双方的交流情况有关。
  (2)系统实施时间过长
  一个大中型系统的建设可能要延续一段时间,当客户提出要求之后,他当时并不能看到系统的运行情况,当双方认为理解大概没有分歧的时候(事实上还会有个Deadline ),开发方开始工作了。当客户拿到差不多可以试用的产品时他可以实际操作,这时候他会对系统的界面、操作、功能、性能等有一些切身的体会,有可能提出需求变更要求。
  (3)用户业务需求改变
  当前客户的运营情况不确定,有可能客户行业的竞争度高,需要随时作出调整和反应,那么他们自然会经常提出需求变更的要求;也有可能客户所在的行业操作不规范,本身存在很多人为因素,这时候开发方更是需要随时准备应变。
  (4)系统正常升级
  有可能是来自开发方自身版本升级或性能改进、设计修正的要求出现需求变更,这时更是无法绕开这个问题的了!
  所以说算分析人员和客户之间不存在理解分歧,客户对于实际的系统还是会提出一些个人意见,算没有个人意见,他们自己的业务会变化或环境发生变化,这些都是无法避免的,所以不要梦想那么理想的需求分析,当你开始一个项目的时候应该意识到,客户需求变更一定会有的,那么对于这样的现状,我们该怎么办呢?客户是上帝,难道我们象以前一样,跟着客户的需求不停地修改软件,到后工期延长,员工疲惫,成本成倍增长,客户满意度降低,原来的设计也会改变得支离破碎,系统难以维护?