Categories
程式開發

什么是工程师思维?


其实这个问题,也很难用一句话来回答。不过我们可以转换一个思路:既然是一个行业的特有思维,那么必然有独特之处。所以,我们可以从三个关键词入手,这三个关键词,工程师会常常挂在嘴边,其他行业并不会经常提起。所以这三个特殊的词,最能帮助我们了解工程师思维。

第一个词,叫做「需求」

这个词常常是工程师和其他同事产生矛盾的爆发点。其他同事会觉得,怎么这么简单的需求,你们工程师就是实现不了。工程师会觉得,怎么什么样的需求你都敢提。

甚至有的公司还会流传这样的段子,叫「这个需求很简单,怎么实现我不管」。需求,成了最容易让工程师抓狂的一个词。

为什么工程师会如此重视「需求」这件事儿,因为这是他们所有工作的起点。如果我们用一个比喻,一个复杂项目就像是一场接力赛跑,工程师往往是跑后半程的人。别人提出需求,工程师根据需求完成接下来的工作,这个过程就像是传递接力棒。

只不过这个交接棒的过程,不是在一条直直的跑道上,而是在哪都行。只要前一棒和后一棒商量好,在体育场门外边交接棒也没问题。

不过,这样的自由有时也是负担,最怕是大家没有商量好,前一棒在体育场外边,后一棒在体育场里边,谁也找不到谁,那就麻烦了。

这就是为什么,对于工程师来说,明确需求是一件非常非常重要的事情。这是工程师所有工作的起点。

在实际的工程中,这个交接棒的过程会比我们想象中复杂很多,客户或者同事脑中的需求,可能是以模糊的普通语言形成的,而这一需求进入工程师脑中时,必须转化为数学和科学的专门用语。用普通人的语言,和工程师的语言,顺利完成需求的交接,这件事很能看出一个工程师的水平和经验。在一些大型工程中,甚至会工程师专门充当像翻译一样的角色,帮助需求顺利交接。

所以,思考需求,是工程师思考问题的起点。

第二个词,叫做「系统」

刚才聊到发明家和工程师的区别时,我们谈到其中最关键的因素是复杂。但是,刚才我们没有更深入地想一想,到底为什么会变得复杂。

这其中的关键,在于我们想象中的发明家,都是发明一个装置,而现在的工程师,都是在创造一个系统。

装置只需要单一的技术,而系统,是技术的复合物。

就像是自行车,看起来简单,其实也是一个小系统。如果你把自行车拆解开,会发现它包含了很多装置,从脚蹬到后轮是链条传动,车把到前轮是连杆机构,如果是带变速器的自行车,还有齿轮和齿轮的配合。

总之,一辆小小的自行车,要比看起来复杂多了,是一个多种装置互相配合的系统。那你可以想象,汽车、飞机甚至火箭,这样的系统要多么复杂。

一个系统包含的装置多了,就会从量变升级为质变。打个比方,这些装置放到一起,不像是沙拉,多一点食材少一点食材并不影响整体的口感。一个复杂系统,更像是我们在烘焙蛋糕,原料放在一起,会产生各种化学反应,原料之间配合不好,也会产生意想不到的问题。

所以工程师面对一个系统,他所要解决的问题,要比每一个部分的问题加起来还多,不同的部分怎样相互作用、相互联系以及相互影响,这些都是新的问题。这种1+1大于2的挑战,就是工程师们要面对的复杂情况。

所以每个工程师在思考问题时,不能只关注自己负责的那一个部分,而是要站在系统的层面去思考,看一个部分的变化,会不会对整个系统有影响。

所以,思考系统,是工程师思考问题的独特角度。

第三个词,叫「负反馈」

这里的负反馈指的可不是负面反馈,不是说工程师要天天被别人骂才能好好工作。负反馈指的是工程学一种独特的创新方法。

创新的过程,很像是在探险,不真正走在路上,不知道会遇到什么样的艰难险阻,所谓负反馈,就是根据这些险阻,去调整自己努力的方向。

对于工程师来说,想要加快创新的节奏,第一步不是快速解决问题,而是快速发现问题。就像我们常说的,提出一个好问题,比找到一个好答案更重要。

这其中的关键,就是以负反馈的方式进行创新。尽早遇到困难,尤其是遇到关键环节的困难,才能发现关键问题是什么。