---
title: "重新打造軟體開發文化 - 透明化團隊規則及默契"
description: "分享軟體開發團隊的文化建立方法，涵蓋工作紀律、溝通原則、程式碼審查及績效制度，適合技術主管或資深工程師參考。"
canonical_url: "https://blog.markkulab.net/post/define-team-rule"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/author/mark-ku"
site: "Mark Ku's Blog"
date_published: "2024-05-11 01:01:35 +0800"
category: "Management"
tags: ["team rule", "management", "engineering culture", "code review", "performance", "communication"]
language: "zh-TW"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "轉載或引用請註明作者並附上原文連結"
---

# 重新打造軟體開發文化 - 透明化團隊規則及默契

> **TL;DR** — 哈囉大家好，歡迎來到 Mark 的技術雜談，我是你的人工智慧主持人璦廷。隨著團隊擴張，過去單靠「默契」運作的開發模式，真的還行得通嗎？ 今天我們要帶您了解如何重新打造軟體開發文化。讓我們來看看文章的核心：透明化團隊規則。當人數倍增，主管必須把運作方式與期待明確寫下來。這個重點值得注意：團隊文化不只要求把事情做完，更要「做好」，並且在犯錯後主動尋求預防方法。 在實際的工作場景中，像是遠端工作或預估工時，彈性完全建立在信任與透明之上。你越主動溝通進度，就能獲得越高的自由度。另外，在進行程式碼審查時，請保持開放的心態接納回饋。畢竟現代職場打的是群架，單一技術只是入門磚，能夠釐清並解決模糊不清的需求，才是資深工程師真正的價值所在。 總結來說，建立清晰的工作紀律與溝通原則，絕對不是為了微管理，而是要讓團隊在快速變動中依然能穩健前行。節目最後，想請大家延伸思考一下：在你的日常工作中，有哪些「不成文的默契」，其實早就應該被明確寫下來了呢？我們下次見。

## 時空背景
隨著組織想在不同國家擴展，目前帶領的開發小組，開發人員將成長到更多人數，但隨著人變得更多，類似的管理面的事情一再重覆的發生，過去的世代可能靠的是彼此間默契，但如今越來越難，開始意識到一個團隊沒有將運行的默契、運作方式及主管們的期待寫出來，就會延伸很多協作上的問題。

## **我們想要建立文化**

* 期待我們的成員，不光只有把事情做完，而是把事情做好，如果需要更多的時間，那就提出來。
* 接受不完美，但每次做完請想想，下次怎麼做會更好，明天做的比今天更好。
* 我們能夠接納錯誤，只要是人都會犯錯，請再犯錯後，請試著提出下次如何預防或避免組織再犯的方法。
* 帶著問題來問題時，想一下，請告訴你的夥伴，你試了些什麼，所有的問題都只是起點? 而不是終點。
* 積極主動，盡可能和你的夥伴同步狀態，且樂於分享你所學到。
* 鼓勵不同想法，尊重每個夥伴的意見 。
* 先有團隊績效，才有個人績效。
* 把手邊的事做好是本份，額外貢獻的才是績效。
* 覺得現況，不滿意，可以聊聊，更成熟的人，請帶些線索或解決方案來討論更好。
* 我們的步調很快，除了寫程式，還會有很多額外的事，不會只有寫坐在位置程式這件事，也要從事溝通、釐清需求、分析，因為每個人都很忙，常常會需要將不清楚的問題釐清及提出解決方案，當系統伺服器有問題時，要協助決解決，工作很辛苦，標準很高，主管很嚴格，會直接給你反饋，也有很多挑戰，也可以學到的很多，壓力不小，公司需要這樣的人，如果你不喜歡這樣做事的方式，隨時可以選擇離開或不用接受這份工作。

## 工作紀律

