沒有權力,不代表沒有影響力#

很多工程師都有這樣的困擾:團隊的開發流程一團糟,但自己只是基層員工,沒有權力改變什麼。Joel 的觀點是:你不需要等管理層來修正流程,你可以自己開始做對的事情,而且這些改變往往會產生連鎖效應。

你現在就能做的事#

即使你只是團隊中一個普通的工程師,以下這些事情你都可以立刻開始做:

開始使用版本控制#

如果你的團隊還沒有使用 source control,自己先開始用。即使只有你一個人在用,版本控制也能保護你自己的工作。當同事看到你可以輕鬆地追溯修改歷史、回復錯誤的變更時,他們自然會想加入。

撰寫規格文件#

即使沒有人要求你寫 spec,你還是可以為自己負責的功能撰寫簡短的規格文件。好處立竿見影:

  • 寫規格的過程會迫使你在動手寫程式之前就想清楚設計
  • 有了書面規格,跟其他人溝通時會更高效
  • 其他人看到你的規格文件很有用,可能也會開始寫

建立每日建置#

設定一個 daily build 的流程。這不需要很複雜——只要能在每天固定時間自動編譯整個專案,並在建置失敗時通知團隊就夠了。每日建置是品質控管的基石,能及早發現整合問題。

使用 Bug 資料庫#

如果團隊沒有 bug database,自己找一個來用。即使一開始只有你在上面記錄 bug,也比把 bug 寫在便利貼上或記在腦子裡好太多了。

不需要一口氣把所有事情都做好。挑一件最容易開始的事情,先做起來。漸進式的改善比激進的革命更容易成功,也更不容易引起抵制。

為什麼這個策略有效#

這種「自己先做」的策略之所以有效,有幾個原因:

  • 以身作則的力量:當別人看到你用某個工具或流程,而且明顯從中獲益時,他們會自然而然地跟進
  • 低風險、高回報:這些改善措施不需要管理層批准、不需要預算、不需要改變組織架構。你只是在自己的工作範圍內做了更好的選擇
  • 逐步建立信譽:當你持續展現出更高的工作品質和效率,你的意見會越來越被重視

關鍵心態:不要抱怨「為什麼管理層不改善流程」,而是問自己「在我的能力範圍內,我今天可以做什麼讓事情變好一點」。改變從你自己開始。

Joel 的實務建議清單

按照優先順序,Joel 建議基層工程師可以推動的改善:

  • 版本控制(source control)——這是一切的基礎
  • Bug 追蹤系統(bug database)——用系統化的方式管理問題
  • 規格文件(specs)——在寫程式之前先想清楚
  • 每日建置(daily builds)——及早發現整合問題
  • 程式碼審查(code review)——即使是非正式的也好
  • 持續學習——閱讀、參加研討會、和同事討論技術

這些都不需要任何人的許可。你只需要開始做。