在宜鼎國際工作的日常與軟體開發的過程 [2]

Allen Shaing
Dec 14, 2021

--

Photo by Javier Allegue Barros on Unsplash
  1. 為何我會想寫這一篇文章
  2. 機會要是來了,你準備好了沒?軟體研發工程師 💡
  3. 跳脫舒適圈:交通大學在職碩班
  4. 貢獻與影響力
  5. 不只是我,你妳也可以!

我在2015年加入Innodisk,第一份職務是產品工程師(Product Engineer)。

工作內容主要為銜接新產品進入產線準備量產。這份職務最大的挑戰在於人,也是最重要的核心,在這個時期培養我擔任橋樑的重要基礎,橋梁這個角色,並不是所有人都能接受,畢竟我們是屬於規劃,說穿了很像廠端的PM,這其實也是老闆對我們的期許。

一般人其實對於工廠的印象不好,但工廠的重要性你可以這樣思考,一項很屌的技術或產品,若沒有業務是無法賣出去的。同樣的,有了業務但沒有工廠,你是無法做出來的。舉個例:Tesla的量產之所以拖這麼久,原因在於Musk花了一點時間打造護城河,當這條河完成後,要進入電動車這產業的廠商,短時間內是很難追上Tesla的,Musk了解根本問題在於生產,所以花了很大的心力解決生產與量產問題。

當然有一些現實面與政治面的就不在我的主題內討論,這類問題到哪都存在,因此在當時我很專注於我的職務上,量產導入、問題除錯、生產文件、技術轉移,我花了一年多就接手了公司重要的產品線之一:2.5" SATA SSD。這是所有新的製程或軟體測試或FW更新會先選擇的機種。不外乎就是硬體問題少,板型夠大也方便除錯,市占率接口也高,只要這產品線的製程沒問題,就可以大舉部署其他產品線,把重要的時間花在重要的任務上。我平常最常做的事情就是泡在FW部分聊天,這對於我熟悉產品幫助非常大,依稀記得,FW的老闆很欣賞這樣的態度,因為有些事情沒相互了解是很難全面溝通。我必須要說,當時我恥力是開到破錶,才好意思每天煩FW的工程師。

這段期間,讓我工作上最沮喪的點也是成就我未來往前進的動力,除了擔任溝通順暢的橋樑之外,我對於無法高度掌握感到渾身不自在,尤其是高標準的情況下,我的角色很難去要求上下手單位的品質應該達到怎麼樣的標準,除非我提出正式的Report。這在工作過程中是一件很兩難的事情,若推動不了,我就必須要重流程下手去避免問題,在當時還是全面自動化的前期時,人工生產的成分很高,

我們的價值就是讓OP少一個動作,讓製程少一個站點。

工業4.0的催促下,沒有自動化的工廠就會被慢慢被淘汰。因此我開始參與多項軟體自動化專案。這段期間也開始認識軟體單位的工程師以及MIS的專案經理。會議過程中,真的腦洞大開,也非常佩服會寫軟體的人,更後悔學生時期沒有好好學習軟體。寫到這不禁會心一笑,我也有當初啊~(菸)

但頭都洗了,當時沒有想過轉職甚麼,只想把工作做好,雖然我無法當研發工程師,但我總可以把對的人與事串起來,完成廠端自動化,發揮自己最大價值。當然故事往往沒這麼順利,串事簡單,串人要命。前面提到最難的在於人,我對於自己被夾在中間相當沮喪,突然間萌生了一個天殺的想法,可能是史上第一人敢提這樣的要求,我跟當時的主管提:

我是否可以前去軟體單位實習?我希望可以帶一點技術回來工程(PE),我們來維護及更新軟體,提升廠端生產效率。

主管很支持我這樣的決定,軟體單位當時也欠缺懂流程的人來協助開發與維護廠端的軟體,因此這個協議很快就打通,我也利用當下的專案取得SRC開始展開我的瞎子摸象的新境界。泡茶對象很快的變成軟體的工程師。

  • C++
  • MFC
  • Visual Studio 2008

你可否能想像,這是我的軟體測試的起手式,我只能說還只是測試而已。我先載了Notepad++,買了侯捷老師的書,我當初沒這麼多疑慮去思考哪種程式語言適合新手。雖然誤入歧途,但從專案中學習真的是Fucking快!我大概摸索一週就可以改得動整個測試軟體的邏輯,在還不知道MFC的黑歷史時,還讚嘆拖拉UI的好用,人有時候知道太多就是會多來更多抱怨啊。

C++的啟蒙可說就是從此刻開始,當然我相信大部分的起頭都把C++當做C寫,我在很後面其實看到滿多C++的負面評價,這邊我就不多評論這一部份,但對於我而言,C++除了充滿感情外,也是陪伴與建構我學習物件導向的利器,其實,思維通了無論用什麼語言都是一樣的。

接著,開發環境大魔王來了,也在軟體的同事協助下打通了

  • GCC
  • Makefile

因為我們必須要跟SSD溝通,選擇的語言相對底層,像C與C++這類語言在device and driver等溝通上相容性相對高效率也夠,省去過於多層的轉換避免除錯困難。
在這階段,我都只是會用而已,會改而已。但,已經可以開始改善工廠目前遇到的軟體問題!除了我的產能提升外,重要性也格外重要。但問題來了,誰驗證?誰去放行我的程式?在不具備軟體工程師的背景以及我也不熟悉軟體工程,現實面即使我可以改善當前問題,但制度面上我必須還是要遵守,透過軟體單位去Release軟體,才能被進入廠端驗證與回報結果。雖然敵不過現實面,但卻告訴我自己,趁做專案的過程中,自己學習到無價的知識,無論如何已經要偷笑了。

不要只是實習,你是否有意願加入軟體單位?

當時的軟體主管,也是我現在的老闆這麼問我。接著小老闆問我

在外面可能沒人會讓你寫軟體,但你來我這,我可以讓你學習與發揮!

2017年1月,我正式加入宜鼎軟體單位。我從產品工程師轉調至軟體工程師,可說是跌破大家眼鏡,當時有耳聞,公司內調不容易,畢竟會被檢視制度,部門之間的和諧,團隊內的氣氛。但還好的是,像我這樣的發展不多,甚至前無古人,後只有我,也可能只有我。聽說後續產品工程師的招募條件多了一項Option:軟體開發技能。

那道不可能的牆一但被擊破,人們就開始相信可能了。

當時,我很感謝製造的處長還有當時的主管,肯放手這一件事情,至今我還是心存感激。這樣的行為也讓未來的我知道,人才要放在對的位置才能發揮最大效益,即使他很優秀。

一切看似美好,但此時的我,就是標準的冒牌者心態,我夠格嗎?用這樣的心情準備展開新的開始。

--

--