开发认知提升
开发时要站的角度
不同人提的需求所站的角度是不同的。所以我们在不同角度去采集需求,设计出来的东西也是有很大差别的。我一直认为,底层的设计很重要很重要的,你开发时所站的角度不同,就会影响你底层的设计方案,如果底层设计的方案偏了,那么可能以后你要在这个功能的基础上继续进行开发的时候,发现根本无法进行下去,或者很难进行下去,最后只能推翻这个不合理的底层设计了。如果这个底层结构的相关功能已经扩展很多特别制定的功能了,那么要推翻的代码就多了,甚至如果这个要推翻的代码被太多地方使用了,你要是修改可能会出现很多难以预知的 bug,那么你推翻可能都不好推翻。
从业务操作人员角度
业务操作人员,他们提的需求只看自己负责的这个业务操作是否方便,不会管系统整体的布局的,并且很可能他们的视角就没有想过为什么公司以前要使用现在这样的操作流程,这个操作流程很麻烦,但是自己也不知道要这么操作的原因。所以,如果你的开发时,如果是站在他们角度上进行设计的,那么你看到的东西就会很片面,很局部。他们不知道这个操作流程要这么设计的真正原因。你按照这个片面的角度开发后,随着你对系统的理解越来越深,你可能就会发现,之前站在业务方设计的结构不很合理,这时,如果这个业务要扩展了, 要站在之前设计的模块上进行开发,然后你看到自己你当时设计的只是解决了业务方眼下的问题的代码,你自己都要吐血,你会发现新的功能按照之前的设计结构去开发,很难进行。甚至你可能会发现,之前业务方的操作流程都是不合理的, 而你的代码就是按照之前业务方这个不合理的流程开发的,那么你这个模块可能就需要整个重构了。
因为业务方看到的问题是很片面的,他们只看到一个局部的内容。他们都不知道为什么是要用现在这个流程来工作,他们只知道,老板或者上级要他们这么做,所以他们才这么做了。他们不知道这么做的原因是什么。并且甚至有可能从整体的角度来看,老板当时设计的流程就是错的,是不合理的。
从老板角度
老板去看问题是在全局的角度看的。并且老板会想以后的规划,想以后系统应该如何发展。
我们开发的时候如果从老板的角度去看问题,去设计我们的代码,那么会更有前瞻性。并且我们也要知道原来那个流程是为什么要那么做,是为了解决什么问题?现在从我们公司的实际情况,现在系统的拥有的东西去看,原来的流程是否需要进行修改,是否需要进行合理的调整。从老板的角度来看问题,那么我们还会知道未来业务的走向是什么,这样我们才能为未来的开发铺好路。
我们开发的时候,还需要知道老板开发这个模块的这个功能的初衷是什么,目标是什么,然后我们再去开发,才能达到老板希望的到达目的地。比如开发排产相关的模块,我后面就知道了,老板是为了去达到通过销量数据完成预测生产方向的功能。并且通过 bom 等其他模块的信息,可以到达预估原料需要多少。通过配置标准打样时长,可以在可控的成本下完成老板的生产,并且也不会多发工资。这整一条的链路你要是都懂了,你去开发,就会开发出老板需要的系统。很多老板是很高明的,他们脑子里那一套东西是一个闭环,是巧妙的,我们需要站在老板的角度去开发,这样我们也会有老板的思维(也会让你有项目经理的经验),就像这个公司是自己的一样,自己和老板参与讨论,参与设计,然后整出一套老板和自己都满意的体系。这样的操作,其实就是从整体上设计系统,从需求的源头去开发,我们只要能达到那个目标就行,目的地明确。如果我们只站在业务方考虑系统的设计,那么你可能会走偏。
总结
设计整体系统和需求的时候,要站在老板的角度进行设计与开发。但是我们也需要考虑到业务方的实际操作情况,我们要做到,他们实际去操作能方便,能符合人机关系,这个我们提出的方案要符合现实情况,具有可行性。如果我们提出的一套方案在现实中根本无法实现,那么我们的设计也是不好的,所以说,需要考虑业务方。总结:大的框架从老板的角度看问题(甚至可以和老板一起设计),具体设计时,要考虑现实情况,所以要去询问业务方意见(不一定全部接受,只接受合理的意见),看这套方案是否存在问题,是否有无法克服阻力。如果是你在整体的角度去看,发现原来的流程存在问题,你也可以打破原来的流程,重新规划业务方的操作流程。
个人站点链接
我的博客链接:https://blog.yimengtut.online/