工程師的工作是翻找補充自己的工具箱與資源庫,想辦法實做出符合設計規格的東西,開發者的工作是界定需求然後找尋並執行可以滿足需求的方案。
他們可能在同一個領域裡工作、有著相同的專業技能背景,但工程師面對的是系統功能與流程、開發者面對的是推導思考滿足需求的必要條件,探討什麼樣的系統介面與功能與人的互動可以導致有效產出(人生是殘酷的,大多數的時候我們要不沒有充要條件、要不充要條件為『不可能』)。
一間公司面對的是一個已經決定的系統、沒得透過檢討需求的本質來進行變更與調整的,那他需要的是工程師。所以高鐵找的是工程師、捷運找的是工程師,因為團隊不可能跟政府還是公司講:『其實要滿足公眾運輸的需求,捷運不合理,我們應該考慮tram,以下是我們的方案...』。
但如果一間公司面對的是一個根本不確定、只知道趨勢是存在著的、需求是存在著的環境就得開始工作的情況呢?那他們需要的是開發者(在硬體相關的領域,這種人會被叫RD)。所以現在很多網路服務的Start-up,他們找的是開發者。
兩者沒有孰優孰劣,只有你是誰、你活在哪裡、你的公司應該根據什麼樣的前提假設來建立、管理團隊才能創造價值。
在台灣,我沒辦法在對外人自我介紹的時候說:『我是軟體開發者』,我只能說我是個『軟體工程師』『程式設計師』或『寫程式的』而我認識的同圈子的人面對外人時也大多如此,我想這很好的說明了台灣的公司普遍屬於那一邊。
於是當我爸問我:『那些大公司也可以像你們那些個Start-up那樣玩出新把戲啊,他們資源那麼多,一旦出來不是會很成功嗎?為什麼你不覺得他們有機會勒?』
我答:『因為我面試的時候都會問一個問題,而到目前為止我從沒遇過那些老闆有拿到及格分數的(也就是讓我開始問第二個問題的)。』
這個問題就是:『請問貴公司有多少工程師?』
他只應該有一個答案,而且他得要能立刻回答:『我們公司(團隊)沒有工程師,只有開發者。』
我會去找的工作,都是我認為他的需求根本還不確定、而他們公司應該要有能耐去建立一個『開發團隊』去探索,而不是『工程團隊』照規格去做事的,但很顯然要不是他們需要創新,卻從不思考這種定義上的馬虎會導致管理行為與目標上的不一致進而造成不效率與失敗,要不就是我搞錯了,其實這間公司根本與創新無關。
每個人的人生都有想追求並實現的東西,而個人的人生目標與志向投射到軟體產業,那就決定了你選擇成為開發者還是工程師哪個比較好。不論如何,別找錯方向了,進錯公司(價值觀不match)有時候比交往錯對象還慘的。
您好
回覆刪除先感謝您這篇很有見地的文章分享
想跟您請教一下
若對方第一個問題回答的出來
您可能會接著問哪些問題呢?
因為對您的價值觀非常有興趣^^
還希望您可以不吝回答
謝謝^^
Jason