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

時空背景

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

我們想要建立文化

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

工作紀律

  • 原則上不鼓勵加班,但也別造成別人加班,但也不希望沒效率,請尊重這個舒服工作的環境,該做什麼時候就做什麼,凡事都不要做的太誇張。
  • 晚到幾分鐘,就晚走幾分鐘,這樣對公司及其他團隊也公平,除非你有特殊狀況,額外和主管提出。
  • 預估工時,大多數情況下,不希望因為時間關係,縮減工程品質,更有彈性去應對很多臨時的狀況,但請珍惜這種制度,其實外面公司的工程師是每天被時間追著跑的,但如果沒有時間及責任概念,預估時間勢必就得回來。
  • 遠端是公司給的彈性,是基於信任及互相的基礎上,但工作績效成效不章或是工作態度不佳,主管可以隨時要求回辦公室上班。
  • 不喜歡微管理,但沒辦法接受把事情或訊息藏著,有事情就直說,事情越透明,越讓別人信任你,就能獲得更高的自由度及空間,反之,則會將獲得更多的觀注。

溝通

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

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

開放接納其他人的意見

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

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

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

提案被拒絕

很多時候提的意見不被採納,或是提案被打槍,往往是方法不正確或準備的不夠充份及想的不夠多,提的時間點對不對,除了提出問題,你也可以幫忙找出可以執行的細節,思考如何減少提案的阻力,試想,如果一間公司,每個人都只提出問題,不找出執行細節,事情有辦法順利推進?

程式碼審查及回顧與重構

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

認知及配合

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

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

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

任何技能都只是入門磚

在應聘任何公司時,薪資都是依據你能幫忙公司解決什麼問題,還有你的專業度及工作態度,才決定你的薪酬。
剛進入這行業的開始,其實有很多要學,前端、後端、團隊協作、溝通、專案管理、測試、CICD、系統除錯及運維、向上管理,如果只會單一技能,那麼你的職業生涯會很短,發展也會很受限。

例如:公司想有一個新的國家,希望有人能當那個國家的 Owner,可以說不是你的工作,也不想學,那這個昇遷及調薪的機會,可能也不會有機會爭取,學好一個專業很重要,但因為公司也不是只靠單個專業賺錢,單一的專業對你在這家公司的生意影響力有限,當你想做的工作和公司團隊目標脫鉤,同時也限制自己可能性。

軟體開發的需求不確定性

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

任何技能都只是入門磚

在應聘任何公司時,薪資都是依據公司需要什麼及你能幫忙公司解決什麼問題,還有專業度及過去工作態度,才決定你的薪酬關鍵。
剛進入這行業的開始,其實有很多要學,前端、後端、團隊協作、溝通、專案管理、測試、CICD、系統除錯及運維、向上管理,如果只會單一技能,那麼你的職業生涯的跑道會很短,發展也會很受限,例如:公司想有一個新的國家,希望有人能當那個國家的 Owner,可以說不是你的工作,也不想學,那這個昇遷及調薪的機會,可能也不會有機會爭取,學好一個專業很重要,但因為公司也不是只靠單個專業賺錢,單一的專業對你在這家公司的生意影響力有限,把自己當成一家公司,只有一個賺錢的商品,同時也限制自己可能性。

績效

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

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

團隊定位

團隊缺什麼,或公司有什麼難題 和你想發展相關 ?
很多時候是公司發展到那,就會冒出需要什麼角色,需要時機,重點是時機來了,有沒有看到,抓不抓的住 ?
所有的機會,伴隨著喜歡和不喜歡的工作,和不喜歡的工作,有些時候無法選擇,得付出一些代價,每個人都一樣的上班時間,如果工作時間才學習,那麼基本上是不太夠。

發展

其實機會一直有,而是足夠成熟拿走了嗎?
有沒有辦法解決更多你的主管問題,達成公司的更多的目標?
是否有足夠的信任及配合度,交給你沒問題?

額外的福利及待遇

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

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

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

系統性思考

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

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

工作的急迫性

依據任務種類

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

依據任務的性質

急迫性的工作

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

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

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

不重要又不急的工作

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

不重要又不急

不用做,或有閒在做。

公平

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

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

工作紀律

  • 原則上不鼓勵加班,但也別造成別人加班,但也不希望沒效率,請尊重這個舒服工作的環境,該做什麼時候就做什麼,不要做的太誇張,基本上不會太管。

  • 晚到幾分鐘,就晚走幾分鐘,這樣對大家及其他團隊也公平,除非你有特殊狀況,額外和主管提出。

  • 預估工時,大多數情況下,不希望因為時間關係,縮減工程品質,更有彈性去應對很多臨時的狀況,但請珍惜這種制度,其實外面公司的工程師是每天被時間追著跑的,但如果沒有時間及責任概念,預估時間勢必就得回來。

  • 遠端是公司給的彈性,是基於信任及互相理解的基礎上,如果工作績效成效不章或是工作態度不佳,主管可以隨時要求回辦公室上班。

  • 不喜歡微管理,但沒辦法接受把事情或訊息藏著,有事情就直說,事情越透明,越讓別人信任你,就能獲得更高的自由度及空間,反之,則會將獲得更多的觀注。

不適任淘汰

  • 當我們找一個人進入團隊都是期待能夠分攤工作,一起有共識,並一起成長,但難免遇到消極不願接納其他人意見,或是經溝通後,態度消極的人, 又看不到改善結果,就會評估員工適不適任,那麼將會進入績效改善計劃,收到警告信或績效改善計劃者,該年度的年終為零,並且取消WFH,直到表現良好。

最後,如果真的不喜歡這份工作

工作做的開心最重要,如果努力過,真的不習慣這裡做事情的方式及文化甚至管理機制,強迫自己適應也很痛苦,也浪費自己的青春,如果真的不適合這裡,或許別的地方更適合你/妳,這邊提前提出來,給幾天假去找工作都行,在沒找到也會將工作安排比較寬鬆些,以便各位請假找下份工作,基本上能和公司好聚好散,日後之前公司打電話來問,也會給好的評價。
P.S. 其實離開這裡,比現在主管更機車的人,更詭異的工作文化,大有人在,很多時候,只是因為職場經驗不夠,沒體驗過,而無從比較。


Tags

Mark Ku

Mark Ku

Software Developer

9年以上豐富網站開發經驗,開發過各種網站,電子商務、平台網站、直播系統、POS系統、SEO 優化、金流串接、AI 串接,Infra 出身,帶過幾次團隊,也加入過大團隊一起開發。

Expertise

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

Social Media

facebook github website

Related Posts

回顧及自省管理工作
回顧及自省管理工作
November 10, 2024
1 min

Quick Links

關於我

Social Media