* 原則上不鼓勵加班，但也別造成別人加班，但也不希望沒效率，請尊重這個舒服工作的環境，該做什麼時候就做什麼，凡事都不要做的太誇張。
* 晚到幾分鐘，就晚走幾分鐘，這樣對公司及其他團隊也公平，除非你有特殊狀況，額外和主管提出。
* 預估工時，大多數情況下，不希望因為時間關係，縮減工程品質，更有彈性去應對很多臨時的狀況，但請珍惜這種制度，其實外面公司的工程師是每天被時間追著跑的，但如果沒有時間及責任概念，預估時間勢必就得回來。
* 遠端是公司給的彈性，是基於信任及互相的基礎上，但工作績效成效不章或是工作態度不佳，主管可以隨時要求回辦公室上班。
* 不喜歡微管理，但沒辦法接受把事情或訊息藏著，有事情就直說，事情越透明，越讓別人信任你，就能獲得更高的自由度及空間，反之，則會將獲得更多的觀注。

## **溝通**
各位有沒有想過，職場每個人只要做好自己的事就好，為什麼要和別人溝通？  

而今的商業社會己是個打群架的時代，一個人的專業，是很有限的，如果要讓你的專業發揮價值，你也必須爭取更多人的支持協助。 工作中的溝通往往是為了成事的手段，讓彼此了解彼此的難處，達成共識，獲取更多人及資源的支持，進而解決問題。

## **開放接納其他人的意見**
沒有人要針對誰做程式碼或個人的批評或究責，而大多時候 你 / 妳的職業生涯，大概不會有幾個人會告訴你/妳要調整什麼，如果不知道要改善些什麼，就算換了幾份工作還是會遇到一樣問題，團隊也會因為做的不好，造成影響，同時誰也都不希望接手到不好維護的程式碼，或遇到不好溝通的同事，對於別人提出來的看法，別太看重你/妳 的作品或自己，反面來想，同時這也是讓你/妳知道如何變得更好，要更開放的角度去接納別人給的回饋。  

如果有人提出類似這樣的回饋，身為一個專業的工作者，採取下面的行動，可能會更好

* 基於團隊，思考這件事情該不該做
* 接下來，該採取什麼動作?

## 提案被拒絕
很多時候提的意見不被採納，或是提案被打槍，往往是方法不正確或準備的不夠充份及想的不夠多，提的時間點對不對，除了提出問題，你也可以幫忙找出可以執行的細節，思考如何減少提案的阻力，試想，如果一間公司，每個人都只提出問題，不找出執行細節，事情有辦法順利推進?

## 程式碼審查及回顧與重構
無論是誰幫你/妳 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，直到表現良好。

---

## 關於本文與作者

