溫水煮青蛙:改變你的團隊氣氛


第一屆開發者寫作松,軟體工程師軟實力系列第三篇
延續上一篇文章提到,開發團隊有交流才會有前瞻性,到底是團隊還是聚在一起的個人開發者?首先來認識什麼是良好的開發環境。

優良的開發環境

己欲立而立人,你所希望的自由快樂工作環境,別人也會希望,所有團體的品質都建立在自重和體諒夥伴,這裡說的是團隊夥伴,不是每天計較誰工作多誰打混的同事。

人與人之間的相處重點在了解和尊重。

凡事都講求態度,互相合作和互推責任就在一念之間,你的確沒有義務幫助別人,但在一個互利的團隊中你會比較快樂些,改變自己才有可能改變環境。

若你改不了環境,那就只有適應或換一個環境兩種選擇。

好的環境:
一早起來,除了天氣冷以外,沒有太多的阻礙,就這樣浩浩蕩蕩晃去上班了。喝著早餐的奶茶邊看信箱,有幾封公司公告、幾封技術期刊、還有幾個API更新通知,喔?開發者寫作松?!酷誒~貼到部門群組給大家看看!
順手整理乾淨後,開啟XCode來繼續昨天做到一半的issue,嗯?這裡的設計稿怪怪的?做得出來但使用流程不太順?跟PM和設計師討論一下好了,看能不能有更好的方法。
下午要開組內例會,先看一下Trello看板下午要討論哪些議題,不了解的先Google一下。咦?收到一封Merge request,可是我還在整理下午開會的文件,發個訊息跟同事說我明天早上會看好了,以免他一直等。
會議中組長分享了馬斯克挖了一條隧道的新聞,夥伴們七嘴八舌的討論著那隧道的優劣利弊和未來應用。旁邊同事在恍神?可能是不舒服吧,同事們接連關心他,問問他需不需要維他命C和提醒他多喝水。
接著討論正事,Library的畫面設計稿出來了,針對iOS和Android各自有哪些需求和顧慮,每個專案是否都沒問題。接著同事分享之前參加研討會的收穫、有人想買蘋果無線充電器問要不要大家一起團購、因為疫情關係組內準備了一罐3C螢幕消毒清潔液,勤洗手後也不要忘了手機也要消毒而且不能用酒精。
恩~下班時間到了,今天進度做完了就收一收下班吧,跟同事揮個手就離開辦公室開始下班後的生活。
補充:如何正確清潔消毒手機?
<br>
不好的環境:
鬧鐘響起被按掉三次,可惡又要上班了!叼著吐司衝進辦公室,免得被同事閒話……,把XCode打開卻想不起來昨天做到哪???那先看看信箱好了,痾~三十幾封信件,哪些重要哪些不重要啊?算了直接關掉,回去做昨天的issue,阿?設計稿好像有點怪?阿算了,要去跟PM和設計師溝通挺麻煩的,當作沒這回事繼續做完好了,反正小功能不重要。
下午收到一封Merge request,我還在忙拉!有空再看。同事走過來說要開會了,驚!原來今天要開會喔??!會議室裡一片沈默,組長分享科技新聞都沒人理他,討論Library規格時,大家都沒有意見,角落那個菜鳥好像想說卻又不敢說?旁邊那個誰居然在恍神?是怎樣啊覺得跟你沒關係就是了?!冗長沒啥意義的會議終於結束了。
就這樣超過了下班時間,但前輩都還在位子上,我該不該下班啊??!!吼~終於熬到下班了,累得要死根本沒有心情參加任何活動啊!直接洗洗睡吧。

從人開始

上面故事講到幾個重點:

  1. 訊息雜亂除了自己亂還會連帶影響團隊,身為資訊人,就該讓資訊被管理,刪除過多的訊息留下有用的,達成資訊極簡。
  2. 就算你是主管,管別人之前也先管好自己,以身作則。
  3. 有效率的管理工作時間和進度,而不是被時間追趕,尤其寫Code通常都需要一段完整不被干擾的時間,讓自己在衝刺和休息階段交替。
  4. 就跟家庭一樣,團隊是共同營造的,你不發表意見就是你的損失,至少在一個重腦力不重體力的工作,你不動腦就沒有價值了,想永遠當碼農就繼續保持沈默。
  5. 讓人能勇於發表意見的環境也是需要被塑造和訓練的,尤其台灣學生上課都不敢舉手,不可能一畢業就改變了,先從引導發言開始。
  6. 你的問題也可能是別人遇到的問題,工程師最討厭的就是重工。分享資源跟開放式原始碼是一樣的概念,你拿了別人的Code但卻抓著自己的技術不願分享,安捏剛丟?
  7. 同事都是人,只要是人就會有狀態好壞,互相體諒而不是互相猜忌,才能建立團隊信任。

