2015年2月28日 星期六

工程師自我管理經驗分享

2014 年初,大概距離現在一年前吧,工作型態變得和以往很不一樣,編程的時間少了許多,這陣子時常會回想自己還是一個單純的工程師時做的事而懷念起那種日子,有點擔心日子久了,一些細節和從工程師角度思考的初衷會慢慢忘掉,所以我想寫一篇當了 5 年工程師所累積的心得,也許可以幫助到一些晚輩,甚至未來的自己。

當然也一併記錄了工頭篇的心得供對照與參考:初級技術團隊管理的經驗分享

用最笨的方式複製程式碼
複製一段網路連線的程式碼,把 URL 和參數改掉,這方法最聰明,超有效率,你得到 1 個單位的工作經驗,但以後不論再做多少次同樣的工作都沒經驗值了。換一個方式,看著一段網路連線的程式碼,自己用鍵盤敲一遍,你可以得到 1.5 個單位的工作經驗,把這段程式碼每個 API 弄懂可以得到 2 單位的工作經驗,從查詢 API 開始自己完成這段程式碼,可以得到 5 單位的面試經驗,過一段時間,再重新想一個方式來寫一模一樣功能的程式碼,可以再得到 5 單位的工作經驗。如果你工作了 7 年,還在領 3XK 的薪資,面試也總是碰壁,想想你這 7 年來怎麼寫程式的。


留一手已經退流行了
如果你花了很多力氣搞定某件事,並且得到了經驗值,那你應該讓所有成員也一起得到,不論是簡報還是提供 Sample Project 都很好。當然這些東西沒有人會讓你用上班時間弄,大多是犧牲自己的休息時間,很辛苦,自己獨特的價值也會因此消失,但這對於培養工程師的綜合能力有很大的幫助,如果你有一個好的主管,這個行為也會讓他看得出一個人的個性及你重視的是團隊更勝於個人。


利用資訊落差來取勝並不光榮
有些同事喜歡私藏一些手法、工具、甚至資訊來源,到適合的時機再拿出來用,這其實是一種很自以為是的心態,就像今天我把這些心得寫出來,會造成全省的人都照著做嗎?其實從人性的角度來思考並不會發生這種事,因為看到這標題還會點進來看文章的人,在一段時間後自己也會漸漸產生類似的心得。而另外一群永遠也想不到的人,大概也不會點進來看這篇文章,甚至他的好友圈內從來沒有流通過這類的資訊。除非你的同事都是第二種人,否則製造資訊落差對個人有任何好處嗎?


還有舞台才是適合待著的地方
到網路上搜尋 "好公司",似乎大部份都是以投資者的角度來撰寫的,鮮少以勞方的角度來定義什麼樣才叫一家好公司,從軟體業的角度來定義又更少了,思考一間公司值不值得繼續待下去,是否還有技能或前輩可以繼續學習、有沒有可發揮自己才能以得到相對應報酬的舞台,這些都比起 "提供安全感" 來得更重要。


盡可能做對的事,而不是做主管交待的事
面對一個工作項目,如果你很確定自己是對的,那就去說服主管或前輩依自己的方式進行,這麼做的原因在於任何人都想要看到你的潛力,包括你的主管和你自己,如果你是對的,不論對你還是你的主管來說,這會是一個很好的經驗,如果你是對的機率比較高,未來成為決策角色機會自然就高。
如果說服不了你的主管照著你的意思做,有三種可能,第一是你說服別人的能力還需要加強,第二是你的經驗還不足判斷錯誤,第三是別人講不聽。不論哪一種,結論都是先照著交辦事項做吧。因為不論怎麼做,事實總會證明你是對的或錯的,一定都有收獲。


別掛著開發者的職稱卻像個作業員
一直以來我對於那些經常抱怨細節不夠明確的同事有些反感,對於根據粗糙的需求就實作出粗糙成品的同事也一樣有些反感,這很像作業員而非開發者。一個好的開發者應該具備知道整個願景後即可去調用資源與實作出成果的能力,至於不明確的細節,你應該積極去問對的人,找問題和問問題是工程師培養綜合能力很重要的過程。


