• 微信:WANCOME
  • 扫码加微信,提供专业咨询
  • 服务热线
  • 0769-23063100
    13027920428

  • 微信扫码访问本页

直击灵魂:软件研发的第一性原理与10倍效能

旺道.商弈 -> 正文

作者:朱少民

软件研发中,一旦人不够,如果我们就喊缺人、招人,我们就不会去努力思考如何优化工作、如何减少不必要的浪费等。

文章图片1

最近马斯克(Elon Musk)要收购twitter,闹得满城风雨。

国内某些亏损严重 (如今年亏损800多亿、去年是1166亿,甚至超过一年收入) 的大厂,更应该设法让 马斯克收购。

为什么这么说呢?因为一旦大厂被 马斯克 收购,大厂的研发效能可以提升十倍、几十倍,员工可以裁掉50%甚至90%,这样很快就能转亏为盈。

这是因为马斯克 第一性原理用得非常好 ,10倍效能提升是大概率事件 。 如果一般人的目标是在现在的基础上改进10%,马斯克的目标就是在现有基础上做到10倍。《连线》杂志的Jack Stewart 发现: 如果一件事 ,在马斯克的世界里用1年完成,到了别人的世界就要7~8年。 例如,马斯克创立的 SpaceX公司猎鹰9号火箭,不仅能回收,而且复用周转时间降到了21天,一次能发射53颗“星链”卫星,SpaceX 火箭发射的成本只是 60 年代俄罗斯联盟号的成本的3%(即1/30)。还有,2017年马斯克创立了boring公司,两年不到的时间,就在旧金山建成了总长1.83公里的隧道。如果按照传统的地铁方式挖掘预估成本是11亿美金,而boring公司的施工成本仅为1000万美金,仅为百分之一。

言归正传,开始讨论下面4个问题:

  • 第一性原理其实是一种思维方式
  • 软件研发的第一性原理是什么?
  • 在软件研发中,如何用好第一性原理?
  • 用好第一性原理带来的收益?

1. 第一性原理其实是一种思维方式

最早提出第一性原理思维的人是古希腊伟大的哲学家亚里士多德,把它定义为“ 认知事物的第一基础 ”,而著名的法国哲学家、数学家笛卡尔将其描述为 “ 系统性地怀疑一切值得怀疑的事物,直到你获得无可置疑的真相 ” (类似批判性思维) 、 维基百科的定义为: 从基本的定律出发,不外加假设与经验拟合的推导与计算 。 第一性原理 常被延伸为 “ 回溯事物本质, 敢于怀疑过去的设定、打破过去的认知 ,通过演绎法推导,最终得出新的结论 ”,所以可以说, 是认知事物的哲学思想,也就是分享与解决问题的思维方式 。

不管哪个领域,其事物都存在其本质的东西,正如老子说 "人法地、地法天、天法道、道法自然"。所以,我们要回到事物的本质上,就是要回到自然法则上,回到物理规律上,从而 抓住事物最本质的特征,依据事物固有特性去推导、分析、演绎事物的变化规律,进而洞悉事物在不同场景下的表现形式,而不是 随大流 、人云亦云,不会只看到事物的表面现象,不会生搬硬套别人的制度、流程和经验,不会在复杂环境中、不确定因素影响下迷失了自己前进的方向。

例如,电池作为新能源汽车的核心部件,成本占整车的比重很高。为了降低特斯拉的电池成本, 马斯克的逻辑是,“我不管现在的电池有多贵,我就回到本质问自己一个问题:电池的硬性成本构成是怎样的?无论如何也减不下去的成本是什么?无非就是铁、镍、铝这些金属, 除了购买这些金属的成本是绝对降不下去的,剩下来的成本都是人类协作过程中产生的,那就有优化的空间 。”

第一性原理思维直击 事物本质,产生的效果就大不一样。正如 Google X实验室主管泰勒就说:“ 尝试做一样新东西,不外乎那么两种风格 ,一种是小幅变动,比如工艺改进、造型优化等,这时往往得到只有10%的改进;但如果要获得真正的巨大革新( 10倍的改进 ),一般来说你就得重新开始,尝试完全不一样的方式,必须打破一些基本的假设。” 甚至硅谷流行这样一种观念: 把一件事情做到10倍好,比做到10%要容易得多

循序渐进式的进步依靠的是苦干、更多的资源,而10倍的进步则建立在勇气和创造力之上,靠的是第一性原理的思维方式,是 巧干。

2. 软件研发的第一性原理是什么?

第一性原理 ” 自 2017 年马斯克在采访中被提及后,最近几年在互联网和投资圈流行,但在软件研发中思考得不够。

软件研发的第一性原理是什么?

