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