最近马斯克(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这样的小团队。人力成本在软件研发成本中占的比重很大,“人员优化”是最值得去做的

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

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

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

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

  • 需求可以自动采集吗?如构建用户反馈系统,自动收集用户需求;

  • 借助知识图谱、机器学习等进行需求分析和提炼;

  • 构建需求模型,自动生成代码;

  • 编程辅助机器人自动补充代码、实时代码检查分析等;

  • 封装成标准组件、原子服务等;

  • 利用JVM、容器技术,减少对环境的依赖;

  • 集成了自动化测试、自动化部署的交付流水线

  • ......

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

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

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

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

  • 优化与人相关的一切活动(包括人与组织)

  • 把招对人、培养人的能力放在第一位,尽量少招人

  • 做正确的事,以终为始,从客户真实需求出发构建软件

  • 从业务架构、系统架构开始,内建质量,追求极致的简约

  • 如果能让工具做的事情,尽可能让工具做

  • 尽可能标准化、组件化、原子化、服务化。

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

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

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

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

参考:

  • 什么是软件质量管理的底层逻辑?

  • 软件测试的底层逻辑是什么?

  • 微访谈:数据驱动的软件研发效能提升

  • 终极指南:如何成功落地研发效能度量?

  • 许多研发管理者并不想提升研发效能,这才是最大的问题!

  • 软件研发效能的底层逻辑

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

  1. 10倍效能不是梦:“软件工程3.0”之下软件研发

    在写这篇文章前,看到一条消息,即阿里巴巴集团董事会主席兼首席执行官张勇(逍遥子)发布全员信<唯有自我变革,才能开创未来>,启动新一轮公司治理变革.而这是24年来最重要的一次组织变革,阿里集 ...

  2. 阿里云云效如何帮助企业10倍研发效能提升?

    简介:云效的五大安全特性:基础安全.备份与恢复.安全与加密.审计与洞察.代码安全检测.通过新的研发模式和云原生DevOps平台,云效希望助力企业实现10倍研发效能提升. >>发布会传送门: ...

  3. 云原生时代的“精益实践”:企业效能提升10倍“杀手锏

    简介:1月15日,国内知名"精益产品开发"研究和实践者.阿里云云效资深技术专家何勉在阿里云<云计算情报局>线上直播栏目中,分享其对研发新模式的最新思考,提出" ...

  4. 50个直击灵魂的问题_烦恼很多的时候,问自己10 个直击灵魂的问题

    ☝这么前沿又正经怎么可以不关注 ▼▼▼▼ 人生有时候走着走着,突然就被困住了,烦恼多多.矛盾多多,就算想变得更好,却不知道该从哪个地方开始努力.很多时候,我们希望有人给我们一个"解答&quo ...

  5. 直击案发现场!TCP 10倍延迟的真相是?

    阿里妹导读:什么是经验?就是遇到问题,解决问题,总结方法.遇到的问题多了,解决的办法多了,经验自然就积累出来了.今天的文章是阿里技术专家蛰剑在工作中遇到的一个问题引发的对TCP性能和发送接收Buffe ...

  6. 50个直击灵魂的问题_当妈后,你想过这三个直击灵魂的问题吗?

    1 馒头花卷一岁以前,我经常会问自己一个直击灵魂的问题: 我愿不愿意为了兄妹俩放弃工作,当个全职妈妈? 对于双胎家庭,1+1绝对>2. 尤其是生孩子的第一年,随着两个小天使的横空出世,我们的生活 ...

  7. 50个直击灵魂的问题_直击心灵的48个问题

    是新朋友吗?记得先点蓝字关注我们哦 云绕山绕云 Q&A 这是一篇Q&A, 答题者分别是晕晕和Sam. 一共有48个问题,这些问题由五大部分组成,按照顺序分别是: 近期&真心话( ...

  8. 50个直击灵魂的问题_直击灵魂的三个问题,让你知道什么叫社会险恶

    小伙伴们好啊,今日份快乐开启,一起来看看吧.欢迎关注点赞转发关注哦. 1.虽然我不是人,但你们是真的狗 2.嘴里的纸立马就不香了 3.不怕神一样的对手,就怕...... 4.直击灵魂的三个问题! 5. ...

  9. 网易严选案例|下单峰值增长10倍,毫秒级处理,轻舟助力练就电商必杀技

    企业数字化案例 第一期 以技术创新之力,推动各行企业转型 一起聊聊行业标杆们数字化背后的那些事儿 最近,网易严选一系列动作给人留下深刻印象.4周年庆刚刚结束,期间狂派4亿消费券,一口气上线600多款品 ...

  10. GitHub开源比Hadoop快至少10倍的物联网大数据平台

    TDengine是一个开源的专为物联网.车联网.工业互联网.IT运维等设计和优化的大数据平台.除核心的快10倍以上的时序数据库功能外,还提供缓存.数据订阅.流式计算等功能,最大程度减少研发和运维的工作 ...

最新文章

  1. JVMTOP JVM 监视工具
  2. 用dotTace模仿下老赵的“使用Profiler分析程序性能”
  3. mybatis中的mapper设计与原理
  4. C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
  5. WinCE的快速启动
  6. Canvas X Draw for Mac7.0.2英文版
  7. python pytest框架
  8. Oracle bpm实现oa,谈谈BPM、工作流引擎与OA的关系
  9. 镜像光盘如何刻录到U盘
  10. jQuery遮罩插件 jquery.blockUI.js
  11. 查看ip命令 linux centos7,如何centos7查看ip(地址)命令?
  12. lamber表达式sql_sql语句-linq语言-lambda表达式对照
  13. 游戏引擎除了开发游戏还能做什么?
  14. 2014522420145238《信息安全系统设计基础》实验五
  15. getline()与cin.getline()函数用法详解
  16. 【网络工程师】<软考中级>局域网与城域网
  17. 工信部规范套餐流量提醒 将遏制天价资费来源:
  18. 天气爬虫网站(flask+sqlite3+selenium+echarts)
  19. (附源码)ssm+mysql+基于ssm协同过滤推荐算法的电影院购票系统 毕业设计131124
  20. Unity之如何实现一个VR任务(剧情)系统

热门文章

  1. java浅拷贝与深拷贝及拷贝工具推荐
  2. 微波雷达感应模块技术,应用于老人典型的跌倒场景,为老人安全保驾护航
  3. 论文笔记——多源融合SLAM的现状与挑战
  4. 【matlab图像处理】图像处理工具箱(1)
  5. 实现uniapp 内部下载apk文件和安装
  6. 计算机基础知识问卷,计算机基础知识情况问卷调查
  7. 计算机技术概论知识点,《计算机基础概论》知识点.pdf
  8. 信息学奥赛一本通C++语言-----1142:单词的长度
  9. OKR教练:为何落地OKR需要复盘?
  10. matlab结构数组增加域,如何用matlab创建结构数组