一般来说,先要思考和软件研发相关的一些基本问题,例如:什么是软件? 为什么要开发软件?软件是如何开发出来的?软件从哪里来、到哪里去?

例如: 软件 = 程序 + 文档 = 数据结构 + 算法 + 文档 ,让抽象的软件变得更加具体了,软件的开发转化为数据结构和算法的设计与实现、文档的编写。一个软件的交付, 数据结构和算法 是不能省的,但 文档 是可以省的,尽可能简洁。当软件设计简单、UI界面非常友好,就不需要什么用户手册,今天绝大多数App没有在线帮助(文档)。

软件是如何开发出来的?简单地说,通过需求定义、设计和编程、测试、集成构建起来的,哪个环节可以省去?哪个环节有最大的优化空间?按某些管理者的习惯性思考,任何环节都不可去掉,甚至有的 管理者 还说,每个环节都没什么优化空间了,我们已经优化得很好了。真的是这样吗?

软件其实就是团队之间、团队内部研发人员之间协作 开发过程 中产生的,正如马斯克所说,“ 剩下来的成本都是人类协作过程中产生的,那就有优化的空间”, 而且 比尔盖茨还说过 “一个杰出的程序员的价值是普通程序员的一万倍” 。 所以软件研发的各个环节就有优化空间,这也是为什么Amazon团队要招最好的人,并追求2-piece pizza这样的小团队。人力成本在软件研发成本中占的比重很大,“ 人员优化”是最值得去做的

软件研发的第一性原理 : 软件研发是人的智力活动,人是决定的因素,所以在 软件研发中需要优化与人相关的一切活动 ,包括个人能力和团队协作。

文章图片2

3. 在软件研发中,如何用好第一性原理?

从第一性原理出发,要优化人员,首先就要优化待开发的软件本身 。正如,我在给学生讲解敏捷开发模式时,强调 “研发组织分解” 或 “建立小团队”的前提是:待开发的系统能够分解。系统分解得越干净,小团队才能更独立地工作,工作效率才越有保证。这也是为什么 今天 微服务、serverless 很流行。系统的复杂性取决于业务的复杂性,如果业务很复杂,软件系统用什么架构(微服务、serverless等)都没用,这时就必须进行业务重组、业务变革或业务架构的优化。虽然业务驱动研发,但业务不是一成不变的,一定是可以改变的,我们要勇于打破业务惯例,大胆革新。

从第一性原理出发,在业务和软件本身优化之后,我们可以开始 优化软件研发的各种活动,砍掉一些不必要的环节,把一些环节交给工具或机器人去做,进而可以优化组织和团队。 例如:

  • 需求可以自动采集吗?如构建用户反馈系统,自动收集用户需求;
  • 借助知识图谱、机器学习等进行需求分析和提炼;
  • 构建需求模型,自动生成代码;
  • 编程辅助机器人自动补充代码、实时代码检查分析等;
  • 封装成标准组件、原子服务等;
  • 利用JVM、容器技术,减少对环境的依赖;
  • 集成了自动化测试、自动化部署的交付流水线
  • ......

人多了,其实往往是坏事 ,正如樊登在其《低风险创业》一书中说,如果创业时钱多不是好事,因为钱多就猛招人、大做广告、买流量等,表面上看,不好的产品销售不错,会给自己错觉,觉得开发出来的产品是好产品,但最后钱烧光了,产品卖不出去了,还要裁人。创业时钱少,就不会花精力在营销上, 而 是 能省则省,踏踏实实做产品,靠产品功能和质量赢市场。

道理相通 ,软件研发中,一旦人不够,如果我们就喊缺人、招人,我们就不会去努力思考如何优化工作、如何减少不必要的浪费等。如果不招人,我们就会朝思暮想去优化工作,反而带来很高的效能。

当然,我们并不反对人多力量大,但 如何有效分配人力,精准使用人力,也是研发效能更高的目标 ,如我军著名的 三三制战术 (非人海战术,它也被美国西点军校奉为经典战术之一) ,起源于 抗日战争,成熟于解放战争, 大量运用于 抗美援朝中,发挥我军人数上的优势,降低敌军武器上的优势。

概括起来,软件研发有许多地方可以进行创新, 从第一性原理出发 , 软件研发降本增效的基本要点是

  • 优化与人相关的一切活动 (包括人与组织 )
  • 把 招对人 、培养人的能力放在第一位,尽量 少招人
  • 做正确的事 ,以终为始,从客户真实需求出发构建软件
  • 从业务架构、系统架构开始,内建质量, 追求极致的简约
  • 如果能让工具做的事情,尽可能让工具做
  • 尽可能标准化、组件化、原子化、服务化。

