技术与需求的关系

    作为技术人员,有时候会追求技术,在追求技术的过程中,导致项目出了很多问题,总结了几点,以免以后再犯相同的错误:


    首先,在项目中不要使用不能完全掌握的技术。技术的更新迭代周期非常短,有时候,新的技术还没有学习掌握好,更新的技术又更新了。导致在项目中,往往会使用到还没有掌握的技术。有时候,看到某项新技术的某种特性,对解决项目中的某些问题非常合适,于是没有仔细研究就匆匆上线了。结果,真要需要新技术解决问题的时候,才发现,新特性的使用,需要前置许多条件,而这些条件在项目中是不满足的,如果需要满足,则需要进行大量的重构乃至重写,浪费大量的精力,得不偿失。这还是不危险的,以前还遇到过这样的情况:项目接近结尾了,数据量、功能都上来了,才发现新技术有致命的bug,效率满足不了,而应用的新技术,恰恰是项目核心技术,最后没办法了,只能是项目推倒,重新来一遍。所以,在项目开发中,一定要使用成熟的技术,哪怕是你不掌握,也一定是经过很多人的使用,被证明是没有问题、成熟的技术,不要试图在项目中一边开发、一边学习、一边验证。如果必须使用新技术,需要在正式应用前,做好足够的测试工作,起码保证项目的基础需求。


    其次,技术是手段,是需求实现的方式,是为项目目标服务的。也就是说,技术是仅仅是需求实现的一种载体。需要明确的是,实现某个项目,可以使用很多技术,利用多种手段实现。项目实际选择的技术,并不是唯一的技术,而是多种技术中权衡后,选择了比较有利的一种。再次强调“技术是载体”,技术不是最终目标,一定要以项目需求的实现作为最终目标。如果技术手段不能满足项目的最终目标,请更换其他技术,而不是因为技术的限制,去更改项目目标。如果这样做了,有点像“买椟还珠”。本来目标是卖珍珠,结果光顾着装修盒子了,忘了目标,把盒子弄得五颜六色的,很漂亮。可能,有人像是“买椟”那个傻子一样,看中了盒子,满意的走了,但真正买珍珠的人,是不会看盒子的,看的还是珍珠。所以说,有时候,技术只能做“噱头”,或者在背后默默的工作。项目实际上线后,真正的客户不会去关心你到底使用了什么技术,而是看自己的目标达没达到:功能是不是好用、操作是不是方面、界面是不是绚丽、展示是不是丰富、提醒是不是及时。至于这些功能是用什么实现的,客户是不关心的,除非,需要宣传或者其他的目的。比如前一阵子的物联网、现在的大数据,介绍技术的时候,都得说使用了这些最新技术,但实际上,呵呵。


    最后,需求是第一位的。再次强调这点。其他的工作,都应该围绕这个进行服务。要分清主次,千万不要各种原因,去擅自更改客户的需求。经历了这么多项目,满足了客户需求的,才能得到客户的认可;否则,项目就是慢慢等死了。


    PS:说个案例。个人觉得很经典。

    行政机关,下面有A、B、C三个部门,原来的各个部门之间是独立工作的,之间没有直接的业务往来,但服务对象都是行业内的企业,口径略有不同。现在,机关上线了信息化管理系统,为了实现信息交换,避免信息孤岛,系统内使用了统一的企业。

     这就导致了一个问题:部门的实际业务并没有关联,万一某个部门随意修改数据,影响其他部门怎么办?技术给出了解决方案:企业可以随便曾,一旦设计修改、删除等操作,必须经过比较复杂的流程,由管理员审核然后修改。

    技术人员的理由非常充分:企业信息是关键信息,不能随便修改,必须保证数据的真实性....等等。但实际上呢?部门的业务人员操作会非常麻烦,尤其设计一些非定量的信息,如企业简介这样的,一旦发生笔误,需要修改,或者企业某项信息发生改变需要修改时,都需要经过复杂的流程。这与业务实际完全不符。业务实际是,各部门还是维护与本部门口径相关的信息,不会理会其他口径相关内容。在使用者看来:我修改我的业务,还得各项流程管理员改,完全不合适。

    这就是一个典型的技术改需求的案例。确实,技术上需要保证企业信息的唯一性,方便后面的查询统计。但你不能因为你的唯一性要求,去更改业务的操作。其实,更好的设计,应该是既能保证唯一性,又能保证业务操作方便性,简单地说,就是增加设计复杂度,把企业的信息分的更细致。当然,技术人员一般都比较懒,不愿意这么干。

    其实,这里面还有一点需要特殊说明的是:其实,考虑到系统应用场景,系统可以不必要设计的那么复杂,完全敞开了让大家改。为什么呢?因为这个是政府机关使用的系统,而且登录的都是实名,完全没必要担心有人会随便乱改数据。一般更改就是两种情况:确实笔误,输入错了;实际信息确实发生了更改。想想啊,大家都是机关的人,哪怕是可以随便改别人的数据,也没有人傻的去试试看。

    这其实是另外一种角度。也就是说,项目在设计实现中,一定要考虑配套的制度、应用的场景。不要一直限在项目本身上。有些考虑完全可以放开,由相应的制度、场景来处理,系统只要做好必要的验证就行了。要分清楚,那些是系统做的,那些是系统之外的人决定的,不要想着由系统完全的取代人来处理,也不要想着所有的事情都由人来做。怎么做到合理的分配呢?以前也说过,重复性的劳动,交给系统,有脑力参与的识别判断,交给人。系统可以替代部分机械重复的脑力,比如,不要让填报的人考虑两个输入之和,但定性的东西,也就是没有严格定量标准的时候,原则上系统是不参与的,如判断输入的这些话合不合适。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值