開源軟體人才培育機制
一、培育目標
開源軟體人才培育的核心,不應僅停留在 Git、GitHub、程式語言或開源工具操作等基礎技能,而應以培養能夠實際參與國際開源專案、持續貢獻程式碼與技術成果,並逐步取得社群信任與角色認可的人才為目標。
整體培育目標可分為四個層次:
-
具備開源參與能力 熟悉 Git、Issue、Pull Request、Code Review、CI/CD、測試、文件與開源授權等基本開發流程。
-
具備實際貢獻能力 能理解既有大型開源專案架構,完成環境建置、問題分析、Bug 修正、測試與功能開發。
-
具備國際協作能力 能透過 Issue、Mailing List、Slack、Discord、GitHub Discussion、Community Meeting 等方式與國際開發者協作。
-
具備長期社群發展能力 由一般使用者逐步發展為 Contributor、Reviewer、Committer,甚至 Maintainer,形成持續投入國際開源社群的人才梯隊。
整體人才發展路徑可設定為:
User → Learner → Contributor → Regular Contributor → Reviewer → Committer → Maintainer
二、培育基本原則
(一)以真實開源專案為學習場域
培育過程應直接選擇正在持續開發、具有成熟治理制度與國際社群的開源專案,不另外設計與實務脫節的模擬題目。
例如可依領域建立不同培育 Track:
| 領域 | 可選擇之開源專案 |
|---|---|
| AI Infrastructure | vLLM、SGLang、Ray、KubeRay |
| Cloud Native | Kubernetes、CNCF Projects |
| Data Engineering | Kafka、Airflow、DataFusion |
| Database | PostgreSQL |
| Distributed Storage | Apache Ozone |
| AI / Data Platform | Apache Software Foundation相關專案 |
| System Infrastructure | Linux、LLVM、OpenTelemetry等 |
每位 Mentee 原則上應選定一個主要專案長期投入,避免同時參與過多專案而無法建立技術深度及社群關係。
(二)以專案實作取代傳統授課
課程僅作為前期基礎能力補強,不應成為人才培育的主要形式。
整體投入時間建議:
- 基礎課程:20%
- 開源專案實作:50%
- Mentor 指導與 Code Review:20%
- 社群參與與成果分享:10%
培育成果應以實際參與國際開源專案的紀錄作為主要依據,而非課程時數或測驗成績。
(三)採師徒制培育
每個培育 Track 應配置具實際開源經驗的 Mentor。
Mentor 的角色並非一般授課講師,而是:
- 協助選擇適合的開源專案
- 協助理解專案架構
- 協助建立開發環境
- 協助選擇適合的 Issue
- 協助第一次 Pull Request
- 協助進行 Code Review
- 協助與國際 Maintainer 溝通
- 引導參與 Community Meeting
- 協助建立長期貢獻方向
建議配置比例為:
1 位 Lead Mentor + 2~3 位 Mentor + 5~10 位 Mentee
每位 Mentor 不宜同時指導過多 Mentee,以維持實際技術指導品質。
三、人才培育流程
整體培育可規劃為七個階段。
第一階段:Select-人才與專案媒合
期間:約 1~2 週。
主要工作包括:
- 評估程式設計能力
- 評估英文技術閱讀能力
- 評估 Git / Linux 基礎
- 了解技術興趣
- 了解職涯發展方向
- 選擇適合的開源專案
- 指派 Mentor
選才時不宜僅以程式能力評估,亦應觀察:
- 自主學習能力
- 問題拆解能力
- 溝通能力
- 持續投入意願
- 面對失敗與修改要求的耐受度
開源開發大量依賴非同步協作,因此自律性及溝通能力往往與程式能力同樣重要。
第二階段:Learn-開源基礎能力
期間:約 2~4 週。
主要培育內容包括:
開發工具
- Git
- GitHub / GitLab
- Branch
- Commit
- Pull Request
- Merge
- Rebase
- Conflict Resolution
開源協作
- Issue
- Pull Request
- Code Review
- CONTRIBUTING.md
- CODE_OF_CONDUCT.md
- Release Note
- Changelog
軟體工程
- Unit Test
- Integration Test
- CI/CD
- Coding Style
- Static Analysis
- Documentation
開源治理
- Open Source License
- Contributor License Agreement
- Developer Certificate of Origin
- Maintainer制度
- Contributor Ladder
完成此階段後,應能理解一個成熟開源專案的基本開發與治理流程。
第三階段:Build-建立專案理解能力
期間:約 2~4 週。
此階段不要求立即撰寫程式,而是要求完整理解開源專案。
每位 Mentee 至少完成:
- Clone Repository
- 建立本機開發環境
- Build Project
- 執行測試
- 執行 Sample / Demo
- 閱讀 Architecture Documentation
- 閱讀 CONTRIBUTING.md
- 找到主要 Maintainer
- 找到 Community Meeting
- 閱讀至少 3~5 個已 Merge 的 Pull Request
同時製作一份:
Open Source Project Map
內容包括:
- 專案目的
- 系統架構
- Repository Structure
- 核心模組
- Maintainer
- Release Cycle
- Issue分類
- Contribution流程
- Community Communication Channel
此階段的目的,是讓工程師先理解專案,再開始貢獻。
第四階段:First Contribution-第一次開源貢獻
期間:約 1~2 個月。
第一次貢獻不宜強制要求大型功能,可由較低風險任務開始,包括:
- Documentation
- Unit Test
- Test Coverage
- Example
- Bug Reproduction
- Small Bug Fix
- Good First Issue
- Development Tool
- Benchmark
- CI改善
標準流程為:
Issue閱讀 → 問題重現 → 原因分析 → 與社群討論 → 實作修改 → 測試 → Mentor Review → Submit PR → Upstream Review → 修改 → Merge
第一次 Pull Request 的重要性不在於程式碼量,而在於完整經歷一次國際開源協作流程。
第五階段:Collaborate-國際社群協作
期間:約 1~2 個月。
完成第一次貢獻後,應逐步從單純「提交程式碼」轉向「參與社群」。
參與方式包括:
- 回覆 Issue
- 提供 Debug資訊
- 參與 GitHub Discussion
- 協助其他 Contributor
- Review其他 PR
- 參與 Community Meeting
- 參與 Mailing List
- 參與 Slack / Discord討論
- 提出技術建議
此階段應特別培養:
技術英文能力
不是一般英文會話,而是:
- Issue描述
- Technical Discussion
- PR Description
- Review Comment
- Proposal
- Design Discussion
非同步協作能力
包括:
- 清楚描述問題
- 提供重現方式
- 提供 Log
- 提供 Benchmark
- 說明設計考量
- 回應 Review意見
- 接受修改要求
第六階段:Own-建立技術責任領域
期間:約 2~6 個月。
若每次僅處理零散 Issue,很難形成長期社群角色,因此應逐步建立固定技術領域。
例如:
- Scheduler
- Storage
- Networking
- PostgreSQL Extension
- GPU Runtime
- Test Infrastructure
- Documentation
- Performance Benchmark
- Kubernetes Operator
Mentee 應逐步成為某個模組或議題的固定貢獻者。
此階段可開始:
- 主動提出 Issue
- 處理較大型 Bug
- 開發 Feature
- 撰寫 Proposal
- 建立 Benchmark
- Review他人 PR
- 協助新人
此時角色逐漸由:
Task Receiver
轉變為:
Problem Owner
第七階段:Upstream-持續貢獻與角色晉升
培育後期應逐步引導參與者達成正式社群角色。
可能發展路徑包括:
Contributor ↓ Regular Contributor ↓ Reviewer ↓ Committer ↓ Maintainer
不同專案名稱可能不同,但核心概念相同:
隨著持續貢獻、技術能力及社群信任增加,逐步取得更多專案責任。
最終人才培育成果應以:
取得國際開源社群認可
作為最高層次成果,而非單純完成多少次程式修改。
四、Mentor制度
Mentor制度是整個培育機制的核心。
每週建議安排三種活動。
1. Issue Planning
每週確認:
- 本週準備處理的 Issue
- 目前遇到的問題
- 是否需要與 upstream溝通
- 預計提交成果
時間約 30~60 分鐘。
2. Mentor Office Hour
提供固定時段協助處理:
- Build問題
- Architecture問題
- Debug問題
- Testing問題
- PR問題
- Upstream溝通問題
不需要另外安排大量課程。
3. Upstream Review
每週檢視:
- Issue
- Pull Request
- Review Comment
- 社群討論
- Merge狀況
協助判斷下一步行動。
五、成果分享制度
建議每月辦理一次:
Open Source Demo Day
每位參與者說明:
- 本月研究哪個問題
- 完成哪些 Issue
- 提交哪些 PR
- Maintainer提出哪些意見
- 哪些 PR 被 Merge
- 哪些 PR 被 Reject
- 遇到哪些技術問題
- 下一步計畫
Demo Day 的重點不是展示成功,而是分享真實開源開發過程。
包括:
- PR被拒絕
- 技術方向被否決
- Maintainer要求重新設計
都可以視為重要學習成果。
六、培育經費設計
不建議以:
每完成一個 PR支付獎金
作為主要激勵方式。
容易造成:
- 大量小型 PR
- Documentation PR
- Typo PR
- 為數量拆分PR
- 缺乏長期技術投入
較適合採用:
Open Source Fellowship
例如提供 6 個月支持。
內容可包括:
- Mentee Fellowship
- Mentor費用
- GPU / Cloud Resource
- Conference Grant
- 國際差旅
- Certification
- Developer Tool
- Demo Day
- Outstanding Contributor Award
補助依據應以:
持續參與程度與技術成長
而不是單純 PR數量。
七、績效指標設計
開源人才培育不宜只統計:
- 上課人數
- 課程時數
- PR數量
應建立分層 KPI。
| 層級 | 指標 |
|---|---|
| L1 | 完成開源專案 Build |
| L2 | 完成 Issue分析 |
| L3 | First PR Submitted |
| L4 | First PR Merged |
| L5 | 90-Day Active Contributor |
| L6 | Regular Contributor |
| L7 | Reviewer / Committer |
| L8 | Maintainer |
亦可增加:
- Issue參與數
- PR Merge Rate
- Code Review次數
- Community Meeting參與次數
- Upstream Discussion次數
- Proposal數量
- Benchmark成果
- 國際技術文章
- Conference Speaker
- Maintainer推薦
其中最重要的指標之一應為:
90-Day Contributor Retention
亦即完成第一次貢獻後,90天後是否仍持續參與同一開源專案。
此指標比單純 PR數量更能反映培育品質。
八、人才漏斗設計
人才培育應接受自然淘汰。
例如第一期招募100人:
100人報名 ↓ 60人完成基礎訓練 ↓ 40人完成Project Build ↓ 30人提交First PR ↓ 20人PR Merged ↓ 10人持續90天 ↓ 5人Regular Contributor ↓ 2~3人Reviewer / Committer Candidate
開源人才培育的價值不在於大量產生一次性參與者,而在於從大量人才中逐步培養少數能夠長期進入國際社群的人才。
九、建議整體培育週期
建議一梯次至少規劃 6個月。
第1月
Select + Learn
第2月
Build + Project Understanding
第3月
First Contribution
第4月
Multiple Contributions + Community Participation
第5月
Ownership + Advanced Issue
第6月
Upstream Contribution + Demo Day
其中表現優秀者,可進入第二階段:
Advanced Open Source Fellowship
再持續6~12個月,目標為:
- Regular Contributor
- Reviewer
- Committer Candidate
- Maintainer Candidate
形成兩階段培育:
第一階段:培養 Contributor
第二階段:培養 Open Source Leader
十、整體機制
完整的人才培育架構可整理為:
人才招募 → 能力評估 → 專案媒合 → Mentor配對 → Learn → Build → First Issue → First PR → Upstream Review → Continuous Contribution → Module Ownership → Community Recognition → Reviewer / Committer / Maintainer
外部則由五項支援機制共同支撐:
Mentor
提供技術與社群指導。
Fellowship
降低年輕工程師長期投入開源的機會成本。
Community
協助與國際 Maintainer及開發社群建立連結。
Resource
提供GPU、Cloud、測試環境及開發資源。
Career
協助將開源成果轉化為職涯機會。
十一、最終培育目標
整體制度最終不應以「培養多少人會使用開源軟體」作為主要成果,而應逐步建立:
Taiwan Open Source Contributor Pipeline
形成:
使用者 → 學習者 → Contributor → Regular Contributor → Reviewer → Committer → Maintainer
的長期人才梯隊。
當國際開源專案中的核心模組開始出現持續來自臺灣的 Contributor、Reviewer、Committer與Maintainer,即代表人才培育機制真正產生影響。
因此,開源人才培育的本質不是「教會工程師開源軟體」,而是:
協助工程師真正進入國際開源軟體的共同開發體系,並逐步成為其中具有責任、影響力與技術話語權的成員。