百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

「案例分享」研发效能提升之第一性原理

mhr18 2024-12-05 13:41 15 浏览 0 评论

作者:樊思国

一、引言

被埃隆·马斯克多次提及的第一性原理First principle thinking,是计算物理学领域的一个专业术语,在商业领域依然具有鲜活的生命力。读过《硅谷钢铁侠》这本书的知道,正是因为应用了第一性原理对问题进行分析,才使得马斯克在跨航天、汽车、能源和软件领域创新硕果累累,比如SpaceX的成功,就是从根本上找到运载火箭的成本重头在推进系统上并解决该问题,从而创造了可回收利用的火箭推进器,从根本上解决成本问题,对行业来说是颠覆性的创新模式。

第一性原理的本义是指在进行计算的时候除了告诉程序你所使用的原子和他们的位置外,没有其它的实验的,经验的或者半经验的参量,且具有很好的移植性。通俗理解,第一性原理就是基于客观事实进行的推导,其中不加入自己猜测和类比等经验性的东西。

在创新和研发效能提升的行业大背景下,作者认为在我们的日常研发工作中,也可以利用第一性原理思维帮助我们提升效能甚至是提升创新能力。比如,线上问题排查和分析解决,就可以很好的利用第一性原理指导我们实践。

下文将通过一个真实的线上问题排查经历,提炼出一种利用第一性原理进行问题排查和解决的通用流程框架,并分析案例中的第一性原理应用关键,最后总结了第一性原理应用需要具备的基本步骤,旨在为提升我们研发效能找到一个实际的结合点。

二、一次线上问题排查过程

我们经常会遇到排查解决线上问题的场景,每次如果都能运用第一性原理定位问题,将会得到不一样的效果。下面我们来看一个真实的线上问题排查场景:

11月5日早晨6:10,我们亲爱的运维同学从睡梦中被Flink作业重启的告警电话吵醒,经过排查发现redis内存满了,于是告知大家一起排查。排查过程中发现三类现象,并一步步分析得出结论,作者经过深入分析和整合大家排查情况和现象,总结如下图:

上图可以看到,从收到Flink重启的告警出发,发现三个现象(或者说三个为什么),一直沿着这三个现象往下分析,逐步剥开问题表象,推导出导致问题的根本原因,最后收敛成了三个结论(标记位置),并进一步针对收敛出来的结论深入挖掘本质,从而导出我们下一步的todo项。

三、第一性原理分析

上面的问题排查过程的思路梳理,其实是一种第一性原理的运用,也就是通过不加入任何经验、猜测,只看现象和发现(日志与监控),提出假设并证明的过程。因为只有这样,才能保证我们每一步都是接近问题本质的,最终收敛出来的结论才是真实可靠的,我们针对结论再提出解决方案,才是从根本上解决问题的一种方式。

反之,如果我们加入自己经验或类比,则违背了第一性原理的出发点,使得后面所有建立起来的推导或是结论都是站不住脚的,也许某些情况下,猜测和粗暴的重启活动能够暂时性地解决问题,但长期来看,类似问题还是会存在。就比如我们去网吧上网发现机器坏了,网管一般会让你重启一下机器一样,因为网管这个时候加入了自己的经验判断,那就是重启就能解决问题,虽然大多数时候也很管用,但这很多时候其实并不是一种从根本上解决问题的办法,我想我们作为研发人员,应当具备一种刨根问底,切入本质的思维模式,这种思维模式就是利用好第一性原理。

四、应用第一性原理

那么,我们怎样才能真正的使用第一性原理呢?有三点,一是具备丰富的领域知识。二是从客观规律出发。三是从根本上提出解决方案。

4.1 丰富领域知识

就如上面问题排查过程,需要掌握的知识包括了flink、redis缓存、消息队列、日志排查能力、源码阅读能力和计算机基础等,如果不具备这些专业的知识功底,是不可能深入根本地分析和解决问题的,就像网吧管理员一样,不懂硬件和软件知识,当然就只能通过重启来解决问题。因此,作为研发人员,在工作中很好的应用第一性原理,前提条件是对相关领域知识有深入原理级别的理解,对应用的技术组件能够理解核心的技术原理和架构,对业务能够理解背后的根本动机和运行规则。

4.2 从客观规律出发

这一点尤其重要,有时候我们具备了丰富的领域知识,但是却没法扎实的去分析问题,去做到只看客观规律、然后提出假设、然后找证据来证明或是证伪,那么也是没法做到从本质上解决问题的。因为,只看现象是第一性原理的出发点,提出假设是在问题的答案空间里面做剪枝排除,最后找证据则要求我们具备绝对的理性来对待。只有这样,离真相才能更进一步,直至找到根因为止。

比如我们看到线上告警,第一步应当是去寻找和这个告警相关的原始日志,而不应该是通过现象进行经验判断或是猜测而不看日志,因为日志才是记录整个程序运行的过程,属于客观规律的范畴,而经验判断和猜测则是基于观念的偏见,是意识领域的范畴。在必要的时候,我们通过日志找到了客观现象和规律,我们还需要通过源码的分析来进一步掌握更多的客观规律,因为掌握的客观规律越多,越利于我们做出正确的判断,也就越接近事物本质。

