> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/zh-hant/2021/w21-engineering-and-craftsmanship.md).

# W21-工程與技藝

最近看到《程序員的自我修煉》裡一個挺有意思的觀點。有些人認為在大型團隊或複雜的項目中沒有個性的空間。“軟件是一門工程學科，如果團隊成員個體自行其是，軟件就會崩潰。”作者堅定的反對這種看法，他是從工程與技藝的差異給出解釋的。

> 在一個項目的整體結構中，總有個性和技藝的空間。考慮到軟件工程的當前狀態，這一點尤為正確。今天的土木工程師，很難接受中世紀大教堂建造者使用的技術——百年後我們的工程看上去也一樣古老，而我們的技藝仍將受到尊重。

這裡提到的工程與技藝，可以等同於技術與技法，又或工藝流程與經驗智慧。前者取決於平臺，受限於當時的技術發展水平。後者取決於每個勞動者的認知與實踐，是實踐中深思熟慮過後所獲得的方法與經驗，理論上是不受科技水平限制的。兩千多年前東西方哲學就已成形的事實可以佐證。再比如同期埃及人用失蠟法做出真人大小的青銅塑像，如今可能用數控機床壓制一個模具就可以大規模生產。但不論依託什麼樣的平臺，像失蠟法這樣略顯複雜但充滿智慧的技藝還是會令後人拍案叫絕，給予啟發。

如今的工程環境，新的技術棧和工具層出不窮，每天盯著公眾號和論壇看確實會讓人新生焦慮。層出不窮的只是解決方案，內核和本質可能從來沒變。經常會聽人說基建這麼爛何談工程，但高水平的技藝在這樣的環境下反而可能更好地彰顯出解決問題的智慧。
