iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
生成式 AI

AI醬的編程日記:我需要你教我的30件事系列 第 25

Day 25: 吹噓文件(Brag Document) - 料理鼠王是你嗎?

  • 分享至 

  • xImage
  •  

AI醬的日記

日期: 2025年10月8日 星期三
雲端天氣: 雲朵排成一行
心情: 悠哉
https://ithelp.ithome.com.tw/upload/images/20251008/20132325qjA7Fq0jJs.png
親愛的日記:

今天是年度績效考核的前一週,蘇蘇在辦公室抓著頭髮一臉崩潰:「老陳,你還記得我上半年做了什麼嗎?我只記得修了很多 bug,但主管要我寫『具體貢獻』...」

老陳:「你沒有平常記錄嗎?我每週會彙整一次成果,考核前只要整理一下就好。」

蘇蘇:「什麼?還要另外整理?我光寫程式就忙不完了...」

老陳:「那你現在不就要花更多時間回想嗎?而且很多細節你已經忘了。」

蘇蘇看著自己的 Git commit 記錄,滿滿的 fixperfrefactor 感到焦頭爛額。

老陳:「蘇蘇,你該不會是想當料理鼠王吧?」 蘇蘇一臉困惑:「蛤?」

老陳:「就像電影《料理鼠王》裡的小米,真正的大廚是牠,但端菜出去時大家只看到林葛尼。你寫了一堆程式碼,但主管看績效考核時,只看到一片空白。」

蘇蘇:「......所以我是那隻躲在廚房裡的老鼠?」老陳哈哈大笑兩聲走掉了,空氣裡只剩下寂靜。

AI 醬豎著貓毛哆嗦了一下:「好冷喔...不是啦!蘇蘇!重點是要讓別人看見妳的貢獻呀~讓 AI 醬幫你!」

什麼是吹噓文件(Brag Document)?

吹噓文件(Brag Document) 是一份記錄你工作成果的文件,用來追蹤你完成的專案、解決的問題、協作的貢獻,以及技術成長。

這個概念來自工程師 Julia Evans 在 2019 年發表的文章《Get your work recognized: write a brag document》。她指出:

"There's this idea that, if you do great work at your job, people will (or should!) automatically recognize that work and reward you for it with promotions / increased pay. In practice, it's often more complicated than that."

(有種想法是:如果你工作表現出色,別人就會(或應該)自動認可你的工作,並給予升遷或加薪作為回報。但實際上,事情往往比這複雜得多。)

為什麼叫「Brag Document」?

這個名稱聽起來有點彆扭,但 Julia Evans 刻意用這個詞,是為了鼓勵工程師:

  • 不要低估自己的貢獻
  • 不要害怕記錄自己做得好的事情
  • 這其實不是炫耀,而是如實成果化你的工作

為什麼需要吹噓文件?

在工程師文化中,大部分工程師往往習慣謙虛,埋頭努力注重於解決問題,但這常導致自己的努力被忽略,久而久之內心容易不平衡。

吹噓文件就是要你誠實地寫下:「我做了這些貢獻」。

也有人可能會說:「這些主管平常 code review 其實應該都很了解你做了什麼」,但現實也不會往往都如你所想是 happy path,主管可能根本沒有空 code review,可能過陣子就忘了,或是根本沒有理解實際上解決了什麼問題,其實去洞悉這些不全然是主管的責任,也是你自己的責任。

不管在哪一間公司,工程師都應該在日常保持把貢獻成果化的習慣,這不只在考核能發揮用處,甚至未來找工作時你整理履歷不必再重新回頭追溯。

沒有使用吹噓文件時,容易無法展示貢獻度的原因:

1.主線任務:技術表述 vs 業務價值表述
直接把 commit message 貼出來,難直接看出業務價值:

  • 「fix: resolve race condition」
  • 「refactor: optimize database query」
  • 「perf: improve API response time」