大環境的改變不容易,但可以從小事情做起,包含團隊氣氛營造、軟硬體資源建設、釐清團隊角色分工,積少成多就能逐漸改變。

切記不要大刀闊斧地改革,不然會發現習慣問題引來更大的反彈。

優化團隊

角色定位

當每個成員都了解團隊合作的重要性後,就是釐清自己在團隊的位置,位置沒有分高低,只有特質和經驗的差異。

  1. 讓團隊成員願意嘗試,就從主管帶頭。
  2. 技術主管和管理主管可以分開,甚至可以有意見抗衡機制,例如投票。
  3. 帶人要帶心,先弄清楚誰是團隊的精神核心。
  4. 都沒有前輩指導怎麼辦?那就自立自強當別人的前輩吧!到處搜資源是工程師的必備技能,技術社團這麼多,挑喜歡的去。
  5. 上班好同事,下班不認識?如果有共同的興趣可以交流,還會想裝作不認識嗎?一起玩Switch真的是個不錯的選擇。
  6. 每個成員都是獨立的個體,依據個性、背景、經驗,都會有適合的角色,除了團隊默契以外,了解自己的專長、不足和興趣,都有助於找到自己的角色定位。例如我喜歡將複雜的技術簡化成淺顯易懂的教學文件,因此就很適合做新人教育,前輩喜歡研究各式各樣的新技術,就很適合做團隊的新知分享。

簡化流程

首要任務是減少雜事,需要處理一堆文件和雜事時,不要指望團隊有時間做分享和交流。
以下是目前我覺得不錯的幾項小工具:

  1. 小番茄工作法 用來管理個人時間和工作規劃

  2. Trello看板管理組內相關會議記錄、公告、規範、各項行政文件連結

<br>
工作日誌等等的文件都可以斟酌用公版, 就跟Code一樣,使用第三次時就可以考慮封裝共用。

共享資源

建立友善的學習環境,除了在團隊群組上發布新知,公共書庫或線上書庫都是不錯的選擇,技術社群活動分享、議題討論、讀書會等,都可以嘗試。
團隊除了完成工作以外還可以做些什麼?共享零食櫃,美食、遊戲情報交流,團購有助於提高凝聚力,需要運動的夥伴一起去運動,團隊需要什麼就做什麼,只要有人起頭就能漸漸有變化。

人的問題Q&A

Q1: 群組一片沈默都已讀不回?
A1: 人與人之間跟收音機一樣,要聽到聲音得先調整自己的頻率,是否是他們感興趣的事物?是否他們心裡認為沒有意見就不用回應?還是認為已讀不回表示否定?這些都是要靠溝通和瞭解原因,而不是只看結果。
<br>
Q2: 團隊成員不願意分享和交流?
A2: 是不願意分享還是覺得自己沒什麼東西值得分享?大部分的工程師都會預設自己會的別人也應該會,因此溝通哪些是團隊成員感興趣的主題或需要了解的技術,訂出目標後大家來分工,這樣就簡單多了。
<br>
Q3: 團隊成員冷漠不回應怎麼辦?
A3: 工程師也是很講究人情的,若你突然跟他熱絡的打交道,十個有八個心裡OS:我跟你很熟嗎?!有好東西跟大家分享、出國玩帶一點伴手禮,跟同事社交的方法就跟在學校交朋友一樣,平時經營好關係,而不是有問題時才來問,然後指望別人熱心的教你。

面試官經驗談

舊的成員都有默契了,那新的成員呢?
在面試時篩選出能團隊合作的人選,並且針對當前團隊角色需求,尋找有特定特質的人才,針對新人特質擬定不同的訓練計畫。

在典型的技術職中,雖然不是態度決定一切,但技術好練態度難改。

有些特質,在一個團隊中若有兩個剛好抗衡的,會是最佳狀態,例如創新和務實。而有些特質,則是工程師都應該具備的,例如發現和解決問題、精益求精、樂於學習新知。有些則是團隊裡只要有一個這樣特質的人,就能有所影響,例如愛管閒事、樂於社交。
這些特質都不是靠訓練就能擁有的,因此在面試時,將團隊需求考慮進去有助於團隊人才配置更完整。

給新人們的建議

一個蘿蔔一個坑,你要先知道那個坑要什麼,才知道要如何把自己塞進去。
了解職務內容、職場重視哪些特質、團隊合作需要哪些基本能力,都跟刷題一樣重要。

#APP #iOS





APP工程師軟實力
工程師有很多新技術要學、舊技術要補,但在軟體開發過程中,有更多的是軟實力和經驗累積。 希望可以藉由文字傳遞,讓團隊學習沒有斷層,自我學習更加突破。

留言討論