系统开发流水线建设
起~~~
开发一个系统,就是生产一件产品。因为是软件,所以这件产品是想象意义上的产品,我们称之为想象现实。要开发一个可用的系统,需要客户,产品经理,架构师,项目经理,开发工程师一致的集体想象。而集体想象的沟通的工具为:数学意义上的,状态机模型。
逻辑模型的设计(产品经理的职责)
产品经理按照业务需要和客户想象,梳理,设计出,状态机模型。这个状态机模型对应的,就是一个业务流程的生命周期模型。对于电商系统来说,也就一个订单的生命周期模型,实际上也表示了买卖的流程。
状态机包括,状态和事件触发的状态转移。产品经理确认了生命周期的各个状态之后,就应该考虑状态转移的细节。状态转移,可以按照三个部分设计,知识库,规则,控制逻辑设计。知识库为数据库相关信息在内存的一个快照。知识库是广义上的决策库。作用是程序做自动推理的时候,使用的决策集合。规则,就是基于决策集合的业务逻辑。
流水线设计(架构师的职责)
架构师主要做的工作,就是更加业务需求设计流水线。架构师工作的方向,就是业务的复杂度。复杂度可能为高并发,高存储,业务的复杂等等。
模型的实现(码农的职责)
对于码农来说,工作对接的是产品经理生产的产品需求文档,prd。开发按照prd的状态机模型,翻译抽象实体的数据结构,例如商品,订单。按照触发事件,编写触发算法。数据结构+算法就足够实现需求了。
铁打的算盘,流水的兵。为了让流水的兵可以高效工作。需要在代码层面进行设计。代码组织的层面上,有了模板,套路,流水的兵也可以高效得干活。
状态转移的设计,按照知识库,规则,控制逻辑实现。流水线上,就应该沉淀出一套开发框架。码农按照这套开发框架,就可以高效搬砖。
流水线监工(项目经理的职责)
项目经理主要从大局的角度管理整条流水线。主要职责是监督整条流水线的生产效率。理想的项目经理,应该是一个技术型的leader 。不懂技术的项目经理,很难对细节敏感,对风险的识别也不够好。项目经理,主要做的就是map/reduce 的工作。map是分发工作任务,reduce是归并工作结果。
全栈(所有角色的职责)
按照技能分工,会有一个很明显的缺点,就是出了问题,大家都会甩锅。所以大家对于合应该要有一个共识。分工最后合不起来,一切都是白搭。项目参与的所有角色,都应该有一个合起来的心。架构师,产品经理,项目经理,码农,客户,应该每天都保持集体想象的一致。每个人都有负责一个角色的任务,但是每个人都要在更高的维度,全局的视角,看到自己每天做的事情。
合~~~
集体想象是所有角色的原型。产品经理负责生产prd,架构师根据prd需求设计流水线,码农根据prd,在流水线负责生产代码,项目经理主要负责监督流水线的生产效率。全栈是所有角色对自我的要求。