當回以前那個在書局買參考書的高中生
想想以前國中、高中時,似乎大多數的人都會在念完學校的課本和完成作業後,再念一些從書局買回來的參考書,這樣才能獲得比其他人更好的成績。出社會工作後,把做好白天的工作想作學校課本及作業,卻把下班的時間完全給了休閒活動不做其他的學習,這也許就是自己成績不如人的原因,至少相關領域的官方 Blog 要定期去看一下。


展現反省能力
太多人的父母並沒有好好的教導他們反省的能力與重要性,真正有反省能力的人其實比想像中的還少,大多數的人受到主管的指責或接受到意見時第一個念頭是反感,這並沒有什麼錯,人類本來就是這麼被設計的,但如果這件事的確是自己的錯,卻持續以抱怨的心態面對這些意見,那麼將會嚴重的阻礙心態發展。開發團隊裡並不是太在意誰犯了什麼錯,但若犯了錯誤卻無法修正,那以後重要的事大概很難交到你手上。


多花時間想一些工作之外的事情發現自己的長處
或者是說,幫別人或團隊想想可以如何更好,不要光想自己,如果你發現自己很少或幾乎沒在想這些事,那你可能要提早了解到自己不適合走管理職,朝一個資深工程師或架構師發展可以更事半功倍,就我認識且技術、管理都做得不錯的前輩,他們幾乎是天天都在花時間想這些事,而不是碰到狀況或別人提醒了才花時間想一下。


儘可能找事情塞滿自己上班時間的空檔
很多行為雖然並非完全是壞事,但很有機會會讓老闆的觀感不好,例如上班時間內聊 Line、看 Facebook 上的有趣短篇漫畫,甚至度姑 (打瞌睡)。雖然工作都做完了,或是你選擇用別人的下班時間來補進度讓自己和其他人的積效相同。雖然最後對組織來說結果一樣,但說實在話,大部份的主管會選擇上班時不做雜事,利用高效率做完事情準時下班的人來擔任要職,至少他在生活上可以少擔心你會不會破壞部門形像這件事。


在一開始就把自己當自己的主管
只要不是老闆,部門主管也是被指派工作的授薪階級,講白一點,大家都是個打工仔。某方面來說你們做的事都是運用部門內的資源來完成目標,如果部門內有六個成員,那這位主管就有六個人力可以使用,對於個人而言其實也是一樣的,只是你的人力資源從六個變成一個,所以是不是主管其實並不會讓你的工作經驗少掉多少,一開始就用這種方式工作,可以讓你不知不覺看到一般人不會看到的問題與想法。


讓自己具備一些公司職員以外的職稱
外國的月亮比較圓,外人的意見參考價值比較高,這是人性。想要讓上級多重視一點自己的意見,讓自己的身份除了 XX 部門 XX 工程師之外,再多個 XX 公司兼職顧問或 XX 認證是個好方法。


在尊重專業的前提下用正當方法抱怨
舉例來說,如果你目前的專案 UI 很醜,流程不友善,而你剛好擅常這塊,無奈於必須尊重別人的專業而實作出自己也不認同的產品,那麼你應該要做的不是在任何地方抱怨,而是花額外的時間實現自己的想法,用自己的專案與數據證明你的意見值得重視,這種經驗愈多,愈有可能讓你獲得一份能完全掌握專案的工作。


要求薪資時要堅持,要求職稱時別太堅持
任何職稱可能都有一些必需符合的隱性條件,主管在調整職務時必須要考量到整體平衡,如果你一直沒有獲得某職務,絕大情況是真的缺少了什麼,請比較看看其他部門該職務的人比自己多了什麼優點,或以聽取建議的角度正面去問清楚,而不是用負面的想法強硬爭取超過能力的職稱。舉例來說,單純只有專案工作做得好,要求升任資深工程師絕對沒問題,但想要求主管職稱,必須反思一下是否具備足夠的溝通能力,是否具備主動察覺人群問題的天份等條件。職稱不是影響生活的必須條件,但薪資是,如果你在此外其他方面又已經夠優秀了,甚至單純的收支不平衡,當然應該主動要求業界認可水準的薪資。


先記錄想得到的,若有回想到其他項目並且有空就會補上…



5 則留言: