QCon 线下会议终于来了,但这次的分享有一些意外,不是性能、架构、内核、缓存,而不是AI实践相关的内容,论坛的主题是“工程师成长实践”,而我的topic 是“工程师成长的金字塔思维”。本以为这是一个非热门话题,却出现了爆场,有些不可思议。
会场上有很多现场的发挥,本文就作为PPT的一个简要版本吧——
“练拳不练功,到老一场空”,工程师成长的基本功是什么?是知识和技能吗?个人觉得可能是思维方式和思维习惯。面对问题, 不论是分析问题还是解决问题,金字塔思维都会为我们提供极大的助力。
按照规矩,自我介绍无法跳过。恰逢新的译作出版,所以《持续架构实践》一书放到了中间的位置。 遗憾的是, 在机械工业出版社的展台上, 这本书昨天售罄了,去展台的朋友可能要空手而归了。
右上角的公众号二维码,恰好可以尝试宗刚老师在第一场提出的一个问题。“日拱一卒”,如果服务保证每天成长1%,那么是否可以降级为每周成长1%,复利的效果仍然是可观的。但如何界定1%的成长呢? 每周输出3000字或许是一个可以借鉴的衡量,可以是工作日志的再利用,也可以是心得体会,可以在公众号输出,也可以是个人博客。
本次分享的主要内容是从解决问题的思考方法开始的, 然后分别以金字塔的思维方式来思考个人的成才以及研发中涉及到的工作, 最后对其演变进行简单阐述。
引子来自吴军老师对工程师的层次划分,同样是一个金字塔结构。或许,如果用各大厂的职级划分作为例子可能更容易被大家接受和理解,例如在百度,T5/6/7/8/9/10 到底有什么区别,大家对此的兴趣可能更大。
在自己的公众号文字中,多次提到“讨论问题的前提是概念澄清”,工程师的成长伴随分析并解决问题的过程,对于一个好问题, 答案往往就在问题当中。
对于解决问题的一般方法,波普尔的知识进化给出了相对清晰的描述。提出问题,然后枚举所有的解决方案, 进而进行排序与权衡,得到当前的最优解。权衡非常重要, 可以说,权衡贯穿着软件架构的始终。但是,软件系统是动态的,随着时空的变化,所谓的“最优解”会产生新的问题,从而进入到螺旋前进的迭代流程。
固定到计算机领域, 其思维范式同样可以通过金字塔进行结构化描述,详见《阅读札记:创新与思维范式》一文。
对于分析问题而言,金字塔思维实际上是一种结构化思考方式,关于金字塔思维的经典著作就是《金字塔原理》一书了。看上去很简单,但是,大道至简。
如何使用金字塔思维方式去思考问题呢? 主要是通过不同的案例进行阐述的。如果把工程师的成长分为工作和生活两部分,对每一部分都可以进行结构化思考。
在自我管理的金字塔中,体能是基础。身体是1,其他都是0。研发的艰辛,每个工程师都身有体会,有的时候,拼的是身体。但特别注意的是,情绪的影响极大,它的杠杆作用可以正向的,也可以是负向的。举个例子, 在情绪赋能的金字塔中, 喜悦的作用高于爱。 论语中就有这样的论述,“知之者不如好之者,好之者不如乐之者”。
面对问题, 如果给不出解决方案,往往是由于知识的不足。持续学习乃至终生学习,是工程师成长的必要条件。如何学?主动学习的效果肯定是高于被动学习的,希望我们可以把学习变成一个自觉的过程。
沟通往往是一个工程师所欠缺的, 然而,很多的沟通是无效的。如何判断当前的沟通是无效沟通呢? 识别了无效沟通,我们就可以拒绝这些无效的讨论。而有效沟通的最佳目标是求同存异,达成共识。
对个人成长,从自我管理,持续学习,主动沟通三个维度进行了结构化思考,那么,对于我们的日常工作而言,金字塔思维又是怎样的呢?
对于产品需求而言, 都会谈到马斯洛的需求层次理论,不论是5层模型还是七层模型,都是金字思维的具体体现。那么,对于我们所要创造的软件产品,我们是否使用过马斯洛模型进行过考量吗?
对于产品研发而言, 这里的例子是DevSecOps 的敏捷安全金字塔,这一金字塔来自悬镜安全的介绍,塔尖是CARTA即自适应风险与信任平台,隐约间,安全原生仿佛来到了我们的面前。
对于质量管理而言,以测试金字塔为例,阐述了各种测试方法对于业务价值的作用以及反馈周期的快慢, 其中自动化测试同样可以用金字塔作为结构化思考的方式。
前面谈到了3个流程,接下来再介绍3个领域。对数据领域而言,数据驱动已经被业界广泛认可,DIKW 模型也被大家所熟知,那么我们工作所采用的人工智能技术处于DIKW金字塔的第几层呢?
右侧的数据科学金字塔还描述了数据的处理流程,但为了实现塔尖的目标,我们是否真正关注了下面的塔基了么?
对于火爆异常的AI领域而言, 现在大家张口闭口都是“chatGPT”,那可能是通知智能领域,能够独立思考并解决问题, 但是,我们对运算智能、感知智能以及认知智能又投入了多少呢?
从人工智能的影响力金字塔可以看出,AI的影响力相当广泛,为什么?个人觉得,所有的控制平面都是AI的用武之地,这或许才是原因所在。
切换到嵌入式领域, 低功耗一直是困扰嵌入式设备的难题。如何系统地解决功耗问题,或许功耗金字塔给我们指出了可能的方向。
以一个又一个示例,都在反复描述金字塔思维是如何帮助我们对问题进行结构化思考的。 那么, 将变换和组合引入进来,金字塔思维有哪些拓展和演化呢?
如果将金字塔模型倒,会形成倒金字塔模型,也就是我们常见的漏斗模型。无论是营销漏斗还是交易漏斗,关注的往往是转化率。
如果将金字塔模型组合起来思考,可以形成蜂腰模型。蜂腰模型的关键在于不动点的确立,在TCP/IP 的互联网协议栈中,不动点是IP,相应的, 在IPFS的协议栈中,不动点是merkleDAG,二者的共同点在于,他们的作用都在于寻址。
会场上谈到了更多的内容, 但本次分享的核心用一句话表达就是:工程师的成长需要结构化思考,而结构化思考的利器则是金字塔思维。
本次QCon 的口号是
软件正在重新定义世界,那对我们而言,工程师的成长是为了更好地重新定义软件。
(以上是本次分享的ppt简要版本,更多问题,欢迎大家留言讨论。)
【关联阅读】
-
智能音箱场景下的性能优化
-
面向全栈的技术管理
-
走近软件生态系统
-
全栈必备 敏捷估点
-
全栈的技术栈设想
-
架构软件工程的未来
-
再谈<全栈架构师> 一文
-
tataUFO 大数据应用实践
-
图计算的学习与思考
-
AI 语音交互开放平台的构建与演进
-
隐私计算与区块链的融合思考
-
温故知新:从计算机体系结构看操作系统