Mark Ku's Blog
首頁 關於我
重新打造軟體開發文化 - 透明化團隊規則及默契
Management
重新打造軟體開發文化 - 透明化團隊規則及默契
Mark Ku
Mark Ku
May 10, 2024
1 min

時空背景

隨著組織想在不同國家擴展,目前帶領的開發小組,開發人員將成長到更多人數,但隨著人變得更多,類似的管理面的事情一再重覆的發生,過去的世代可能靠的是彼此間默契,但如今越來越難,開始意識到一個團隊沒有將運行的默契、運作方式及主管們的期待寫出來,就會延伸很多協作上的問題。

我們想要建立文化

  • 期待我們的成員,不光只有把事情做完,而是把事情做好,如果需要更多的時間,那就提出來。
  • 接受不完美,但每次做完請想想,下次怎麼做會更好,明天做的比今天更好。
  • 我們能夠接納錯誤,只要是人都會犯錯,請再犯錯後,請試著提出下次如何預防或避免組織再犯的方法。
  • 帶著問題來問題時,想一下,請告訴你的夥伴,你試了些什麼,所有的問題都只是起點? 而不是終點。
  • 積極主動,盡可能和你的夥伴同步狀態,且樂於分享你所學到。
  • 鼓勵不同想法,尊重每個夥伴的意見 。
  • 覺得現況,不滿意,可以聊聊,你是個更成熟的人,請帶些線索或解進方案來討論更好。
  • 我們的步調很快,除了寫程式,還會有很多額外的事,不會只有寫坐在位置程式這件事,也要從事溝通、釐清需求、分析,因為每個人都很忙,常常會需要將不清楚的問題釐清及提出解決方案,當系統伺服器有問題時,要協助決解決,且我們的工作很辛苦,標準很高,主管很嚴格,也有很多挑戰,也可以學到的很多,壓力不小,如果你不喜歡這樣做,隨時可以離開或不用接受這份工作。

溝通

各位有沒有想過,職場每個人只要做好自己的事就好,為什麼要和別人溝通?

而今的商業社會己是個打群架的時代,一個人的專業,是很有限的,如果要讓你的專業發揮價值,你也必須爭取更多人的支持協助。 工作中的溝通往往是為了成事的手段,讓彼此了解彼此的難處,達成共識,獲取更多人及資源的支持,進而解決問題。

開放接納其他人的意見

沒有人要針對誰做程式碼或個人的批評或究責,而大多時候 你 / 妳的職業生涯,大概不會有幾個人會告訴你/妳要調整什麼,如果不知道要改善些什麼,就算換了幾份工作還是會遇到一樣問題,團隊也會因為做的不好,造成影響,同時誰也都不希望接手到不好維護的程式碼,或遇到不好溝通的同事,對於別人提出來的看法,別太看重你/妳 的作品或自己,反面來想,同時這也是讓你/妳知道如何變得更好,要更開放的角度去接納別人給的回饋。

如果有人提出類似這樣的回饋,身為一個專業的工作者,採取下面的行動,可能會更好

  • 基於團隊,思考這件事情該不該做
  • 接下來,該採取什麼動作?

程式碼審查及回顧與重構

無論是誰幫你/妳 Code review,改完記得回過頭去找當初幫妳 Code review 的人,這點很重要。另外,養成每隔一段時間回頭檢視自己曾經寫過的程式碼是一個好習慣,你可以提出重構需求,建立一個票據(Ticket),並與你的主管討論來安排這件事,有時候需求會比較趕,可能會寫出難以維護的程式碼,這種情況下也可以開立一個票據來記錄,之後再回過頭來改進。

認知及配合

很多時候最佳解,並不是最適合的解決方案,官方文件或是只從一個面向來看,可能並沒有沒考量到其他維度,像是舊有的系統、當時的時空背景、 資源限制、團隊協作上、時間、老闆們的期待等,都是一些限制。

由於同事與同事經驗和認知的差異,在不同的時空背景,會有不同的決策,在成長過程中,總會遇到當下聽不太懂為什麼,但隨著時間則越來越了解別人決策為什麼是這樣,如果無法對整體的結果負責,由於在該方面的研究經驗也不太夠,暫時也無法理解別人原由,那麼請先學會放下,試著去配合別人,學會它,再來討論。

