“懂得很多道理,依然过不好一生”到底是哪里的问题?听过不同的答案,如:停留“知道”的舒服区、别人道理未必适用自己、甚至能力欠缺等诸如此类的回答。
后来发现这是「工程问题」。
把每个道理嚼碎如同把手机拆开了解每个部件一样,若把手机再装回去不能做到了解就够,还要亲自实验一遍。
不过历史告诉我们,就算不懂原理依然可以造出手机,技术和工程都跑在科学前面。
不信你幻想下,几百年前没有优质教育体系时,四大发明如何出来的?
再把视角转向商业,中底层员工往往“经济金融类出身”较多,而核心高管团队总有几个理工科人士;他们思维有什么区别?
文科生逻辑更擅长从原有特征推演分析做决策,理科生更讲究遇到问题客观看待事物、从根本上进行改变,这背后直接影响到“公司的运作效率”。
就连百度创始人李彦宏,在新工科技论坛上也曾说:每个人都要具备工程思维,这也是许多毕业生的短板,要深度了解它不妨从“软件工程”说起。
工程思维是什么
市面PM、开发、测试以及运维所做的工作均属于软件工程「代码080902」,是现在大学主流的专业之一;学习内容包括数据结构、算法、人际交互、需求分析等模块。
在英文环境中,工程(engineering)的档次要比科学(science)低很多,为什么?
主要原因是,软件从诞生之日起一直解决不好「交付问题」,即:项目不能按照履约时间、质量、成本完整交给客户。
为解决此疑难杂症,1968年10月北约科技委员会的专题会上,思考者们才真正提出“软件工程”的概念,它是什么呢?用软件的手段去满足客户需求吗?并非如此。
方便理解,举个例子:
在某工厂包装车间产品线经常出现“漏装问题”,客户收到货后打开包装一看是空的。
于是负责人找专家询问解决办法,专家建议装上监控系统,通过视频识别操作就不会出现此现象。
得知改造下来需要百万费用,厂长当场掀桌子决定「内部开会解决」,有位老师傅说很简单:
我们只需通过测量产品重量,然后在流水线最后装个大型吹风机,把它设定到相关风力即可。
若包装盒被吹跑证明就是空的,若没有则是完整的,众人怒赞得到老板赏识。
据此,工程的目的是客户需求的问题,至于解决的手段,只要在限定条件内是否用软件显得并不是那么重要。
计算机专业中,清华大学出版的教科书《软件工程—理论与实践》开篇谈道:
一位计算机芯片从业者认为代码是解决芯片问题的唯一办法,但一位软件工程师,只不过把软件当做满足客户需求的其中一个办法唯一。
所以,工程学指满足客户需求为目的的一门学科,而非单纯的开发软件。
它需要将客户的需求捕捉、分析、进行定义,并给出整体的系统需求,并分解各子系统;直到每个细节的需求可以由一个现有的组件直接满足,或通过修改满足。
而工程思维最大的特点是“要把事情做成”,也就是可交付、可使用、并做到开源节流”。
换个视角来看定义:
特斯拉、SpaceX创始人埃隆·马斯克(Elon Musk)并非是技术工程天才,从他创业发展史可看出横跨三大领域(互联网、清洁能源、太空)。
似乎三者并没有直接联系,为什么能够如此游刃有余呢?主要有两大要素:1)工程思维,2)第一性原理
在某采访中有人问他,制造火箭降低成本这件事NASA那么多专家都没做到,为什么SpaceX能完成,他回答说“我想,是因为他们资源太多了”。
这如同他优化特斯拉电池组一样,首先思考该目标是否可能,其次从商业和第一性原理出发,再研究电池的材料的组成部分。
进而通过可操作路径想办法找到这些材料,然后逐步压缩每个材料的成本,最后组装完成就拥有更便宜的电池。
也就是说,他认为每件产品(项目)依赖于结构,我们只需在封闭的结构中不断得拆解、类比、优化、模仿就能把它完成。
再比如说:
某航空公司做了一个关于顾客体验的调研,询问他们有什么期待?得到的结果是期望早点儿到达目的地,或提高安检、托运的时间。
几个专家视角给出的答案均不同,空气动力学家认为,前者如何让飞机飞得更快,涉及到动力以及元件的整体改造问题,后者需要优化安检与托运流程。
但系统工程给出的答案是,解决快的问题,要从去机场、找停车位、安检、托运整体进行优化。
对比上述中厂长优化流水线的事件,你会发现也有拥有同样规律,老师傅基于封闭状态节省成本的条件,拆解环节查漏补缺来解决根本问题。
谷歌早期用互联网做地图并没有效仿的人,它也是典型软件工程思维。
在封闭任务中用克服种种困难,把每条段路精确到厘米级别,然后用激光扫描避开路面障碍,以便车子开的过程中了解路况。
说到这里,幻想下那些互联网当红的企业家们,无疑均为工程思维运用的高手,阿里的王坚、今日头条的张一鸣、美团的王兴,甚至华为的任正非。
他们善于预判并在没有结构的情况下「预见结构」,并进行通盘顶层设计,然后从第一性出发来改善根本要素。
明白工程思维,把视角拉高也能理解众多社会问题,比如:
现在可以看到2035年北京地铁规划图,2030年碳达峰的行动方案和能源绿色低碳发展制度;这种可预测能力不正是每个普通人(企业)应该学习的吗?
工程思维三要素
结合中信出版社,经济管理类书籍《转向:用工程师思维解决商业难题》,我总结发现工程思维有三大特点:
1)找到结构,2)约束性设计,3)懂得取舍
工程本身是组块
此话怎讲?组块(chunk)是人类信息加工中最重要的形式之一;概念是米勒(G.MilJer,1956-1963)提出,主要分为动态和静态两种。
早些年用在工作记忆中,他注意到某一工作记忆未在10秒内复诵便会消退,同时保存容量最多为7±2个单元。
从动态视角看,人通过几个相关的小项目整合成为一个大项目,减少基础块数,从而将信息控制在记忆(物理空间)所容许的范围内。
从静态视角看,它是一个名词,具体指重新编码的结果或输出单位,为便于区别在英文中通常把前者称为“chunking”,将后者称之为chunk。
俄裔美籍作家“弗拉基米尔·纳博科夫”(1899-1977)提出的卡片写作原理与工程师思维的核心“模块化系统思维”均属于「组块」。
他们均指出这不是一项单一的才能,而是技术与原则融合;原因是:
一个系统因各模块之间的关系而成为一个整体,它们不能通过单独的分析各组成部分就能理解的。
人的神经元也是种组块,在光学显微镜下可以看到一个神经元的轴突末梢经过多次分支,最后每个分支的末端呈现杯状或球状。
这犹如,你学习的知识,慢慢形成联结均来源自于「神经元组块」。
另外,早些年美国行为心理学创始人华生基于此概念,曾向政府提出一个训练实验的要求,他说若给我10个健康婴儿,通过训练,我可以将他们培养成优秀学者、艺术家。
人们觉得很荒谬,最终没有完成该实验;若干年后一位匈奴牙的心理学讲师,对他提出的实验非常感兴趣。
然后与他的妻子围绕三个女儿进行培养,最后造就了三个女性国际象棋冠军,这便是著名的「波尔加三姐妹实验」。
如果你了解该原理,进一步看世间万物均存在“组块”的现象;随便举个例子,如拿书架取书的动作就包含四种组块:
1)确认位置,2)手抓书脊
3)控制力度,4)取出路径
每个步骤都是小迷你块,假如要做一个取书的智能机器人,那只需把每一个小组块(活动)编写一个程序,然后整合创新即可。
要知道程序背后是函数,函数是逻辑块,逻辑块是通用代码,用计算机将每个模块标准化,最后串联就能得到想要的结果。
就像学开车,老司机看到“红灯”就自然而然完成一系列相关动作;新手则需一个个动作分解来做。
好比你在工作中遇到的问题看似连贯,实则包含多个部分,对有经验的人而言,他们不会一手抓多个组块,而是整体分析后从某个组块下手。
可见,在认识自然和文明发展的过程中,组块思想与方法无处不在;芯片是组块,谈判策略是组块,笑脸是组块,地铁是组块,地图是组块........
要是没有组块的思想也不可能制作成每件衣服,建起一座桥梁;当然也不会有家庭,这些组也不过是“形式与内容”的不同结合罢了。
因此,对照自我,你可以思考下自己的工作技能,所需软能力是不是组块呢?除外表部分外,哪些薄弱是不是把它拎出来找到规律刻意练习就能解决呢?
总而言之,工程的本质是实现。
组块化应用是把一个复杂问题自顶而上逐层把“系统”分成若干模块的过程,有多种属性分别反应内部特征。
如,典型的低代码平台把常用的功能都封好,像乐高一样,让使用者快速配置;它追求以价值为导向,并用「建构性的思维以求效率」来创造价值。
工程思维的运用
明白这些原理,如何把工程师思维应用到日常工作或学习上呢?我把它大致分为三个方面:
1)预见未来的结构
它分为「结构力」和「预见」两个层面,也许你会把前者理解成各种思考模型,如5W2H原则、金字塔、黄金圈理论等,其实工程中的结构有部分“科学”元素。
在这里有什么不同呢?
科学家“仰望天空”居多,很少屑于实际运用;主要阐述认识规律,发现规则;好比你经常看到科学发现新地球、海啸、巨大恒星等。
而工程讲究「脚踏实地」,将发现的原理转化并实际干出来。
也就是,在过程中首先要尊重科学规律,考虑多因素实际所存在的结构,再精益求精的持续改进。
对「预见」,最接近的两个词汇是“使命”或“梦想”。
埃隆·马斯克对火星的迷恋我相信绝对不会是因为科幻小说的影响,而是他认为自己聚合顶尖技术人才,然后又懂商业投资,加上使命的火花,才让他走上SpaceX的道路。
据此,作为普通人对我们有什么帮助呢?你不妨思考下自己的使命,梦想是什么?
也许比较天马行空理想主义,尝试把它量化成目标,思考有没有可能变成实际动作;只要勤快,拆分下大概率可以实现。
比如:工作很久的你想成为某个领域专家,也许只需花1-2年的时间深度学习理论知识,然后结合自我最新认知,通过不断分享就会被人发现,不一而论。
2)约束内找到组块
尽可能在具体的时间,约束内交付出明确“规模”的结果,相比科学研究就没有这些限制。
因为在开始,他们就不知道具体方向在哪里?例如:直到到今天,人类也无法统一相对论、量子力学。
结合自身,我觉得拥有清晰的目标后,第一步的困难是「最后期限」原则,很多人的未完成均结束在时间、精力的管理层面。
假设能克服这一步,接下来要考虑「组块」的环节;要尝试找到形成该结构的最小单元,部分人停滞不前是没有找到组块和串联,最后盲目的付出把精力耗尽。
比如:谈钢琴有组块、写作、玩音乐更是相同。
《故事工程》的作者拉里·布鲁克斯认为,写作这类看似有灵感的事情都可以采用工程思维设计,它用工程构建的方式将故事创作分为6大核心技能:
1)立意,2)人物,3)主题
4)结构,5)场景,6)风格
对于普通人所有的一切均可以「公式化」,为保证品质你可以多做几个备份来;查理·芒格在《穷查理宝典》中把它称为冗余模型(Backup Systems)。
3)平衡当中做取舍
取舍的根本是什么呢?在工程思维中讲究“第一性原理”,也就是你基于未来结构的顶层设计。
若说组块是框架中的血液,那取舍关键就是你的「框架」如何设计;这个框架怎么来呢?我把它总结成「旧系统」。
试想下,你想做的事情或达到的状态,以前有没有人完成?找到并把他设计成动态对标品;私下研究三个方面:1)学习路径,2)职业发展,3)成功阶段
美国神话作家“约瑟夫·坎贝尔”在20世纪50年代出版的《千面英雄》把人的经历分为三个阶段,分别是离群所居 ( separation) 、经验考验 ( ordeal) 、复归本源( return) 正是对应此模块。
把发展路线提炼出来之后,要做是「优化旧系统」,如:第二个阶段你看到对标的人用三年经历从经理做到总监,那在此方面自己有没有更快的办法呢?
所以不局限在表面的细枝末节,挖掘背后隐藏的路径和机制才是根本,真正的工程思维是要「解构旧系统」,组合创新「新系统」。
总结一下:
使命的驱动、顶层的框架设计、组块化的SOP。
这种全局观加上约束内的反馈机制,才是普通人值得学习的工程师思维。
回到文章开始,为什么学过很多道理,依然过不好一生?
因为「那个道理」背后的系统你没有躬身入局,所以听了也没用,想想看不是吗?
联系客服