4.3 从根本原因上提出解决方案

利用第一性原理得到根因后,最后一步也是最关键的一步则是解决问题,这个时候提出的方案要么就是从根本上解决已有问题,要么就是创新的解决方案,犹如足球运动中的临门一脚。

五、研发效能之第一性原理

除了线上问题排查,第一性原理亦可应用于我们整个研发过程中。

比如,需求阶段利用第一性原理可以帮助我们挖掘出客户真实需求而不是停留在表象层面;设计和研发阶段,利用第一性原理,在深入理解好我们研发工具箱中各类技术和组建的实现原理的基础上,针对需求阶段提炼出来的最为真实的问题点进行逐一分析,揭示问题域中核心复杂度,最终产生的架构设计和实现必定是最为合适的;测试阶段,利用第一性原理去理解系统实现的核心逻辑,针对核心逻辑设计测试用例覆盖功能点。针对系统上线后出现的问题,利用第二章的问题分析框架,可以一步步帮助我们找到问题本质,并针对该本质采取改进措施,反馈回我们的产品,这样就能做到从系统层面解决问题,而不是停留在点对点的问题应急上。


在整个研发周期中,充分利用第一性原理分析每个环节,提炼出每个环节的首要问题,并针对问题提出解决方案,各个过程之间互相迭代反馈,形成增强回路,久而久之,我相信我们的研发效能定会有一个大的提升。

五、总结

本文通过一个真实的线上问题排查案例,展示了第一性原理在工作中的落地,通过分析第一性原理的应用关键点,提出了三种可行的应用第一性原理的方法。然而,由于作者才疏学浅,在行文过程中难免会存在一些考虑不周的地方,也欢迎提出您宝贵的建议一起学习进步。

相关推荐

SpringBoot 各种分页查询方式详解(全网最全)

一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...

《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略

《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...

LoadRunner(loadrunner录制不到脚本)

一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...

Redis数据类型介绍(redis 数据类型)

介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...

RMAN备份监控及优化总结(rman备份原理)

今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...

备份软件调用rman接口备份报错RMAN-06820 ORA-17629 ORA-17627

一、报错描述:备份归档报错无法连接主库进行归档,监听问题12541RMAN-06820:WARNING:failedtoarchivecurrentlogatprimarydatab...

增量备份修复物理备库gap(增量备份恢复数据库步骤)

适用场景:主备不同步,主库归档日志已删除且无备份.解决方案:主库增量备份修复dg备库中的gap.具体步骤:1、停止同步>alterdatabaserecovermanagedstand...

一分钟看懂,如何白嫖sql工具(白嫖数据库)

如何白嫖sql工具?1分钟看懂。今天分享一个免费的sql工具,毕竟现在比较火的NavicatDbeaverDatagrip都需要付费才能使用完整功能。幸亏今天有了这款SQLynx,它不仅支持国内外...

「开源资讯」数据管理与可视化分析平台,DataGear 1.6.1 发布

前言数据齿轮(DataGear)是一款数据库管理系统,使用Java语言开发,采用浏览器/服务器架构,以数据管理为核心功能,支持多种数据库。它的数据模型并不是原始的数据库表,而是融合了数据库表及表间关系...

您还在手工打造增删改查代码么,该神器带你脱离苦海

作为Java开发程序,日常开发中,都会使用Spring框架,完成日常的功能开发;在相关业务系统中,难免存在各种增删改查的接口需求开发。通常来说,实现增删改查有如下几个方式:纯手工打造,编写各种Cont...

Linux基础知识(linux基础知识点及答案)

系统目录结构/bin:命令和应用程序。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,该目录...

PL/SQL 杂谈(二)(pl/sql developer使用)

承接(一)部分。我们从结构和功能这两个方面展示PL/SQL的关键要素。可以看看PL/SQL的优雅的代码。写出一个好的代码,就和文科生写出一篇优秀的作文一样,那么赏心悦目。1、与SQL的集成PL/S...

电商ERP系统哪个好用?(电商erp哪个好一点)

电商ERP系统哪个好用?做电商的,谁还没被ERP折腾过?有老板说:“我们早就上了ERP,订单、库存、财务全搞定,系统用得飞起。”也有运营吐槽:“系统是上了,可库存老不准,订单漏单错单天天有,财务对账还...

汽车检测线系统实例,看集中控制与PLC分布控制

PLC可编程控制器,上个世纪70年代初,为取代早期继电器控制线路,开始采取存储指令方式,完成顺序控制而设计的。开始仅有逻辑运算、计时、计数等简单功能。随着微处理的发展,PLC可编程能力日益提高,已经能...

苹果五件套成公司年会奖品主角,几大小技巧教你玩转苹果新品

钱江晚报·小时新闻记者张云山随着春节的临近,各家大公司的年会又将陆续上演。上周,各大游戏公司的年会大奖,苹果五件套又成了标配。在上海的游戏公司中,莉莉丝奖品列表拉得相当长,从特等奖到九等奖还包含了特...

取消回复欢迎 发表评论: