*** 本文同步發表於 FB 社團-軟體設計鮮思維 ***
看到這篇文章:「What’s The Difference Between a Developer and an Engineer?」。這篇文章試圖比較 "軟體工程 (engineer)師" 與 "軟體開發 (developer)師" 的不同點與各自所需技能為何。
Software Developer 我覺得也可以稱為 Software Designer,同為設計原意。
若是我個人的解讀,軟體工程師比較著重在 "How-to" 的實作面。他會深入探究各類技術框架與工具的使用,舉凡 UI端 Javascript-based 框架、底層系統層級的技術框架、甚而包括了 3rd party 的 utiltiy 類型的 library 等;同時還有各種開發工具的精通。
軟體設計師,則會比較關注在 "What & Why" 的思考創意面。文內有提,設計師更會加強在心智上的修煉,包括自我學習、探討、觀察、閱讀等軟性功夫上 (不一定馬上就能應用到實務工作上)。
這兩者界線倒也不是涇渭分明,不是說工程師只是做出來就不在設計思維上;設計師只專於思考體會而不圖實踐。
我是覺得,藉由該文對工程師與設計師的比較論述,旨在提醒:
「工程師不要僅侷限於所以為的軟體就是由所謂技術框架/工具來組成,卻不了解背後蘊含的目的與原理,結果導致工程師必須一直追求這些實做面的 "How-to-use",有如夸父逐日,最終會被淹沒在這些實做技術工具的洪海內。
設計師也不是只會空想不切實際,尤其可能以為閱讀廣多學識豐富而不屑於與他人交流,殊不知許多這類人充其量只是 "學" 到書內作者的說明定義表面功夫,卻沒有真正內省轉化為內心更具本質的體認。」
個人以為,思考設計與實作工程就如同王陽明大師所倡導「知行合一」的「知」與「行」關係。從「天地萬物本吾一體」出發,強調要知,更要行,知中有行,行中有知,所謂「知行合一」,二者互為表里,不可分離。知必然要表現為行,不行則不能算真知。