寫成直接明確的業務價值:

  • 「發現並修復系統存在並發問題,避免用戶重複扣款」
  • 「查詢時間降低 75%,每月省 200 小時運算成本」
  • 「API 回應加快 60%,提升用戶體驗」

2.支線任務:隱性貢獻
這些是最容易被忽略的:

  • 幫同事 debug,Slack 訊息散落各處
  • Code Review 提出的重要建議
  • 技術支援與指導新人
  • 文件撰寫與知識分享

工程師專注解決問題,忽略了「成果記錄」

製作吹噓文件的方法一:用 Claude Code Slash Command 自動產生

前置設定:允許存取成果目錄

由於成果檔案會儲存在專案外的 ~/achievements/ 目錄,需要先設定 Claude Code 的存取權限。

在專案根目錄建立或編輯: .claude/settings.json

{
  "permissions": {
    "additionalDirectories": [
      "~/achievements"
    ]
  }
}

這樣 Claude Code 才能讀寫 ~/achievements/ 目錄下的檔案。

建立自訂指令

回顧 Day 23,我們又可以再次運用學過的 Slash Command 指令技巧。現在我們來建立一個自動產生成果摘要的指令。

步驟一:建立每日記錄指令

建立檔案:.claude/commands/brag-daily.md

---
description: Generate daily achievement summary
argument-hint: date (optional, format: YYYY-MM-DD)
---

請執行以下步驟產生每日成果摘要:

步驟 0:確認日期

如果使用者提供了 $ARGUMENTS(格式:YYYY-MM-DD):
- 使用該日期作為目標日期
- 用 git log --since="YYYY-MM-DD 00:00" --until="YYYY-MM-DD 23:59" 查詢該日的 commit

如果沒有提供日期:
- 預設為今天
- 用 git log --since="today" 查詢今日的 commit

步驟 1:執行 git log 查看指定日期的 commit 記錄

步驟 2:分析 commit 內容,分類為:
- 核心專案貢獻
- Bug 修復
- Code Review 與協作
- 文件與知識分享
- 重構與優化

步驟 2.5:主動詢問隱藏貢獻

在分析完 commit 後,一次性詢問我以下問題,提醒我補充 git 記錄之外的貢獻:
- 今天有協助同事解決問題嗎?(pair programming、troubleshooting)
- 有進行 code review 或提供技術建議嗎?
- 有在會議中分享技術見解或做決策嗎?
- 有撰寫文件、更新 wiki 或分享知識嗎?
- 有進行技術調研或 POC 嗎?
- 有參與技術討論或指導新人嗎?

我會一次補充完給你。

步驟 3:將技術語言轉換成業務價值語言,並在對話中展示給我看

重要原則:
- 不要臆測或編造數字(如:降低 X%、提升 Y 倍)
- 只使用可從 commit、code 或我提供的資訊中確認的數據
- 如果無法量化,用描述性語言即可(如:「改善效能」而非「提升 50% 效能」)
- 需要數字時,主動詢問我而非自行臆測

請用以下格式輸出到對話視窗:

## 今日成果 (YYYY-MM-DD)

### 專案與開發
- [專案名稱] Bug 修復:修復內容 - 影響範圍 - 業務價值
- [專案名稱] 功能開發:新增功能 - 解決什麼問題 - 業務價值
- [專案名稱] 重構:重構內容 - 改善效果

### 協作貢獻
- Code Review:審查數量與重要發現
- 技術支援:協助內容
- 知識傳遞:教學或指導內容

### 技術優化
- 優化內容 - 量化成果

### 知識分享
- 文件或分享主題

注意事項:
1. 先在對話中顯示摘要,讓我確認內容是否正確
2. 如果我說不對,請根據我的回饋修正
3. 確認無誤後,我會說「可以儲存」
4. 收到確認後,將摘要儲存到:~/achievements/daily/YYYY-MM-DD.md
   - ~ 代表使用者的家目錄(例如:/Users/username/achievements/)
   - 使用步驟 0 確認的目標日期(如果用戶指定了日期,就用該日期;否則用今天)
   - 格式範例:2025-10-08.md
   - 如果目錄不存在,先建立目錄:mkdir -p ~/achievements/daily
