2017年4月21日 星期五

到底甚麼是Senior engineer 2

最近反覆讀完這一篇文章Senior Engineers Reduce Risk, 加上近期公司遇到的事情, 讓我反思很多. 也對 Senior engineer有了更進一步的認知.

以下文章是個人讀完該文章, 並把自己認知的部分翻譯出來. 加上自己的經歷, 補充一些觀點

Senior engineer 能夠減少風險


文章一開始就說明很多表面上的事情不代表Senior engineer, 比如說多年的工作經驗, 開發/維護一個知名的開源專案, 研發出公司的旗艦產品的雛形等等. 他確實那一件事情做的很棒, 是一個專家. 但不代表真的是一個合適的Senior engineer. 尤其是當大家對於Senior engineer的與需求有所不同時候, 錯誤認知就變得很危險.

當我們把周遭收集到對於Senior engineer 的文章/定義統整起來之後, 你會發現符合的概念/條件, 多的難以計數, 讓人十分感到挫折. 當試著把這一堆定義應用在真實工作環境裡遇到的Senior engineers, 很難找到完全符合所有條件的人. 或許有一部分只是有Senior engineer的職稱, 沒有的實力. 但這樣的情況實在反差太多了. 我們可以是著思考, 那一些對於Senior engineer的解釋, 是根據他們所在的公司與產業所必備的. 但這樣的理解只是徒增對於Senior engineer的混亂, 並沒有任何幫助.

Senior engineer真正的功能是減少風險, 風險多半都會被誤解成是技術上的風險. 比如說產品的功能不正確or尚未如期完成. 但在商業層次方面有著更應該注意且避免的風險, 比如研發程序風險, 產品設計風險, 業務風險, 公司文化等等. Senior engineer 應該有能夠看到這些風險, 並且盡可能地減輕

新創公司的product-market-fit風險

許多創公司的失敗是來自於錯誤的產品, 核心風險跟技術沒有太多關係, 如果產品本質上就沒人需要, 就算能夠做出來也不會有甚麼改變. 這時候工程師應該是要盡可能地做好研究, 或者縮小研究. 建立雛形驗證, 吸收足夠的商業領域知識, 有完善的指標來協助降低公司破產的可能性

招募的風險

一但公司的產品符合市場需求, 接著得讓產品可運作, 擴增, 並且易於符合顧客多樣要求. 新的顧客需求會產生技術上的風險. 但更進一步的是招募風險, 這樣的風險直接影響公司的生產與文化. 如果公司沒辦法施招募的人有足夠生產力, 最後也只會被人力成本給壓垮

永遠沒有完成的風險

公司成長, 每一項新專案都會跨許多部門, 可能會遇到專案進度的延遲, 為了讓專案的成果可預期且維持品質, 會設立處理程序, 與經常性的溝通會議, 來控制生產力的變因, 使其穩定. 這時候最大風險就是部分工作永遠都沒有完成. 此時工程時忙忙於處理程序, 優化產品, 確保可靠的產出.

實際遇到的風險非常取決於誰創立公司, 做了些什麼事情, 招募了哪些人. Senior engineer 可能是有目的的去減少風險, 或只是剛好當時具備有正確的技能來避免風險.

辨識風險並且明確傳達

大目份已知的風險, 多半都被良好的管理. 因此根本無法分別真實的風險或者感知的潛在風險. 也無法預測真實的衝擊與潛在的衝擊. 而Senior engineer能夠識別出有重大代表性的風險, 並且明確的解釋給其他人知道, 讓大家重視他並且著手處理.


盲目樂觀的風險

未知的風險是很困難去分辨, 但最致命且應該可以避免的是盲目樂觀的風險. 最近公司產品的大版本更新, 把主的產品資料從mysql移到Redshift , 其實在過程中我有感知道大量資料在當前的Redshift cluster下, 執行效率差, 會造成產品適用性不佳, 潛在造成核心系統沒辦法良好運作. 這是已知風險, 但我卻認為可以加大Redshift cluster來解決, 確實這是一個方式, 但會讓公司的營運成本加劇. 沒有顧慮到成本的我, 就是落入盲目樂觀. 沒有做到來思考更全產品系統的衝擊. 對於在眼前卻盲目樂觀的後果, 儘管新產品功能開發完成, 也是毫無意義.

風險的評估應該是一系列的系統運作來思考, 包含公司的營運, 顧客的感受, 商務的考量, 時間的驗證等等. 它是一個層層相關, 交錯複雜的不確定的結果. 要辨識風險, 就應該經過公司的每一步驟驗證, 才能真正避免, 而非落入盲目樂觀.

Senior engineer 選擇風險與公司

每一間公司擁有不同的風險, 因此每間公司對於Senior engineer的要求也不一致. 一個Senior engineer花了5年時間在大公司把小的元件作成一個完善的系統, 不會符合新創公司的需求. 對Senior過度的解讀和不切實際的要求對工程師和公司都有壞處.

Senior engineer透過嘗試與犯錯, 學習並享受會解決某類問題. Senior engineer也應該找有著相同類別問題的公司. 如果相反, 會造成挫折與失志.

與此同時公司應該儘早, 經常性傳達所擁有的風險. 如果一間公司覺得只有技術上的風險, 這是不可能的. 儘管表面上稱作只有短暫性的風險, 然後專注在技術上的細節. Senior engineer要明確知道確實是個真實風險. 誠實的面對一切事才會讓事情變得更容易處理.




沒有留言:

張貼留言