相信做软件开发的我们,大家都有这样的体会,当我们辛辛苦苦的熬了几个月的通宵、加班后,终于完成了客户提出的V1.0功能需求,当我们大家准备按部班的进行系统上线时,客户、企业用户突然改变了需求,不想这么做了,提出了新的需求,新的变动,这样对于我们整个团队来说,正如晴天霹雷,很恐怖的事情啊,因为有时候,用户只是简单的一句话,但是对于系统的调整来说工作量是非常大的。
  需求变更,本应是客户的权力,但也是实施顾问的为难之处。如果确需变更,当然要满足客户需要。问题是不能让变更权力滥用,把一些无关痛痒的变更宠惯养成堂而皇之的变更。记得在做各个事业单位系统的时候,对于客户提出的变更,无论大小都给予解决,客户对此是非常满意,然而,项目进度却拖的很长,项目一再延期,这样导致开发小组中的部分成员有些不耐烦了,来一点需求,修改一点,这样确实很烦人的啊.
  但是如何我们对客户的要求一概不理,自顾自地按照初的需求和计划实施,终很可能由于没有用户的参与,使得系统与用户的需求相差甚远,导致验收通不过,公司的利益受损,对于客户来说,达不到需求的满足也浪费了投资事实上,客户不满意,则项目不算成功,实施顾问辛勤劳动后只能落得个“没有功劳,只有苦劳”的份。
  但按前一种“谦虚型”做法,完全顺着客户的意见走,客户满意度一定会高吗?其实也不一定。由于需求变更会带来工作量的大量增加,甚至可能会出现大量的无效劳动。而且,频繁变动的需求也会导致实施质量下降,留下许多隐患。因此,一味的迁用户将会使进度一拖再拖,实施方案一改再改,变更越来越多,士气越来越疲,公司越来越不满意,用户越来越急。到后,实施顾问会发现这个项目已经成为了一个“不可能完成的任务”。
  需求变更为什么总是做不完呢?
  现实中的软件开发是这样,新开发的软件不可能一次性全部都提出来,可能客户自己都不知道自己想要开发软件是什么样子,只是简单的实现他自己的功能,咱们做出来的V1.0使他们逐步的有意识的帮助他们理清这个软件的样子。
  需求变更的表现形式是多方面的,如客户临时改变想法、客户的习惯、项目预算增加或减少、政策的改变、客户对功能需求改变等。
  我们要正确的认识客户的这种需求变更,应以对等的心态来面对!
  需求变更引发的一系列问题:
  1:需求模糊了
  在我们开发软件的过程中,对客户的工作环境、流程的不熟悉,对业务了解的不深刻以及政府部门的项目经常受的政策的变动而影响等等,我们拿不准客户真正想做什么了?来回的变动使我们有些迷茫。
  2:系统的灵活性差
  满足客户的工作习惯、新功能的拓展、算法的灵活性、细节的增删改查,极大的反应了系统的灵活性太差啦,后期的维护基本上都是超过开发时间的两三倍时间。
  3:开发周期延长
  需求的变更,使得开发周期延长给开发小组人员一种意识类似进入了开发周期“无期徒刑”,大家毕竟每个人的事情任务也很多,需求的变更,导致了开发周期的加长,修改这个、又改那个,修改这个对其他部分的影响变动很大,系统各个部分的耦合性太大了。
  没有阶段性成功的标志,每天在加班加班中进展的度过,应该项目经理给一周应有一个总结性的会议,展示一下大家自己的成果,也算是给自己的奖励吧。
  4:开发人员心态变化
  大家不淡定了,着急了,慌了,不想干了、个人心情会影响到整个团队、团队的士气低下,大家开不足马力来工作了,这样势必会影响整体开发的进度。
  5:自身定位不足
  我们不是一个人在干一件事,是整个团队再做,不是自己那一部分完成了,完事大吉了,组员之间要互相交流,沟通好相互交互的部分,为了我们的项目顺利达标完成!
  问题---总括
  面对用户需求的频繁变化,我们hold不住了,不能正确的面对,老是觉得客户的变更是不对的……
  当然我们要静下心来证实一点:客户的需求变更是对的,满足其工作需求、现实中的系统需求不可能一次性的全部提出,因此我们要以对等的心态来面对客户的需求。