自己工作九年多以来,曾供职过多家公司,也参与过众多项目,前后参与的项目推到重来,不断迭代都是有的,以至于后来招牛人重新设计,重新开发,循环往复,不知道你层遇到过吗?
循环往复肯定原因是众多的,可能是技术上的不足导致的,也可能是业务上的变化引起的,今天我们主要谈谈业务上的问题,技术上的问题我们以后有机会再谈。
我见过大多数的开发人员一见到需求,就开始迫不及待的筹划多久可以做完了。殊不知你已经为自己挖了一个巨大的坑,要吗以后自己填,要吗别人填。别人填估计都在骂,这TMD谁设计的,这么烂。
从我自己的一些过往经历来看,我觉得我们从以下几个维度来理解需求。
第一:需求三把斧考量需求。
1.需求方到底要干什么,目的是什么,价值是什么,适用场景是什么;
2.在第一点搞清楚的前提下你要去思考这些需求合理吗?
3.有没有更好的解决方案?
比如互联网金融银行对账需求,银行交易流水和平台交易流水需求方提出每天每隔2小时跟银行做对账。
对账的目的是什么,解决什么问题?假设你100%肯定互金平台和银行的账每天都是平的,我们还对什么账?你当然可以否掉这个需求。当然这种假设成立的可能性很低,在系统中难免会有账目不平,显然这个需求是非常有必要的。
另外一个问题就是每两小时对账,这个需求就非常不合理了,首先白天的时间里业务系统是很忙的,为什么要占用这些时间做这件事情呢?对账我们可以在系统相对空闲的时候再做,因为这个过程相对来说不是那么核心。
最后一个问题既然对账不可避免,那么我们的对账功能只是一种业务上的补充,因此系统设计上的中心还是要提高系统的健壮性,避免账目不平的问题,比如每天20000笔交易账目不平,那么每天的对账就是非常恐怖的,并且这么不稳定的系统一定会吓走用户的。
第二:多跟需求方交流确认,确认你说的是她们想要的。
经常出现做出来的东西不是对方想要的,要吗需求方妥协就这样好了,要么推翻重来,项目延期。
如果多次这样,你在领导面前也就基本定型了,年终奖加薪你也就别指望了。
第三:把自己作为第一批用户
去用自己的产品,多去论坛看看用户对自己做的产品的评价,好的不好的都要看,尤其不好的评价,客观的来讲100%满意的产品是不可能的,但是100%满意是我们毕生的追求和目标。
你的观察能力,发现问题的能力,以及你对需求更深入的思考和见解能帮助你更好的需求。
总体来说,在理解需求方面一定要结合自己的认识,深入理解需求。这样后期的返工也就少了,加班自然也就少了。