Robert C. Martin (Uncle Bob)

什麼是專業程式設計師?#

專業程式設計師最重要的特質是個人責任感(personal responsibility)。專業的程式設計師為自己的職涯、時程承諾、錯誤和技藝品質負責,不會把責任推卸給別人。

專業的核心要素#

為自己的職涯負責#

  • 你有責任持續閱讀和學習,跟上產業和技術的發展
  • 太多程式設計師認為雇主應該負責培訓他們——這是大錯特錯
  • 醫生、律師都是自費、利用自己的時間來精進專業。程式設計師也應如此
  • 雇主承諾付你薪水,你承諾做好工作——這就是僱傭關係的本質

為自己寫的程式碼負責#

  • 專業的程式設計師不會發布自己不確定是否能運作的程式碼
  • 專業的程式設計師期望 QA 找不到任何問題,因為他們已經徹底測試過了
  • 當然 QA 仍會發現一些問題(人無完人),但我們的態度必須是不留任何東西給 QA 發現

團隊合作#

  • 專業的程式設計師為整個團隊的產出負責,而非只顧自己的工作
  • 互相幫助、互相學習,必要時互相支援
  • 當隊友倒下時,其他人補上——因為知道有一天自己也會需要支援

不容忍龐大的 Bug 清單#

  • 問題追蹤系統中有數千個 issue 是草率的悲劇
  • 在大多數專案中,需要 issue 追蹤系統本身就是草率的徵兆
  • 只有非常大型的系統才真正需要龐大的 bug 清單和自動化管理

不製造混亂#

  • 保持程式碼整潔、結構良好、易於閱讀
  • 遵循既定的標準和最佳實踐
  • 永遠不趕工

想像你看著一位醫生進行心臟手術,而他面臨的是字面意義上的 deadline。你希望他像典型的軟體開發者那樣匆忙又製造混亂嗎?還是希望他堅守紀律、謹慎自信?你要的是混亂,還是專業?

結語#

專業的程式設計師為自己的職涯負責、確保程式碼能正常運作、為技藝品質自豪。他們不會在壓力下放棄原則——事實上,當壓力越大時,專業的程式設計師會越緊守他們知道正確的紀律。