壓力 (Pressure) #
壓力的本質與應對 #
軟體開發工作中,壓力是不可避免的副產品。專業人士與業餘者的區別,不在於是否感到壓力,而在於如何在壓力下保持冷靜。
最有效的壓力管理策略其實是 「規避 (Avoidance)」——即透過良好規劃與溝通,避免陷入會導致極端壓力的處境。
1. 承諾的界線 #
專業人士會盡力幫助業務方達成目標,但這是有界線的。
| 維度 | 準則 | 細節與界線 | 預期成效 |
|---|---|---|---|
| 責任歸屬 | 拒絕被代表 | 不接受業務方未經開發者評估下,擅自代為許下交付承諾 | 釐清責任邊界,避免無效死線 |
| 應對心態 | 責任回歸 | 若業務方逕自承諾期限,應明確指出那是發起人的責任,而非開發團隊的義務 | 保護團隊免於非理性壓力 |
| 協作模式 | 合作而非盲從 | 專注於協助尋找可行替代方案(如減法策略),而非無條件接受不可能的任務 | 建立平等的專業對等關係 |
2. 保持整潔:唯一的快道 #
當期限逼近,壓力升高時,人類的本能是「快一點」,這通常意味「亂搞 (Messy)」——跳過測試、寫出髒代碼。作者對此提出了強烈反對:
能確保你在最後期限前完成的方法,就是保持程式碼整潔。
- 欲速則不達:製造髒亂只會產生 Bug,導致你須回頭修補,最終反而更慢
- 專業選擇:越趕時間,越要堅持寫出整潔程式碼。這是唯一能維持開發速度的方法
為了要快,你必須「慢」下來把事情做對。
3. 危機時刻的紀律 #
你會在危機時刻拋棄你的原則嗎?如果會,那就不是原則,只是花瓶。
| 階段 | 守則 | 動作與心態 | 危機時刻的價值 |
|---|---|---|---|
| 定義紀律 | 非花瓶原則 | 篩選出「即使在危機時刻」仍絕不拋棄的作業標準(如 TDD) | 建立不可撼動的專業底線 |
| 全面貫徹 | 無差別執行 | 在日常、平穩的每項工作中,嚴格且無例外地遵守選定的原則 | 累積標準化作業的慣性 |
| 慣性保護 | 肌肉記憶 (Muscle Memory) | 透過日常磨練使紀律化為直覺,確保壓力導致大腦空白時,依賴本能做出正確決策 | 提供高壓下的安全網 |
4. 面對壓力的行動指南 #
當你已身處高壓風暴中,請依循以下守則:
- 保持冷靜:恐慌會關閉大腦的理性思考區
- 加強溝通:壓力越大,越要與團隊和主管溝通,不要閉門造車
- 堅守紀律:不要因趕時間而放棄測試或重構
- 尋求幫助:不要獨自承擔。找人結對編程 (Pair Programming) 是最快能讓你冷靜並理清思緒的方法