2012年8月17日

[成長系列]工程師可以不懂spec.?



工程師可以不懂spec.嗎?
可以,但是不懂spec.的工程師,只能幫懂spec.打打下手。

記得在第二份工作時,有好幾位問過我同樣的問題,其中包含高層主管:"為什麼你們MMI要懂protocol的spec.?"
解釋一下,MMI是指手機上層的application,protocol是與網路和SIM卡溝通的通訊協定。
我的回答是:"為什麼不需要懂?如果不知道簡訊在網路上的傳送流程,怎樣確保收發簡訊的application正常運作呢?因為懂protocol spec.,所以才能設計出好的application。"


看起來MMI要懂protocol spec.好像是撈過界了,又不是要去做protocol?其實並不是,而是MMI工作上的確也有需求,不然如果設計出來的東西不合底層spec.,那不是糗大了!過去在帶project時候就曾經發生過幾次有關spec.的爭議,像是為了MMI和protocol中間的interface怎麼設計比較好的問題吵架,除了少數因為特殊需求不按正規spec.流程之外(實際上還是有follow spec.,只是被適度的切割或封裝),大部份還是以follow spec.為準。不過我想說的重點是,其中有幾次是MMI的人贏了,因為贏的MMI的工程師不只懂GSM/3GPP的spec.,也了解上層application的設計和實作,論點更有說服力。如果你懂spec.,特別是你工作領域相關的spec.,在需要的時候,你不會只是被告知你要做什麼,而是可以提供意見參與討論的。

你懂spec.,才算得上是專家。

第一份工作訓練我要懂spec.,剛開始工作時,我第一個老闆交給我的第一個任務不是coding,而是給了我一份她挑選出來的必讀GSM/3GPP spec.列表,要我全部都看,已經忘了我花了多久才看完,只記得每天整天地看spec.。後來組織重整,新的老闆也重視spec.,甚至有一個training team專門training GSM/3GPP spec.,而且要求所有新人都必須通過training team的訓練。之後我換了新工作,以前同事還來跟我說他們的新人在報告時竟然還在用我幾年前讀spec.時做的投影片。我還有一篇專利是從spec.中發想出來的。

後來我才發現這樣的訓練不只是讓我更了解domain knowledge,也訓練我對需求requirements的重視。SW process第一個階段就是要釐清requirements,而spec.就是最基本也最標準的requirements。重視requirements,才能做出好的設計,然後才是寫程式實作出來。如果你不懂spec.,你能說你懂requirement嗎?你不懂requirement,你能設計出好東西?設計能力高低就明顯表現出工程師的強弱。所以別人設計,你在實作,那不是在幫別人打下手是什麼。

別在說你不需要懂spec.,不然等別人懂了你還不懂,別人就會跑在你前面了。


====
文章發表在2012夏日的BLOG傳說
<工作二三事>[成長系列]工程師可以不懂spec.?

沒有留言:

張貼留言