引子
先来思考一个问题:怎么才能不被需求牵着走,轻松愉快有成长有技术含量的工作?
一个系统的发展,可达到三个境界:
第一境界:支撑业务
第二境界:快速支撑业务
第三境界:引领业务
支撑业务
需求来了,就根据具体需求制定方案,对应需求,需求被满足之后下一个需求又来了。这时整个系统的演进处于一种被动状态,在需求多的情况下,开发人员往往疲于奔命。
快速支撑业务
对未来产品的演进有一定预见性之后,就可以提前规划,找到整体最优解。避免被动对应需求和重构之间的囚徒困境。
如上图,作图法由上面的步骤式变成了要素式的图解。快速支撑业务不是在需求的驱动下一步一步完成,而是自己将自己的时间片分成主要的3个部分,将大块时间用在抽象和重构上。
引领业务
二十一世纪开始,在互联网领域,技术是推动行业的领跑者:B/S架构使用浏览器/服务器模式取代传统的C/S客户端/服务器模式;移动端开发份额超过网页端;大数据的崛起;区块链的流行;AI的王者地位;云原生生态。这些都是先有技术再产生需求,技术驱动了产业的发展。
如上图,作图法由要素式改成了聚焦式的图解。引领业务将核心聚焦于未来规划,需求跟不上技术的脚步,主要还是技术自己发现问题解决问题的情况多于产品需求。这更多是一种系统运维的工作。
为什么要系统演进
破坏系统可用性最好的方式是让系统长时间不进行任何修改和变更。当业务在发展变化、外部环境在发展变化的时候,系统终究会需要变更。而长时间的缺少维护会让代码过时,不能表达其要表达的意思。开发人员由于对代码生疏,会产生一改就出问题的悲惨局面。
技术是第一生产力。境界越高,主动性越强,有更多的时间主动发现问题,包括可用性、稳定性的问题。
怎样系统演进
正反馈循环
系统演进与系统可用性正相关。早重构、常重构。持续迭代,让系统保持生机,进入良性正反馈循环。
立体研究分析
即:纵向迭代、横向竞品与业务边界分析。
发展生态
在开发完善一个产品时,会产生一些附属产品。从附属产品中找到价值点,做大做强,形成新的产品,最终形成一个产业闭环。
总结
流水不腐户枢不蠹