程序员知识体系探索:点、线、面、体

想写写"点线面体"有一段时间了,但一直未动笔,怕说不好。

最近,我经常也在说,某某是点状的模式,没有形成体系。那么对于自己也不够那么清晰的内容做一下梳理还是非常有必要的。知之为知之,不知为不知,是知也!

曾鸣教授:点线面体

曾教授在得到app曾经开了一个免费的讲座,智能商业二十讲。里面有一章:

第八讲 新定位—点、线、面、体。教授说,现在如果有人再来找我讨论企业下一步发展战略问题,我经常反问的第一句话就是,点、线、面、体,你的定位到底是什么?先得明确这个问题,后面一系列的问题才能展开讨论。

点、线、面、体,每一个定位背后,逻辑是不一样的,需要的运营原则、资源调配的方法,甚至竞争壁垒,最后可能的发展路径都不一样。 所以先明确自己在未来网络化世界的定位,是决定企业发展方向的第一步。

面,是通常意义上讲的平台或者生态型的企业,典型的例子是淘宝。面的核心,是创造新模式的可能性,它要广泛地连接不同的玩家,换句话说,面起码是一个市场。

点,是这个面上各种各样新的角色。比如说在淘宝上有很多丰富的角色,从卖家到给卖家提供物流服务、模特服务、软件服务,甚至是代运营服务的商家,这些角色都是淘宝这个面上的不同的点。

640?wx_fmt=png

在淘宝平台这个面上,要让淘宝卖家赚点钱,淘宝才能发展。模特服务、广告服务等都是为线(卖家)或者面(淘宝平台)服务的。难得的是,这些点和线形成了网络协同效应,这样就比纯粹上下游关系的模式多了很多种可能。

640?wx_fmt=png

那么由面,如何形成体呢?同样是阿里巴巴这个例子。虎嗅网曾报道过2017年阿里Q4财报,披露业务板块如图所示:

640?wx_fmt=png

这里跳过财报细节,可以看到电商、云计算都形成对应的板块,就是我们说的面。整合在一起就是“体”。当然面和面之间有协同和联动,让他们有机的在一起。

640?wx_fmt=png

梁宁:点线面体的战略选择

本模块第一节,我讲一个非常重要的战略判断框架。这是一个非常简洁的思考结构,叫点线面体。

点线面体是曾鸣教授的理论,他在得到App的课程《智能商业20讲》中做了阐述。我也从曾鸣教授这个新型的定位方法中收益良多。我和他说要在我的产品课里,把我的理解再讲讲,获得了他的授权。

梁宁女士在产品思维30讲中,讲的“点线面体的战略选择” 实际讲的是360的故事。

640?wx_fmt=jpeg

首先,瑞星通过低价干掉了江民、而360通过免费干掉了瑞星。注意划重点,这2场战役都是“点”上的竞争,这个点就是杀毒软件。瑞星在专注杀毒产品的基础上未形成面和体的产品体系。

640?wx_fmt=jpeg

360从一个免费安全的点入手,快速变成了一个安全平台,接着变成流量分发平台。这就是360的三级火箭策略。

360安全成功之后,通过搜索阻击百度,但这场仗输给了"势",就是移动互联网。今天我们可以看到,很多搜索是在app内部的。

640?wx_fmt=png

上图为某机构公布的2017.12国内app活跃度的数据。可见最hot的app,它的行业划分不是搜索。搜索已经内化为app内部生态的基础服务和能力。

如果你的面所承载的体是在下沉的,面做的再精彩,亦无法跟上历史前进的车轮。

程序员的点线面体

640?wx_fmt=png

这里先抛一张示意图,点线面体是一种演进。在各阶段还有细分。

点:我们首先定义为解决具体问题,比如实现多文件的上传下载。一个复杂度一般的系统owner,我们都可以暂且纳入到点这个层面。但其实system就需要一些系统化思维。

从系统owner到二级域 

640?wx_fmt=png

如上图所示,System的Owner,从系统的角度是一个点。但从功能(Func)到System的角度可以是一个面的变化。有平台能力视角、稳定性视角、运维视角。

那么,研发人员要迈出的一步就是,从完成功能A下载(点)逐步进阶到整体功能覆盖(线)、进而考虑多维视角:平台能力视角、稳定性视角、运维视角...

线:从但系统到产品线(二级域)可以理解为一种点到线的跃迁。之前考虑的是单个系统的职责、质量;现在要考虑一条产品线(N个系统)。

640?wx_fmt=png

从二级域到一级域

从产品线(二级域)到一级域,可以理解为由线到面的跃迁。

640?wx_fmt=png

在面的视野上,除了平台能力视角、稳定性视角、运维视角,可能又有了业务治理视角、业务运营视角等。

对于业务身份,你写的代码,是别人的噩梦吗? 这篇文章曾提及,使用扩展点的方式。

扩展点的设计是这样的,所有的扩展点(ExtensionPoint)必须通过接口申明,扩展实现(Extension)是通过Annotation的方式标注的,Extension里面使用BizCode和TenantId两个属性用来标识身份。


640?wx_fmt=png

业务身份对于业务层的跟踪和治理作用非常大,类似于技术侧traceId的可追溯性。

640?wx_fmt=png

如上图所示,全局架构可以称之为面; 对于足够复杂的一级域,亦达到了面的level。

640?wx_fmt=jpeg

从面到体,就技术人员发展而言,我认为有2条途径,比如从一级域的问题终结者到全域架构,视野俯瞰是整个公司的技术架构;也可能是从架构师角色走向管理岗,比如CTO。

由线到面 vs 由面到体

解决的是由线到面的问题,还是由面到体的问题 我认为最大的分解点在于是

1:是否是解决的问题域有足够的扩展,比如从一级域到全域架构

2:是否重新定义问题域、技术输出模式、产品模式或者商业模式

(二者满足其一)

我们可以看一个例子,电商系统发展面临的问题。有系统问题、业务问题、技术支持问题。鉴于问题域是整个电商平台(够广)、问题维度涉及方方面面(有较强复杂度),是达到面这个层次的,但是还不能称之为"体" 这个层次,因为解决的问题域已知比较确定的问题域。

640?wx_fmt=png

来源:公开演讲资料《蘑菇街每秒订单数25倍提升历程》

对比,聚石塔这个case,就可以看到由面到体的变化。

从输出技术、到输出产品、到解决方案。解决是不同层次的问题。

640?wx_fmt=png

来源:公开演讲资料《聚石塔电商云容器服务应用和实践》

总结:点、线、面、体在任何专业领域都可以采用的4要素方法论。小到一位贴瓷砖的工人,大到数万人公司的参谋长。4要素方法论对于程序员知识体系,也有不同层的划分,就研发体系、运维体系也有各自的细分。本文所列的观点仅仅代表业务发展到一次规模公司的程序员的发展和自我完善途径。


◇◇◇

本文来自我的前同事右军,《深入分布式缓存》一书的作者,蚂蚁金服高级技术专家。他的公众号技术琐话,以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。识别下图二维码关注他,可以看到更多干货。

640?wx_fmt=jpeg

阅读更多

没有更多推荐了,返回首页