• 需求变更的成本为啥着这么高?


    软件开发过程中,需求变更是不可避免的。

    需求发生变化的原因有很多种

    1,前期需求调研不充分,导致错误理解需求

    2,客户对需求的描述,认识不准确

    3,需求分析人员能力差,输出错误的需求

    4,随着时间推移,需求确实发生变化

     其中,1和2是比较常见的原因。也是主要的原因。

     需求发生了变化,那开发是不是要进行调整呢?

    答案是肯定的,软件的目的就是为了满足客户的需求,不符合客户需求的软件是没有价值的。

    前期需求调研后,客户对需求的确认,并不意味着后期需求不能发生变化,需求评审和确认只不过是一种仪式,他可以促使客户相关方重视需求确认工作,而不是把它当成可有可无,形式化的东西。确认后的需求可以变更,但是需要走变更手续。代表需求的严肃性。

     需求的变更发生的成本到底有多大。对同一个变更,有人说很小,有人说很大,到底谁对谁错,如何评估。尤其是直接客户,会很不理解:我就提了一个简单的需求,怎么开发的周期这么长?

    在实际开发中,客户提了需求变化,有的项目人员,甚至是开发人员就直接拍脑袋说了,小case,分分钟的事情,但往往事与愿违,实际交付时耗费的工作量成倍增长。

     我们以一个例子来讲解为何需求变化的成本高,为何需求变化的成本难以测量。这个例子中的大部分都是我N年前做的一个项目发生的真事。

    一天客户过来说,希望能在组织表中增加一个组织简称。

    为什么?是因为老大年纪比较大,眼神不好,电脑设置的字体比较大,组织表的字段有比较多,光组织全称这一栏就占了小半个屏幕。因为组织的全称是带了集团名字的,比如"▓▓▓▓▓集团股份有限公司人力资源部",18个汉字。老大希望只显示"集团人资部" 5个汉字就行。

     这个需求合理吗,非常合理!在项目前期需求确认时,确认组织字段时给漏掉了,或者说没有人注意到这个事情。

     开发人员和客户简单沟通后,说不复杂,半天就加上(后来问时,开发人员说还有所保留,加个字段也就是10几分钟的事)。客户嘟囔了语句说,不就加个字段,还要这么长时间,好吧,我给领导说下。就走了。

     不大一会,开发人员说做好了,也测试了。

    他做的工作就是:

    1、在数据库中增加了组织简称这个字段:ZZJC,长度为10个汉字,

    2、配置到系统元数据中

    3、修改组织查看和变更界面,将组织简称放在全称后面,显示宽度为 10 。

    4、测试无误

    5、中午发布到生产系统

     然后,下午告诉客户改好了。客户看了看,说没问题,就是这样。

    事情到此就为止了吗?

    ….那就好了。

    第二天客户有跑过来了:“查询里为啥不能按简称查啊?”

    开发人员:好好好,我马上修改“。这个系统,并不是表格里有什么列就可以按照什么列查询是需要配置的。打开快捷查询配置界面,需要配置查询配置id,增加上 简称的快捷查询。

    下午,用户在qq上发来一个截图,说在组织人员表这个查询上,部门名称换成简称,否则查出来的报表A4纸打不开,太宽了。

    报表设计人员,打开帆软报表设计器,找这个报表,没找到,因为在将报表注册到系统的时候,修改了报表名称,实际的报表名称与用户看到的不同。

    只好又打开报表注册功能,找到这个报表的实际名称,在设计器修改,修改数据源sql语句,在报表上增加列,保存,发布。完活。

    但是在系统中打开报表的时候,发现设置的宽度,不正确了,它按照页面自适应了。:(。原来报表设计器有个bug,一旦增加或者减少了列,他的自适应属性就变了。需要手工在修改过来。30分钟过去了。一张报表就为了增加一列,差不多1个小时。

    其他报表呢,暂时不该了吧。(这个有为后边挖了个坑)。

    下面列出了以后断断续续做的其他修改,跨度一个多月,陆陆续续发现,陆陆续续修改的,就不仔细说了:

    1、视图报错了。有一个视图用到了组织表,因为组织表的表结构变化了,导致整个视图状态为invalid,不可用,所以这个视图需要重新构建。为了保险起见,将所有的视图就检查了一遍。

    2、日志没有记录对简称的修改日志,需要修改触发器。系统的修改日志时通过触发器来实现的,新增了部门简称,但是触发器没有同步修改,导致修改简称没有记录日志。

    3、在人员编辑界面,也希望显示简称,而不是全称,没必要。

    4、选择组织的所有窗口都要修改。因为要根据简称查找过滤。

    5,接口。因为简称设置为不能为空,因此提供给身份系统的接口要修改,避免下发组织机构数据是出错。

    6,说明书修改。

    最后算下来,增加个简称,耗费了至少10个人天的工作量。按照¥2000/人天费用计算,一个看似很小的修改,带来的成本是 20000!

    我们分析下成本,主要包括5部分:

    1,沟通成本。需要和客户频繁沟通,以便充分理解需求,达成一致。不仅仅是直接需求,还包括间接需求(连锁反应)

    2,开发成本(编码,修改报表,测试,相关变更)

    3、发布成本

    4、文档变更成本(开发文档,手册)

    5、变更管理不善带来的间接成本(频繁修改开发计划,频繁与客户沟通)

    这还不考虑修改程序可能会带来的潜在的bug、修复bug的成本,以及带来的不良影响。

      

    这个事情给我们的启示:

    1、不要小看任何一个需求变更。

    2、需要有经验的人员一起对需求变更进行的评估,评估的内容:需求的合理性,需求带来的连锁修改,所有修改的工作量。

    3、需求评估完成后,要把评估结果与客户进行沟通,让客户理解需求变更具体内容,尤其是关联修改,得到用户的认可与理解

    4、小case,没问题,这种话要谨慎。任何一个变更,在认真评估前,都不能说是小case。

    5、开发人员不建议直接面对客户。尤其是一些菜鸟。

  • 相关阅读:
    你真的理解clear:both吗?
    动态修改DataSet的列名,GridView动态绑定列
    word2007 添加批注后怎样让文档内容不向左移动 保持不变
    【转载】哪个OA比较好,18家常见OA系统全方位大阅兵
    短线选股的四大核心要素
    ASPX页面的缓存OutputCache
    OA产品的边际竞争者
    老股民经验之谈 这些股票买入必死无疑
    Word 2007批注及批注者姓名修改技巧
    ASP.NET中httpmodules与httphandlers全解析
  • 原文地址:https://www.cnblogs.com/senline/p/12177096.html
Copyright © 2020-2023  润新知