2023年6月10日

軟體工程師的高效工作法,成為資深工程師必備的軟實力

這篇文章不是要談什麼演算法優化,也不是要談系統架構的設計。單純想聊的是,軟體工程師做為團隊成員的一員,如何高效率的完成工作。

江湖有個傳言,一個好的資深工程師,工作效率是菜鳥工程師的十倍。我認為這並沒有誇大。畢竟有些時候,菜鳥工程師鬼打牆一整天的問題,資深工程師可能早就遇過了,稍微看一下就知道是什麼狀況,直接秒殺。

作為十倍速工程師,當然除了經驗豐富,他的技術能力跟知識含量也都遠高於剛入行的工程師,不過,還有另一點會被大家忽略的是,其實資深工程師都有一套自己的工作哲學,可以用來提升自己工作的效率,這就是所謂的職場軟實力。

職場軟實力當然有非常多不同的面向,這篇想做的是,整理出一些可以直接參考,並可以拿來實際應用的做法,讓工程師可以提高工作的效率,遠離加班。

高效工作法

1、釐清需求

開發最沒效率的事情之一就是改來改去。

工程師做出來的東西,不是PM要的、不是客戶要的,那就要再花時間調整。所以最好的方法就是防患未然,在實際進入開發之前,盡可能地釐清需求。

雖然我們都知道,把需求徹底的釐清,基本上是不可能的事情,所以我們只能採取盡最大努力的方式,自己想的到的就做,能確認的就確認。

千萬不要認為差不多就好,什麼問題都沒有,就把需求帶回去開發,很多可怕的問題都是在那些被忽略掉的細節中。

要釐清需求有很多種方法,可以在內心先針對需求順過一次,或是畫畫流程圖、做初步的開發規畫評估,會比較容易發現哪邊還有不清楚的地方。

2、安排優先順序

職場上有很多事情事有輕重緩急的。

有些 bug,只有在非常罕見的情況下才會出現,而且是一個沒什麼人在使用的功能,這樣的 bug 基本上就不太需要理會他。但有些 bug 卻是會直接影響到公司營收的,這種問題就是必須要立刻被修復。

為什麼優先順序跟效率有關系?其實在一個團隊中,如果有人一直花時間處理大家不在意的事情,那個人通常就會被認為是沒有效率的。

所以,每位工程師都應該要培養判斷事情輕重緩急的能力,找出團隊或公司最在意的的項目,優先處理這些重要且急迫的事情,才不會落入總是很忙,卻好像什麼事情都沒有好好完成的局面。

新人不知道怎麼安排優先順序,其實可以跟主管或資深前輩確認,否則搞錯事情的優先順序,時間到了真正重要的東西還躺在 stash 裡面,那可能問題不只是加班這麼簡單了。

3、先看別人怎麼做

你通常不會是第一個想到要這樣做的人

除非你是在一個什麼都沒有的新創公司,否則一個成熟的系統,應該都有各種可以參考的流程了,也就是說大概有八成的需求,都可以從既有的程式庫找到類似的作法。

拿到需求,通常可以先思考或探索一下,看看這個東西有沒有可能哪邊已經做過了,有的話就可以直接參考,如果沒有找到,也可以先問問資深人員的建議,他們可能在別的系統有遇過類似的需求,可以直接點出適當的方向。

採用別人已經驗證過的做法,最大的好處當然是不用再踩一次別人已經踩過的雷,這樣當然就可以省下大量時間啦。

如果真的沒人可以問,至少先問問 Google 吧,不然現在最流行的 ChatGPT 也是大家的好夥伴啊。

4、弄清系統架構

你該不會找不到門在哪裡,就想破窗而入吧?

遇到 bug 找不到問題,很多時候是對於系統架構的不熟悉,因為你不知道問題發生在系統的哪一層,只能用猜的,猜錯了浪費時間,猜對了,下次不一定會對。

另外要開發新功能的時候,對於系統架構熟悉的話,就會知道什麼東西該放哪裡,如果不熟系統架構,那隨便亂改,就很像是在蓋違建,反而會造成一些額外的問題。

每個系統都會有一些核心的設計理念,以這些核心概念出發,去看看看前後端怎麼互動的,伺服器怎麼配置的,程式裡面的物件怎麼溝通的,商業邏輯是怎麼被整理的,等等,抓到系統的大方向,才能更有效率的面對問題。

5、認真進行測試

程式絕對不會做錯,只有工程師會做錯

測試是一定要做的。很多工程師對於自己開發的東西很有自信,甚至有時候覺得只是改一兩行不用測試,但問題往往就發生在這些小細節中。

所以只要條件允許的話,都要測試。在本地測試環境測試、在開發環境測試、在stage環境也要測試,甚至上正式環境也要再驗證。為什麼要測試這麼多次?因為問題總是會發生在你覺得不可能會發生的地方。

俗話說的好,及早發現及早治療,趁著剛開發完記憶猶新的時候,修復bug是最有效率的時候了,否則日後被抓出來,又要重新回憶過去的自己到底在寫什麼鬼,是很痛苦的。

結論

追求最新的技術當然很重要,但不要忘了工作的本質是利用有限的資源解決市場上的問題,如果忽略了工作本身是需要技巧的,哪你可能永遠都不知道為什麼加薪升職的不是你,為什麼總是需要加班。

其實還有很多東西可以分享,但是礙於篇幅,可能放在下一篇吧,祝福大家都有好的職涯發展。

相關書籍推薦

Staff工程師之路|獻給個人貢獻者成長與改變的導航指南