[Via 電子工程專輯]
前兩天才在一本書上看到在台灣對工程師的要求,今天在電子工程專輯看到這篇,很值得分享。
============================================================
當嵌入式領域剛剛起步時,大部份開發者至少都有兩種頭銜,分別是韌體工程師和硬體設計師。一些人可能同時掌握類比、電源或許甚至包括射頻電路的開發。工程師可能獨自一人負責產品中的大部份電子研發工作。有時,同一個人甚至還要進行PCB設計和原型裝配。
這種現象非常有趣!
但是,當時的系統和現在比起來更加簡單。8KB左右的程式碼就顯得很多了,SMT技術也並未將電路板組裝變成一種乏味的單調工作。12位元的ADC當時還很昂貴,這意味著通常大部份工作於類比領域的人所遭遇的雜訊問題,要比當前測量fA電流的系統少得多。低時脈速率規避了Maxwell定律的限制,而可編程邏輯當時還只是個夢想。
現在,儘管很大部份嵌入式系統規模仍然很小,通常包括一顆嵌入在小型PIC晶片或其他高整合度CPU 中的矽晶片,但應用已相當普遍。韌體可以使用上千甚至百萬行程式碼。硬體人員要處理數百個接腳的晶片,且必須執行在極低雜訊容限內,同時還必須滿足EMI 和ESD要求,這些要求十幾年前聞所未聞。
因此,工程師開始分工,最先是將工作劃分為可管理的大型任務,而後,由於必須處理先進技術及需求,因而需要更多專業化知識。
今天,越來越多的嵌入式系統開發者只關注自己的領域,對他們所設計系統的其他方面所知甚少。這是知識進步的必然:隨著科技進步,人們各自領域的專業知識增加,與此同時,知識涉獵範圍縮減。
但有趣的是,為何僅在一個世代的時間內,我們就發展到這個地步,很多韌體開發者無法回答關於他們硬體平台的簡單問題。在和工程師的偶爾交流中,我經常問及他們系統的時脈頻率、供電電壓或其他的硬體問題。不少人不能回答,有時軟體人員甚至不知道採用的是何種處理器。
反之亦然,當向硬體開發者詢問關於韌體的資料結構或者使用哪種RTOS時,你可能會看到一臉茫然的表情。FPGA專家有時對「類別(classes)」顯得無知,類比專案小組領導者可能完全不知道PWM控制。
我曾經工作於一個團隊,使用嵌入式Windows或者Linux僅僅是為了減少對韌體人員的需求,這些人很難找,比Visual Studio程式師薪酬更高。這些GUI人員可能對產品的硬體實現毫無概念。
這種自然而然並且必要的分工已經創造出新的工作種類,一種甚至還沒有名字的工作職位,我稱之為系統工程師。這些人的確對所有相關的問題深入瞭解,他們能在測量低雜訊前置放大器時,連結到VHDL以及C程式碼。有時,他們是電腦專家,能將數位硬體和程式碼關聯起來,並聯絡射頻人員,協助整個團隊解決挑戰性的多領域問題。
這些系統工程師價值連城,並且越來越難找到。有時我想他們是不是逐漸消失的物種。但是,在其他技術領域,已經透過努力使得系統人才和大量專業人才共存。例如,全科醫生(General Practitioners)可以做全身檢查。
你的經驗呢?你認為,系統工程師已瀕臨絕種了嗎?
(參考原文: Hardware/Software Disconnect,by Jack Ganssle;本文作者為嵌入式開發領域的專業講師與顧問)
============================================================
事實上,有一定規模的公司,其分工制度十分完整,負責軟體的、負責硬體的、負責測試的。在這樣的公司中,顯少有人能完全瞭解整個產品,硬體工程師不知道產品提供哪些功能、軟體工程師不知道板子上哪個腳位是做什麼的,測試人員不瞭解軟硬體架構。
文中的系統工程師存在嗎?我想是有的,不過真的越來越少了。單一領域的工作都做不完了,還有多少力氣跨足其他領域呢?不過,這種人才是真正缺少的人才,也是工程師中的搶手貨。