更多内容,也可以参考: 软件研发效能的底层逻辑 。

4. 用好第一性原理带来的收益?

用好了第一性原理出发,就能达到“10倍效能”, 其实不一定能达到10倍效能,“10倍效能”只是一个代名词(思维方式),是指高效能,可能是2倍、3倍,也有可能是20倍、30倍。即使是2倍效能,也很好了。想想像腾讯、阿里这样的大厂,效能能翻一倍,那将是奇迹。

我们期待奇迹发生,相信奇迹能够发生。

来源: 软件质量报道

短视频矩阵推广 企业运营方案

一、企业为什么要做短视频矩阵?单账号风险大企业要做短视频矩阵,主要是为了避免单一账号存在的风险。一旦账号出现限流、降权或封号等情况,企业将失去该

适合美术机构、书法培训机构管理软件有哪些功能特点

美术、书法培训机构,是除了音乐、舞蹈、机器人编程等教育培训机构以外,提升孩子美学和文化艺术素养的素质教育机构。一家中小型的美术、书法机构,可能已

深圳大卖重金招ChatGPT人才,开出35k!

在众多行业中,跨境电商已成为ChatGPT的最强应用领域之一,从注册、使用到发现弊端,跨境人迅速完成初体验并将其用于工作。

程序员三大基础思维简谈:协议、接口和分层

不管是硬件设备、软件概念或者是网络通讯中,协议、接口无处不在,软件系统离不开分层模型。协议和分层,各种课程都有涉及,但可惜的是,很多计算机类专业

与人交往“最精明”的方式,不是请客吃饭,而是给他们3样东西

现实里,结交一个人的最好方法,是什么?其实现实里,成年人都需要了解一点这种知识。否则,光靠自己的技能,恐怕路不好走。

轻松掌握 RAID 配置:各大品牌服务器攻略(保姆级教程)

RAID 0 级别:比如服务器设备上有 4 块 4T 硬盘,配置 RAID 0 后,这4块硬盘就变成了一个整体,也就是4块硬盘 * 4T = 1... ...

系统思维——拥有看穿本质的能力

系统思考帮助我们打破原有的思维定式,纵观全局,看清事物背后的结构和逻辑,才能解决现实世界中的复杂问题——《系统思考》丹尼斯·舍伍德你一定遇到过这... ...

2024流量共生,公域做规模,私域要复利

公域和私域是共生关系,在单独探讨一方时候总不自觉地思考与另一方的关系和联动。有很多企业两者之间会有所侧重,比如重公域销售,跑通投产比就持续放大,... ...

打造个人商业IP,理清赚钱逻辑

做个人商业IP是一门稳赚不赔的生意,它是把你现有资源、业务、知识、流量、能力、经验等,加了一个超级杠杆,做了一次乘法。... ...

生意有术(NO.12):生意千万条,务实第一条

个人经验是这样的,在合作之前,我会做大量的背调,从公司、老板、产品等搜集到足够多的信息。我不会用百度去搜新闻,看官网,这些信息没多大参考价值,有... ...

分布式架构和微服务架构的区别

1、含义不同微服务架构是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中。分布式系统是若干独立计算机的集合,这些计算机... ...

系统运维日常巡检都做什么-8大步骤

系统运维日常巡检是确保服务器和网络正常运行的重要任务。正常情况下系统运维日常巡检的步骤和程序:步骤一:检查硬件服务器状态:确认服务器是否在线,运... ...

SaaS ERP和传统ERP的区别在哪里?

SAAS是什么SaaS,Software-as-a-Service,软件即服务。说白了就是指用户不用再购买软件,而改用向软件提供商租用基于Web... ...

36w字!腾讯高工甩出MySQL速成手册,基础架构调优三飞

想要精通MySQL你就必须知道如何设计一个高可用可扩展的企业级MySQL数据库集群以及高性能高可用MySQL调优方法。但大多数人对于MySQL的... ...

华为发布了跨平台开发的ArkUI-X,我不允许你学不会!

就在8月7日开源鸿蒙 OpenHarmony 4.0 Beta2 发布,多平台开发框架 ArkUI-X 首发。首先介绍下啥是 ArkUI:Ark... ...

桌面应用开发常用技术栈

开发电脑桌面应用可以使用多种技术栈,具体选择取决于开发者的需求和偏好。以下是一些常见的技术栈:前端开发技术栈:通常使用桌面应用开发框架,如Ele... ...

Ideogram:一款秒杀Midjourney,免费无限生成的AI绘画神器

导读:Ideogram AI是一个文本生成图片的平台,它最大的优点就是好用、免费又没有生成限制,因此可以秒杀MJ和SD。AI绘画是人工智能领域的... ...