副標:戰略型 vs. 戰術型程式設計(Strategic vs. Tactical Programming)
好的軟體設計,最重要的元素之一,是你動手寫程式時所抱持的心態。
兩種主流心態#
- 戰術型(tactical):以「盡快讓功能跑起來」為目標
- 戰略型(strategic):投入時間打造乾淨設計、修正設計問題
許多公司鼓勵戰術型——這聽起來很合理,但長遠來看會付出沉重代價。本章主張:
- 戰略型不僅產生更好的設計
- 長期下來反而比戰術型便宜
本章脈絡#
後續會依序討論:
- 戰術型程式設計為何短視
- 戰略型的投資心態
- 投資多少才合適
- 新創環境下的特殊取捨
結語#
好設計不是天上掉下來的,必須持續投資才能避免小問題累積成大問題。
把投資當成「明天再做」的事,是滑坡的開始。
趕進度時很容易把清理工作延後到「下次」,但下次後面還有下次,幾乎沒有真正回頭做的一天。最有效的方式,是每位工程師在每次變更中都做一點點小投資。