軟體PM一路走來,累積了幾年經驗,也跟不少工程師合作過,這篇想跟大家聊聊在我的角度看來,認為好的工程師有什麼特質。
軟體開發大多是一種團隊合作,其實比起工程師的個人能力,我會更在乎工程師的協作能力,能不能好好的跟團隊溝通,達到有效合作能力。
這段話並不是說軟體工程師的個人能力不重要,如果今天當你的能力已經達到MVP等級可以組一人團隊的話,那當然超級棒,直接省下所有的溝通,一人就可以抵整個團隊,自己跟自己溝通速度最快,這個目標我想可能是每個工程師最終都想要達成的目標。
但這種像神一般的人也不是路上隨便抓的到,那個修練過程修仙一樣,也需要時間的累積,所以我們先來聊聊凡人如我該怎麼做
幹,會不會第一點聽起來就超嚴苛(笑死)
我非常重視工程師的團隊協作能力,在挑選合作的工程師時,一個能力80但團作團隊協作能力60的人,跟一個能力60但團隊協作能力80的人,我百分之百會選擇第二個沒有任何猶豫。
協作能力嚴格算起來是應該算是軟實力的一種,包含溝通/積極性/同理心在內, 其實硬實力的成長上每個人通常都可以多少預知道自己的成長曲線在哪,時間到了你就會爬到那了(佛),但是面臨一票和你有同等硬實力的人,可以讓你脫穎而出的就是這類的軟實力,而這些東西恰恰是我身為PM最最重視的。
有時候在開發一個功能時,工程師該思考到的不僅僅是這個功能我自己好不好做、能不能做,更多時候你應該還要考慮的是,你寫出這個code或文件能讓你的前端/後端夥伴容易接手嗎?
而同理別人難處是什麼意思? 當今天你的合作夥伴跟你求救,在實作上遇到難題,需要換種方式協作時,你能不能給予幫助 (各種幫忙都可以,舉凡幫忙找資源/跟我講/找人求救/願意花時間繞路等) 一起想出另一個解決辦法? 還是覺得不關你的事,反正你就是堅持原本的做法,他遇到難題是他家的事?
如果你是第二種的,跟我說沒關係,我保證不打死你^^凸
有過團隊開發經驗的工程師就會知道,開發時並不是所有的時間都花在寫code上,你會花大量的時間在各端的溝通/文件/串接上。
坦白講以現在的科技發展,除了真的很新的技術或很客製化的獨特功能外,沒有什麼code和功能是只有你寫得出來不可取代的,蠻難聽的但也是事實,你並不特別,不用把自己想的多厲害,沒有技術不可取代,只要你一被PM判定難合作,絕對會把你踢出團隊外,因為你可能就像個不定時炸彈一樣會直接炸掉整個團隊的心血,在風險控管上PM絕對會將你視為頭號敵人。
即便現在他個人能力還不一定強,也一定會被我放入口袋名單,未來若還有機會會優先考慮合作,這種工程師就是績優股,未來肯定會閃閃發亮,非常容易合作的工程師,在團隊中也會非常受歡迎。