天天看點

【職業心得】銀彈使用心得

在計算機技術裡的黑話裡,有一顆銀色子彈(并不是滾筒洗衣機)可以解決一切問題,而我們一代代人,都在苦苦追求它。每當有新技術出現的時候,就會有人問,XXX 是不是銀彈啊?比如說啊,雲計算是不是銀彈,DDD 是不是銀彈,次元模組化是不是銀彈,阿裡的onedata是不是銀彈。

Fred Brooks(No Silver Bullet—Essence and Accidents of Software Engineering) 将軟體開發中的工作分為本質性工作(Essential Task)和附屬性工作(Accidential Task)。

所謂本質工作,就是解決本質性困難的工作。而軟體的本質性困難就是:如何從抽象性問題發展出具體概念上的解決方案。也就是如何了解我們要解決的問題,并選擇恰當的解決方案。

與之相對的則是附屬性工作,也就是将尋找到的解決方案,轉化為電腦可執行程式的工作。而在這個過程中遇到的困難,就是附屬性困難。

在我們平常工作中,往往都本質性工作與附屬性工作的混合。

在日常工作中,我們應該避免附屬性工作占比過高,那如何做才能避免呢?

總之,正本清源還本歸宗,解決問題前先了解問題,定義問題,不追求模型的完美,而是通過模組化疊代試錯,知識消化,技術方與業務方達成一緻,找出最本質的業務訴求,再找到對應解決方案,這些都是本質工作;再通過各種适當的模式做好附屬性工作。

每個技術人成長階段不同,關注重點不同,低段位時重心還是追求實作的術,高段位時得回歸業務價值的道,隻是在術上走遠了,不能忘了出發時的目标。

繼續閱讀