2023年4月12日

失去工作熱情?在工作中追求完美可能本來就是一種錯誤。匠人精神只是種理想。

作為軟體工程師,長期面對工作中各種惱人的瑣事,一開始的熱情與動力逐漸會被抹去,最後只能選擇關閉感官,不反抗、不思考,才能夠心平氣和地把工作完成。

其實這樣是一個很不好的狀態,如行屍走肉般地把工作完成,並不是我自己喜歡的樣子。

年輕的時候,我對於學習新事物充滿了熱情,對於每個月可以領薪水也充滿了熱情。但是現在,這些好像都不是那麼重要了,無止盡的學習變成令人疲倦的事情,而工作領薪水本來就是理所當然的。

所以我已經失去熱情來源了嗎?其實並不是這樣。往深處去探求熱情的來源,其實會發現我始終在追求的就是:「想做出自己滿意的系統或功能。」

大家或多或少有聽過日本的匠人精神吧?這些匠人們有著自己的個性,對自己的技能充滿自信,並且追求完美,不把一件事情做到自己滿意為止不肯罷休。而我覺得自己有一點這樣的特質。

然而,很不信的,這樣的匠人精神,其實並不適合存在於企業中。這也就是為什麼,想要做出自己滿意的系統,這麼一個簡單的目標,會如此難以達到。

軟體工程師的匠人精神

軟體工程師的匠人精神可以展現在很多地方,因為軟體工程師本身就是一個非常具有可塑性的職位,可以在很多面向追求卓越。

追求程式的架構性

軟體工程師可以花很多時間去思考,思考如何使用堆砌設計模式與設計原則來達成目標,直到達到到自己心目中的完美架構為止。

追求最佳實踐

要完成一項需求,可以有很多做法,但是根據工作經驗及不斷的學習,軟體工程師會不斷地嘗試與研究,直到找到最適合目前情況的做法為止,也就是所謂的最佳實踐。

追求程式排版的美觀性

也有些軟體工程師喜歡讓程式碼看起來相當整齊或美觀,可以花很多時間嘗試斷句要段在哪裡,甚至可以為了排版,採用不同的寫法。

追求執行的效率

有些人是效能取向,認為要寫出執行最快的演算法才是行,所以會願意深入研究各種語言特性,甚至挖掘出一般人不知道的技法,來加速程式的運作。

追求功能的完整性

也有些工程師,對於自己做出來的系統,有自己的想像,會希望系統要開發的話,就要把功能做到完整,否則就是一個有殘缺的產品。

隨意舉例就有非常多面向可以追求,然而事實上,大部分的面向在公司體制內都難以達到,軟體工程師只能一直選擇「將就」。

在公司體制中追求匠人精神為什麼困難

一間公司最在意賺錢,賺錢最重要的事情,除了收入,就是成本。而成本就是阻礙匠人精神最重大的元素。

以公司管理角度來看

很顯而易見的,如果我們想要追求卓越,追求最完美的做法,那麼我們一定會花費大量的時間。而這樣的時間成本,公司是無法負擔的。甚至管理階層必須要努力控制成本,讓開發成本達到一個剛好可以用的狀態。

另一方面,畢竟是領薪水替公司服務,如果一個系統可以讓一位工程師去做到完全符合他想像的樣子,那可能會出大事。對工程師來說的完美,對公司來說可能是災難。不是系統過度設計,導致投入不必要的成本,這到不是最糟糕的狀況,最糟糕的狀況是工程師隨心所欲,產出完全不符合需求的結果,那就真的很麻煩了。

以團隊合作角度來看

公司體制下,大部分都是希望工程師是可以團隊合作的,如果每個人都堅持自己的想法,不願意妥協,也不願意配合其他人的狀況,那麼就沒辦法團隊合作。

一個團隊裡面,只要出現一個難以合作的對象,那就會嚴重拖累整個團隊。大家應該或多或少有遇過那種不願意跟別人溝通的同事,總是一意孤行,結果把團隊氣氛弄得很糟,最後造成工作進度落後甚至品質低落。

從這兩個角度來看,大概就可以了解,為什麼匠人精神無法存在於公司中,畢竟很多邏輯上是矛盾的。公司在意成本,組織在意合作,這會和個人追求完美的理念牴觸。

也是因為這樣,總是會讓人覺得,在公司內部無法隨心所欲發揮長才,總是「將就」於現況,你必須要時程限制,所以只能簡化架構,因為團隊管理的原因,排版風格需要與別人一致,因為管理階層的喜好,所以不能採用你認為的最佳實踐,因為系統版本的限制,有些好用的新技術不能實踐,等等。相當多令人沮喪的狀況。

結論

很不幸的,我必須說,自己在追求的目標,也就是:「想做出自己滿意的系統或功能。」只要繼續在公司內部,其實相當難以達成,或甚至說想在公司內部追求這樣的目標,本來就是找錯地方了。

必須要微調這樣的期待,才有辦法繼續在公司生存下去,否則只會被無止盡的沮喪跟無力感侵食。