软件工程|何为工程师思维?( 二 )


在某采访中有人问他 , 制造火箭降低成本这件事NASA那么多专家都没做到 , 为什么SpaceX能完成 , 他回答说“我想 , 是因为他们资源太多了” 。
这如同他优化特斯拉电池组一样 , 首先思考该目标是否可能 , 其次从商业和第一性原理出发 , 再研究电池的材料的组成部分 。 进而通过可操作路径想办法找到这些材料 , 然后逐步压缩每个材料的成本 , 最后组装完成就拥有更便宜的电池 。
也就是说 , 他认为每件产品(项目)依赖于结构 , 我们只需在封闭的结构中不断得拆解、类比、优化、模仿就能把它完成 。
再比如说:
某航空公司做了一个关于顾客体验的调研 , 询问他们有什么期待?得到的结果是期望早点儿到达目的地 , 或提高安检、托运的时间 。
几个专家视角给出的答案均不同 , 空气动力学家认为 , 前者如何让飞机飞得更快 , 涉及到动力以及元件的整体改造问题 , 后者需要优化安检与托运流程 。
但系统工程给出的答案是 , 解决快的问题 , 要从去机场、找停车位、安检、托运整体进行优化 。
对比上述中厂长优化流水线的事件 , 你会发现也有拥有同样规律 , 老师傅基于封闭状态节省成本的条件 , 拆解环节查漏补缺来解决根本问题 。
谷歌早期用互联网做地图并没有效仿的人 , 它也是典型软件工程思维 。
在封闭任务中用克服种种困难 , 把每条段路精确到厘米级别 , 然后用激光扫描避开路面障碍 , 以便车子开的过程中了解路况 。
说到这里 , 想下那些互联网当红的企业家们 , 无疑均为工程思维运用的高手 , 阿里的王坚、今日头条的张一鸣、美团的王兴 , 甚至华为的任正非 。 他们善于预判并在没有结构的情况下“预见结构” , 并进行通盘顶层设计 , 然后从第一性出发来改善根本要素 。
明白工程思维 , 把视角拉高也能理解众多社会问题 , 比如:
现在可以看到2035年北京地铁规划图 , 2030年碳达峰的行动方案和能源绿色低碳发展制度;这种可预测能力不正是每个普通人(企业)应该学习的吗?
工程思维三要素
结合中信出版社 , 经济管理类书籍《转向:用工程师思维解决商业难题》 , 我总结发现工程思维有三大特点:1)找到结构 , 2)约束性设计 , 3)懂得取舍 。
首先在没有结构的情况下 , 第一个特点是工程师能从初步的概念到构想 , 看到潜在的结构 。 也就是说不仅关注看得见的事物 , 也包括看不见的事物;并非空于幻想 , 而要结合实际做演绎 。
他要考虑系统中各个元素 , 怎么在逻辑、时间、顺序以及功能方面进行有效链接 , 并分析元素在哪些条件下能够起作用 , 哪些条件下不起作用 。
例如:牛顿的经典力学理论是建立在“科学观”上 。
以若干基本的公理(原理)为基本假设做推导;公理无法佐证部分通过严谨的逻辑分析得到若干定理 , 从而不断对理论体系进行完善 。 假设通过观察、实验等手段得出的证据符合结果 , 我们对验证越有信心;但若出现结果不符的地方 , 进而看看是否推导错误然后进行修补 。
此类案例有很多:
瓦特基于“经典力学”发明(改造)了蒸汽机 , 计算机科学之父艾伦·麦席森图灵1936年提出《论数字计算在决断难题中的应用》 , 多年后工程师基于此发明了计算机和智能手机 。
换言之 , 世界依赖于结构;有经验的工程师能在看似一团乱麻的事物中找到合理性的结构 , 在产品诞生前预判到成熟的全貌 。
其次 , 正如“无规则边界的自由”不叫自由 , 无约束的工程也不能成为工程一样 , 工程会遇到各种条件性的限制 , 如时间不够、资金不足等 。 那么第二个特点是“在有约束的状态下”也要更好得完成目标 , 甚至说没有约束状态 , 也要形成自驱动力 。