程序员成长的本质,就是一步步靠近商业


职业规划与职业发展是每个程序员经常要考虑的一个问题,每年的晋升,述职,甚至于跳槽都是需要去想的一个问题。那么程序员成长到后期,其成长的本质是什么呢?慢慢得出了一个结论,就是一步步靠近商业。
我之前想过,程序员发展到后期基本上围绕于三条路:
- 专研技术:持续的做技术底层
- 领域架构师:具有更宏观的行业经验,属于行业专家+架构师
- 管理:从基层组长、经理、总监到VP,不同阶段所需要的能力是不一样的
然后我们再来看下各层leader的OKR是怎么定的:
- 高级总监:持续的提升研发效率,快速交付业务
- 总监:加强团队沟通,完善产研流程,保证业务交付
- 经理:整合业务系统,减少重复开发,提高能力服用,建设排查工具,AB团队轮流进行需求开发
- 小组长:XX系统整合,完成订单、商品、供应链模块下沉,抽象出数据一致性组件,数据审计平台建设,完善核心链路告警配置,系统可用性维持在4个9,核心接口耗时150ms
我们可以看到从上到下一层层的更加具体,到执行层就是具体的一些工作事项了。而上层一层层的就是更靠近商业本身了。
比如持续的提升研发效率,目的是业务需求的快速交付,背后的意思是产品快速交付市场,培养用户习惯,和竞争对手拉开差距,抢占用户心智等。
所以如果程序员不应该只去呆呆的完成技术功能,做好系统稳定性和性能是程序员的天职,在其之外,我们需要考虑这个需求是服务于哪个大的商业目标的,这样你既可以知道一个大的商业目标,也可以知道服务于这个商业目标需要做的事情,时间久了,你的竞争力和业务敏感性就出来了。
再举一个例子,在电商交易流程中,基本是围绕于下单、履约、售后完成的。
那么履约过程中,如果服务于老板的那句“提效”有哪些可以搞呢?
比如我们的接单流程是用户下单之后,我们通过MQ接收到订单,推单到商家,商家接单,操作,完成之后骑手接单,发起配送再完成。
我们所负责的系统里面是围绕于接单、推单、发单这个环节的,经过系统分析和链路分析,以及到店观察,听取商家意见。
我们知道在推单过程中可能存在积压问题导致推单效率低,于是我们在MQ监听角度做了很多优化,分片、拆分等,解决了延迟,实现了用户下单商家即接单的效果。同时为了保证商家可以更准确接单,提高稳定性我们也做了多个通道的触达,解决了某一个通道不可用时,商家丢单的情况。当然还有其他的保活机制。
在接单之后的操作环节,商家提出有的场景在品类上是“冷热饮”,但是用户要求多加冰,商家经常误操作,制作出了一个热饮,导致得重新操作,无形中浪费了商家和骑手的时间,于是我们在品类拆分上做了一些事情,比如拆出“冷饮”和“热饮”。商家就减少了误操作。
虽然是很小的一个优化,但是体现出了程序员在业务能力上的精进,不是简单的完成CRUD,而是去思考其背后所服务的业务目标,最终在产品上体现的是商业的目标。
所以程序员后续的持续精进,是需要思考目前做的技术需求和商业目标或是业务目标是什么。