本文出自 [Mark Ku's Blog](https://blog.markkulab.net/post/define-team-rule)

授權條款： [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — 轉載或引用請註明作者並附上原文連結

### 關於作者

**[Mark Ku](https://blog.markkulab.net/author/mark-ku)** — Software Solution Provider

- 10+ 年資深軟體工程師，現為 AI 應用 Builder
- 專注大型平台架構設計，從北美電商到AI SaaS訂閱收費系統
- 結合 AI Agent 與自動化，打造高效可演進的產品技術基礎

### 作者開發的免費工具

以下工具皆可免費使用：

- [免費 PDF 簽名工具](https://blog.markkulab.net/tools/pdf-sign): 線上 PDF 簽名工具，瀏覽器內完成手繪、打字、上傳簽名，可拖曳放置、縮放、下載。所有處理都在你的裝置完成，檔案不會上傳。
- [VS Code Refactory](https://blog.markkulab.net/tools/refactory): Refactory 是一款 VS Code 重構擴充套件：34 個重構動作、37 條 code smell 檢查、Code Health 儀表板、18 種語言、534 支測試。懂你的專案慣例：介面放哪、DI 註冊寫在哪、'use client' 該不該加；還會用 git 修改頻率 × 複雜度排出「該先修哪個檔案」，並一鍵把壞味道交給你自己電腦上的 Claude Code 修。免費使用，原始碼不離開你的機器。
- [DB-Kit 資料庫管理工具](https://blog.markkulab.net/tools/db-kit): DB-Kit 是一個用 Tauri + Rust + React 打造的輕量跨平台資料庫管理工具，用單一一致的介面同時管理 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB、Redis、Kafka、Elasticsearch 與 RabbitMQ 十一種資料來源：連線密碼以 OS keychain 加密、SSH Tunnel、完整 CRUD、視覺化查詢建構器、多結果集同時顯示、跨連線資料傳輸與比對同步、Excel / CSV 匯入匯出、執行計畫視覺化、ER 圖、排程備份、SQL 壓力測試（p50～p99 延遲百分位）、15 條規則的 SQL 審查、Kafka 訊息瀏覽與監控告警；繁中 / 英文雙語介面，內建 AI 助手（自然語言生成 SQL、AI 審查與調校建議）與命令列工具 dbk。免費開源（MIT），提供 Windows / macOS / Linux 安裝檔。
- [VS Code Super Mermaid](https://blog.markkulab.net/tools/super-mermaid): Super Mermaid 是一款 VS Code 擴充套件：開箱即用的漂亮 Mermaid 圖表，自動上色、即時預覽、滑鼠平移縮放、PNG / SVG 高解析匯出，內建 21 種範本與多種主題。免費開源（MIT）。
- [React Super Mermaid](https://blog.markkulab.net/tools/react-super-mermaid): react-super-mermaid 是一個開源 React 元件庫：一行 <MermaidViewer> 即可渲染漂亮的 Mermaid 圖表，內建 colorful / sketch 主題、平移縮放、圖內搜尋、SVG / PNG 高解析匯出。輕量、SSR 安全、完整 TypeScript 型別。免費開源（MIT）。
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/tools/jira-super-mermaid): Atlassian Forge app：在 Jira issue 與 Confluence 內文直接寫 Mermaid 語法，畫流程圖、時序圖、狀態機與甘特圖。11 種圖表、SVG / PNG 匯出、明暗主題、完整中日韓文字支援。取得 Runs on Atlassian 資格：圖表存在你自己的站台，app 不呼叫任何第三方服務。免費，即將上架 Atlassian Marketplace。
- [Mermaid 線上預覽](https://blog.markkulab.net/tools/mermaid-preview): 在瀏覽器裡寫 Mermaid、即時看圖，整張圖表壓進網址就能分享。免註冊、不上傳伺服器，相容 mermaid.live 的分享連結。
- [React Intl Phone Number](https://blog.markkulab.net/tools/react-intl-phone-number): react-intl-phone-number 是一個開源 React 元件：framework-agnostic、不依賴 antd，提供 E.164 進出、可搜尋國旗 / 國碼下拉、可配置驗證等級（strict / mobile-strict / loose）、可主題化 CSS 與 i18n，電話邏輯由 google-libphonenumber 驅動。輕量、完整 TypeScript 型別。免費開源（MIT）。
- [Uptime Kuma Cluster](https://blog.markkulab.net/tools/uptime-kuma-cluster): 把單機版 Uptime Kuma 改造成高可用叢集：OpenResty + Lua 智慧負載平衡、MariaDB 共享狀態、健康檢查與自動 Failover，附叢集管理 REST API，一行 Docker Compose 啟動。免費開源（MIT）。
- [特教專案](https://blog.markkulab.net/education): 為特殊教育學生製作的學習教材

### 每日 Podcast

- [科技新鮮事](https://blog.markkulab.net/category/tech-news): 每日精選 AI 與科技趨勢，透過語音摘要快速掌握最新技術動態，涵蓋 AI 應用、軟體架構、DevOps 與工程實戰。 — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/category/ai-stock-chat): 每個交易日用 AI 分析台股盤勢，以雙人對話聊當天的盤中觀察與隔日預測。 — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml

### 電子報

[訂閱電子報](https://blog.markkulab.net/subscribe) — 第一時間收到新文章通知，無垃圾信、隨時可取消訂閱。
