技术服务于业务
我觉得这句话应该按逆序来理解,即理解顺序应该是①什么是业务、②怎么服务、③什么是技术。
什么是业务
业务分为3种:1、满足了什么需求;2、解决了什么问题;3、使用了什么解决方案。
“需求”和“问题”好理解,这里解释一下什么是“解决方案”。解决方案就是为了实现需求或解决问题所制定的流程。所以解决方案也可以叫作业务流程。
怎么服务
一句话,就是“将解决方案落地”。
什么是技术
技术分为2种:1、技术开发;2、技术流程。
先说技术开发,开发的对象一般有2种:应用软件、系统服务。程序员用合适的操作系统、框架、编程语言把它们开发出来就算完成了。
再说下技术流程,一个解决方案/业务流程的落地办法就是我们说的技术流程。有时候一个解决方案存在多种落地办法,即多种技术流程,我们需要根据实际情况选择最合适的一种。
举个例子
在定点零售药店购药的时候,如果消费者要进行医保支付,药店需要将费用明细上传到医保信息系统才能计算出医保账户应该支付的金额。
上面案例中,需求是“计算医保账户应该支付的金额”,解决方案是“药店上传费用明细”。接下来就来考虑如何将解决方案落地。
药店的终端一般有2个:PC机和POS机。所以费用明细可以是PC机上送也可以是POS机上送。也就有了如下2个技术流程。
然后根据实际情况选择一种最合适的技术流程实施即可,个人觉得第一种技术流程更贴合实际。
为了开发这个技术流程,我们需要用到windows系统、android系统、Java编程等。
最后我们来整理下上述内容就得到了下图。
。
但是现实往往很残酷,我们程序员在接手项目时有的时候只有接口文档,而接口文档里面就只有接口,没有调用流程。这种情况下就需要我们自己去研究这些接口的目的是什么,也就是这些接口可以满足哪些需求或者解决哪些问题,然后再研究这些接口的调用流程,也就是技术流程,最后由技术流程反推出业务流程。
研究完毕后不应该急于开发,还需要将需求/问题分类,整理出若干个模块,一个模块代表一个类别的需求/问题。然后整理出下面这张表。
我们在项目沟通时很少会说“某某需求满足了没有?”或者“某某问题(业务上)解决了没有?”,而是说“某某功能做好了吗?”。毕竟“功能”就是用来满足需求或解决问题的嘛。所以我们可以把上图中的“需求/问题”替换成“功能”。
如果你可以分析出一个项目有哪些模块,每个模块有哪些功能,每个功能的流程是什么,那就说明你已经对这个项目非常熟悉了。
如果你是一名项目经理,分析完项目后就可以将项目按照模块或者功能点分配给组员,然后再指定完成的时间节点,这样就可以有计划地管理项目了。
结尾
本文谈到了我对“技术服务于业务”的理解以及接手新项目的方法,这些都只是个人的一些体会和感悟,还望指教,不喜勿喷。