主管們會尊重參考大家的意見,但主管的角色是公司指派對團隊整體的結果負責,這點也是需要互相理解,在重大議題,最終對結果負責的人,應該有擁有對關鍵事情有最終的決定權。

軟體開發的需求不確定性

公司是這樣的,越基層則越明確,越高階工作職位,往往都是解決越不清楚的工作,成功率也越低,越成熟的開發人員,都應該要具備釐清解決模糊需求及問題的能力,不會是什麼事都是清清楚楚的,尤其是軟體開發上,很多時候每個人對相同的文字,會有不同的認知。

績效

Jornior Developer 在工作的要求上,會比較單純,熟悉工作環境,專注把被交辦的工作做的更好,然而更成熟的開發人員,績效不會只有滿足於完成交辦的程式任務。
60% 常態開發 - 日常開發工作(效率、品質、團隊協作、專案負責的事項重要度)。
40% 額外做的 - 溝通、協調、釐清、提案、協助帶領新人、幫助團隊成長、重構、導入新技術並解決問題、識別及解決部門問題 、領導專案、額外的貢獻等。

P.S. 年資資深並不代表能力資深,能力也不限於軟體開發的技術學有專精外,我們更在意的是做事和思考事情上及應對進退,是不是足夠成熟。

額外的福利及待遇

公司會有一些額外的差別的福利待遇會和你的績效表現及信任有關,不會是一體適用,因為貢獻和信任度的不同,就會不同,這些額外的福利都得用時間證明妳自己來換,當你做一樣優秀時,當然你也可以自己來談。

  • 面試或帶領新人的機會
  • 參與重大議題或方向的會議
  • 帶領專案
  • 根據年度考核給予或是在家工作的天數。
  • 額外的表現或是超出預期的績效,給予額外的假。
  • 重大專案的專案獎金。
  • 美國出差機會,其實不是福利 ,而是責任,請想想 你/妳 去美國能幫上團隊什麼?

P.S. 我們看的是長期持續穩定的表現,而不是看單點的表現。

系統性思考

隨著時間越久,越是大型的系統,常常會發現上次解的bug 又回來了,實際上是沒解決根本上的問題,但往往解決根本問題的成本都很高,因此更成熟的開發人員,我們會希望在思考問題上,能夠多花一點時間,使期中間長不在發生,針對複雜問題的提案,可以提出至少兩種的解決方案(短期、中期、長期)。

短解 - 只解決眼前問題,暫時的解法,投入成本小,很有機會重覆發生。
槓桿解 - 在每次做時多花點時間,讓其在中長期不在發生。
根因解 - 投入的成本高,不容易達到。

工作的急迫性

依據任務種類

影響生意的 Bug > 需求 > 一般的 Bug > 優化

依據任務的性質

急迫性的工作

影響到不能下單或帳務誤錯誤,可能造成損失,大老闆特別交代的,一定要立刻完成的,立刻做。

重要的工作(排定的計劃)

light house、黑五頁面,照規劃著做。

不重要又不急的工作

如重構、優化、利用空檔做。

不重要又不急

不用做,或有閒在做。

公平

團隊協作上,很多時候,會遇到不公平的事,但如果,只想著公平的話,很多事情是做不下去的,只能打帶跑,做到哪就到哪,環境總有限制,若無法用各種方法技巧Push 他人,就只能依據現況,選擇做能做的,這時就得看誰更在意這件事的結果,公平會不會比創造這價值更重要。

P.S.如果敵不動,我不動,友軍不動,我也不動,大家不就僵持在那邊了。


Tags

Mark Ku

Mark Ku

Software Developer

8年以上豐富網站開發經驗,直播系統、POS系統、電子商務、平台網站、SEO、金流串接、DevOps、Infra 出身,帶過幾次團隊,目前專注於北美及德國市場電商網站開發團隊。

Expertise

前端(React)
後端(C#)
網路管理
DevOps
溝通
領導

Social Media

facebook github website

Related Posts

企業文化與安靜離職及應對策略
企業文化與安靜離職及應對策略
June 13, 2024
1 min

Quick Links

關於我

Social Media