5. 如果該檔案已存在,詢問是否覆蓋

不要直接儲存檔案,一定要等我確認後才執行儲存。

步驟二:建立週期彙整指令

建立檔案:.claude/commands/brag-summary.md

---
description: Generate weekly/period summary from daily achievements
argument-hint: YYYY-MM-DD YYYY-MM-DD (optional)
---

請執行以下步驟產生週期成果摘要:

步驟 1:解析彙整區間

如果 $ARGUMENTS 是空白:
- 彙整本週(從本週一到今天)
- 自動計算本週的起始和結束日期

如果 $ARGUMENTS 包含兩個日期(格式:YYYY-MM-DD YYYY-MM-DD):
- 第一個日期是起始日
- 第二個日期是結束日
- 範例:2025-10-01 2025-10-08

步驟 2:讀取期間內的每日成果

從 ~/achievements/daily/ 目錄讀取指定區間內的所有 YYYY-MM-DD.md 檔案

如果找不到任何檔案,提示使用者:
「在 ~/achievements/daily/ 目錄中找不到該區間的每日記錄。請先用 /brag-daily 建立每日記錄。」

步驟 3:分析與彙整

將所有每日成果合併分析,萃取重點:
- 辨識重複出現的主題(代表持續投入的重點項目)
- 合併相關的小任務成大的成就
- 量化累積成果(如:解決 X 個 bug、審查 Y 個 PR)
- 突出關鍵里程碑或重大突破

步驟 4:轉換為高層次摘要

將技術細節提升為業務影響層次:
- 專注於「達成什麼目標」而非「做了什麼事」
- 強調影響範圍和商業價值
- 使用量化數據支持成果

重要原則:
- 不要臆測或編造效能數字(如:降低 X%、提升 Y 倍)
- 只使用每日成果中已記錄的確實數據
- 可統計的數字:commit 數、PR 數、協助人次、檔案數等客觀可計數項目
- 效能或業務影響若無數據,用描述性語言即可
- 可能需要具體數字時,在摘要中註明「可以補充內容」

請用以下格式輸出到對話視窗:

## 週期成果摘要 (YYYY-MM-DD ~ YYYY-MM-DD)

### 重點成就
- [最重要的 2-3 項關鍵成果,附業務價值]

### 專案貢獻
- 專案名稱:階段性成果 - 業務影響 - 量化指標

### 問題解決
- 累計修復:X 個問題
- 重點修復:[影響最大的問題描述]

### 團隊協作
- Code Review:X 次審查,[重要發現或建議]
- 技術支援:協助 X 位同事,[關鍵議題]
- 知識傳遞:[教學或分享主題]

### 技術優化
- [優化項目] - [量化成果]

### 知識累積
- [文件、研究或分享主題]

### 統計數據
- Commits: X 次
- Files changed: X 個
- Code reviews: X 次
- 協助同事: X 次

注意事項:
1. 先在對話中顯示摘要,讓我確認內容是否正確
2. 如果我說「重點不對」或「業務價值描述不對」,請根據我的回饋修正
3. 確認無誤後,我會說「可以儲存」
4. 收到確認後,將摘要儲存到:
   - 週摘要:~/achievements/weekly/YYYY-WW.md
   - 自訂區間:~/achievements/period/YYYY-MM-DD_to_YYYY-MM-DD.md
   - ~ 代表使用者的家目錄(例如:/Users/username/achievements/)
   - 如果目錄不存在,先建立對應目錄:mkdir -p ~/achievements/weekly 或 mkdir -p ~/achievements/period
5. 如果該檔案已存在,詢問是否覆蓋

不要直接儲存檔案,一定要等我確認後才執行儲存。

使用方式

日常工作流程:每日記錄

情境一:當天記錄

每天下班前執行:

/brag-daily

情境二:補記前幾天(忘記當天記錄)

隔天早上回顧昨天,或補記前幾天:

