Image by jcomp on Freepik
想要踏進軟體產業,業界除了在意你是否具備產業需要的技能之外,更在意你是否具備與人協作的基本能力。
你知道軟體工程師必備的協作能力有哪些嗎?不妨跟著這篇文章來檢視自己是否有具備踏進工程師領域的能力!
一、有效溝通的協作能力
軟體工程師在完成交付任務時,會仰賴大量的溝通技能,畢竟文字傳遞訊息沒有溫度,容易造成理解成不一致,這都會造成資訊落差!特別是大家的目標不一致,反而會造成專案走向分歧,延宕開會效率。建議可以善用以下方式來進行有效溝通:
1. 提醒自己要適時聆聽
交談的時候,不是一股腦兒的把自己的想法說完,而是要觀察對方是否有理解自己想表達的內容,每個段落都可以停下腳步,確定彼此是否還在同一個目標話題上。同樣的邏輯,當他人與你討論問題時,適時給予眼神回應,若意見相同也不用急著說:「對對對,就用這個方式好」,可以給予眼神肯定或是點頭表示理解來取代中斷談話。而工程師這行業也會需要良好的溝通技能,例如要完成一個功能,需要使用哪些技術,有時工程師心裡會有預設的答案,或是習慣使用的技能,但如果無法聆聽別人建議的同時,也許會錯失更有效率的方式。
2. 適時給予回饋,確認彼此是否在同一個知識點上
工程師都知道,會議討論時一股腦兒的插話討論,會影響對話效率,但有種情況是,如果只是工程師一昧聆聽,最後再提出見解,反而大家還要追朔對應的主題,結果耗時又沒效率;另一種情況是,就算工程師看到問題,也不做反應,到最後整個功能又得砍掉重練時,那也是無效的溝通。
建議在開會的同時,當討論進行到某個段落,工程師可以適時提出可以改進的方案或使用的技術,在討論上給予回饋,不確定或是意義不明的任務,也要在會議當下聆聽別人的分析後,再提出自己的反饋,確認彼此是否在同一個知識點,若沒問題才能進行開發。
舉個例來說,當工程師收到要完成金流系統的任務,如工程師只是就自己的認知去打造金流系統,缺乏溝通的情況下,往往會發現成果與客戶預期的相差甚遠,這都是會對工程師的專業程度打了很大的折扣。
3. 盡量在對話中減少主觀的個人情緒
要讓會議或是討論有效率的另外一個方式,就是減少主觀的強烈個人情緒,例如:「不可能用 B 技術來完成開發這件事!」「用這功能完成開發真的很浪費時間!」這都只是讓人感覺到你根本沒有想要從根本去解決問題,只是一昧地否定!
建議可以換成,「用 B 技術來完成開發這件事是有難度!建議可以使用 C 技術,因為它獨特的特性,可以取代 B 來完成這個專案中比較難的功能。 」否定他人建議時,別忘了告訴別人你為什麼這麼做的原因,讓你的提議更有說服力。
二、整合和善用資源的能力
進行專案的時候,你會收集大量資訊或閱讀許多官方文件,要如何化繁為簡,篩選出合適的解法來落實於專案,這都仰賴於整合的技巧。另外你或許也會需要和其他工程師交流,來得到新的想法,因此如果你能善用手邊的工具或資源,這都可以加快專案進度的腳步,也是業界希望覓得的人才。
而工程師常用的方式有以下兩種:
1. 與其他工程師進行深度的討論,寬廣你的技術視野
可以邀請三五好友共組讀書會,固定時間交流,分享彼此遇到的挫折和解決的方式,透過別人的經驗分享,累積自己在程式碼上的技術視野。
2. 參與社群,定期吸收新知,掌握最有效率的開發方式
坊間有很多技術社群或是研討會可以參加,例如每週二在五倍紅寶石所舉辦的默默會,該聚會不定期舉辦技術講座,你可以透過這個時間認識到業界的新工具,而現場也會聚集許多在程式領域的朋友,並透過實體聚會來認識更多新朋友。
三、規劃和排程的能力
專案最擔心的是延遲驗收,因此一名好的工程師更需要掌握工作時程,若能善用有限時間做緊急又重要的事情,當遇到突發狀況能自主調配進度,相信專案進度就能如期交付。通常主管不會等你完成手邊任務後,才再丟新的需求給你,很多時候,任務是同步交代的下來的,或是新穿插進來的,這些都考驗著工程師專案控管的能力。
目前最流行的專案管理方式為敏捷開發(Agile),敏捷的精神為快速修正內容好因應變化,並視變化為常態,工程師可以快速製作符合需求的工具或產品。
特別是工程師團隊,很多功能都是邊做邊調整,如果一次做完往往會造成細節的修改不易,最糟狀況可能還會需要整個功能砍掉重寫,這都會衍生更多的時間成本,因此工程師團隊很常會使用敏捷開發的精神來做專案,透過檢視最小階段的交付成果,有問題及早發現及早修正,都可以大幅降低後續維護的人力和時間成本。
而常見的專案管理工具有 Trello 或是 Assana 等工具,搭配使用可以讓工程師隨時瞭解專案進度,以利安排時間,或是留下彈性時間處理其它非排程中的突發任務。
小結
如果你認為自己具備以上三大特質,也想加入軟體開發工程師的行列,有或是你面對到職涯的瓶頸,想知道自己也什麼突破的機會,都歡迎你預約免費職涯諮詢,找到自己的新目標,開創更多可能!