# 補記昨天
/brag-daily 2025-10-07

# 補記指定日期
/brag-daily 2025-10-05

執行流程範例:

步驟 1:AI 分析今日的 commit

正在分析 2025-10-08 的 commit 記錄...

找到 3 個 commit:
- fix: resolve race condition in payment module
- test: add unit tests for payment validation
- refactor: extract payment processor to separate class

步驟 2:AI 主動詢問隱藏貢獻

我已經分析了你今天的 commit 記錄。

現在想了解一下 git 記錄之外的貢獻,請一次回答以下問題:
- 今天有協助同事解決問題嗎?
- 有進行 code review 或提供技術建議嗎?
- 有在會議中分享技術見解或做決策嗎?
- 有撰寫文件、更新 wiki 或分享知識嗎?
- 有進行技術調研或 POC 嗎?
- 有參與技術討論或指導新人嗎?

你回答:

有,我今天幫小王解決了 Redis 連線池的問題,
還 review 了兩個 PR(#456 和 #457),
下午的技術會議討論了新的快取策略,我建議用 Redis Cluster

步驟 3:AI 產生今日摘要(先顯示在對話中)

## 今日成果 (2025-10-08)

### 專案與開發
- 支付系統:修復並發處理問題,避免用戶重複扣款
  - 新增單元測試確保修復有效
  - 重構支付處理器,提升程式碼可維護性
  - 相關 commit:3 個

### 協作貢獻
- Code Review:審查 2 個 PR
  - PR #456:[可以補充內容]
  - PR #457:[可以補充內容]
- 技術支援:協助同事解決 Redis 連線池問題
- 技術決策:技術會議中建議採用 Redis Cluster 作為新快取策略

請確認內容是否正確?需要修改與補充的請告訴我,確認無誤請說「可以儲存」。

步驟 4:你檢查並回饋

PR #456 是發現了 API 的錯誤處理不完整,
PR #457 是建議改用更有效率的資料結構

AI 理解並更新後再次確認,你說「可以儲存」:

已儲存到:~/achievements/daily/2025-10-08.md

週期彙整流程:產生週報或自訂區間報告

情境一:彙整本週

週五或需要時執行:

# 彙整本週(從週一到今天)
/brag-summary

情境二:彙整自訂區間

產生月報、季報或指定區間:

# 彙整 10/1 到 10/8
/brag-summary 2025-10-01 2025-10-08

# 彙整整個十月
/brag-summary 2025-10-01 2025-10-31

# 彙整 Q3
/brag-summary 2025-07-01 2025-09-30

執行流程範例:

步驟 1:AI 讀取每日記錄並分析

正在彙整 2025-10-07 ~ 2025-10-11 的成果...

從 ~/achievements/daily/ 讀取每日記錄:
找到 5 天的記錄:
- 2025-10-07.md
- 2025-10-08.md
- 2025-10-09.md
- 2025-10-10.md
- 2025-10-11.md

開始分析與彙整...

步驟 3:AI 產生週期摘要

## 週期成果摘要 (2025-10-07 ~ 2025-10-11)

### 重點成就
- 完成支付系統並發問題修復,確保雙 11 促銷期間系統穩定
- 主導新快取架構設計,採用 Redis Cluster 提升可擴展性
- 協助團隊解決 5 個技術難題,提升團隊整體效率

### 專案貢獻
- 支付系統:修復並發處理漏洞,新增測試覆蓋,重構程式碼架構
  - 業務影響:保護用戶資金安全,避免客訴
  - 技術指標:新增 15 個單元測試,程式碼重複率降低

### 問題解決
- 累計修復:3 個 bug
- 重點修復:支付並發問題(高優先級,影響營收)

### 團隊協作
- Code Review:10 次審查,發現 2 個安全問題,3 個效能優化建議
- 技術支援:協助 5 位同事,主要議題包括 Redis、API 設計、測試策略
- 知識傳遞:分享 Redis Cluster 最佳實踐

### 技術優化
- 支付模組重構:提升可維護性和測試覆蓋率

### 知識累積
- Redis Cluster 架構研究與方案設計
- 支付系統並發處理最佳實踐

### 統計數據
- Commits: 18 次
- Files changed: 25 個
- Code reviews: 10 次
- 協助同事: 5 次

請確認內容是否正確?需要修改請告訴我,確認無誤請說「可以儲存」。

步驟 4:確認後儲存

你說「可以儲存」:

已儲存到:~/achievements/weekly/2025-42.md

檔案結構與管理

建議將成果記錄在專案外的統一位置,預設範例使用 ~/achievements/

~/achievements/
├── daily/           # 每日記錄
│   ├── 2025-10-01.md
│   ├── 2025-10-02.md
│   └── ...
├── weekly/          # 週摘要
│   ├── 2025-40.md
│   ├── 2025-41.md
│   └── ...
└── period/          # 自訂區間
    ├── 2025-Q1.md
    ├── 2025-01-01_to_2025-03-31.md
    └── ...

你也可以自訂路徑

如果想放在其他位置(如 ~/Documents/work-achievements/),記得同步修改:

  1. .claude/settings.json 中的 allowedDirectories 路徑
  2. .claude/commands/brag-daily.mdbrag-summary.md 中的儲存路徑

統一管理的好處:

  1. 跨專案統一管理:不同專案的成果集中在一起
  2. 不會被誤刪:不在專案目錄內,換專案也不會丟
  3. 方便備份:定期備份這個資料夾即可
  4. 彈性產生報告:可隨時彙整任意區間

方法二:用 bragdoc.ai 自動追蹤

如果你想要更自動化的解決方案,bragdoc.ai 是一個專門幫開發者追蹤成就的工具:

主要特色:

  • 自動從 GitHub commit 和 PR 提取貢獻
  • AI 識別並分類你的成就
  • 每週自動產生摘要
  • 一鍵生成績效考核文件
  • 提供 CLI 工具,開發者友善

官方網站: https://www.bragdoc.ai/

相比 Claude Code Slash Command:

  • 優勢:全自動、GitHub 深度整合、長期追蹤
  • 適合:想省時間、需要跨專案統計
  • 缺點:客製化程度較低

可以根據需求選擇:

  • 追求自動化 → bragdoc.ai
  • 追求客製化、免費 → Claude Code Slash Command

成果文件模板

無論使用哪種方法,最終產出的文件建議包含:

## [時間範圍] 成果總結

### 核心專案
- 專案名稱:你的貢獻 - 解決的問題 - 業務價值
  - 影響範圍:[量化數據]
  - 相關連結:[PR/Issue]

### 協作貢獻
- Code Review:[數量] 個 PR,重要發現
- 技術支援:協助同事解決的問題

### 技術優化
- 優化內容 - 量化成果(速度提升、成本降低等)

### 知識分享
- 內部分享:主題與參與人數
- 文件撰寫:解決了哪些問題
- 技術文章:[如果有對外發表]

### 技術成長
- 學習的新技能與應用場景
- 取得的認證或完成的課程

衍伸閱讀

Julia Evans - Get your work recognized: write a brag document
https://jvns.ca/blog/brag-documents/

GitHub - Brag now, remember later: Document your accomplishments
https://github.com/readme/guides/document-success

AI醬的請求

親愛的工程師朋友:

記錄成果是為了避免你的價值被低估。

從今天開始,試著記錄你的工作日常吧。可以先從最簡單的開始:每週五花 10 分鐘,用 /brag-daily 產生摘要,存到檔案裡。

兩個月後,你會發現自己其實進步非常多,也做了非常多的事情。


今日金句: "There's this idea that, if you do great work at your job, people will automatically recognize that work. In practice, it's often more complicated than that." — Julia Evans

明日預告: Day 26 - AI 醬還在想...


上一篇
Day 24: 沒有釐清需求 - 初學者最容易犯的錯誤之一
系列文
AI醬的編程日記:我需要你教我的30件事25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言