Scott Davis — Broomfield, Colorado, USA
現在,遠勝於不久之後#
作者最喜愛的一句話是:「誇大是比低估糟糕一百萬倍的事。」在專案管理上的對應版本是:
「現在」比「不久」好一百萬倍,比「之後」好一兆倍。
軟體業有個名詞叫vapourware——那些被不斷談論、卻從未真正交付的軟體。我們可以規劃它、討論它的功能,但能夠實際執行、互動的軟體,比一份充滿需求的 Word 文件好一百萬倍。
快速迭代的力量#
趕快把軟體寫出來——現在!
- 原型(prototype)能立刻提供可用性(usability)的回饋
- 擔心效能問題?沒有軟體,你根本無從優化
敏捷方法論(Agile methodologies)的核心就是「偏好現在」——以一到兩週為單位的短迭代(iteration),盡快讓軟體出現在使用者面前。
核心原則: 快速失敗(fail fast)遠優於緩慢失敗。上線前一週發現的問題可能是致命傷;開發初期的失敗,等到軟體真正上線時早已被遺忘。
快速成功 vs. 快速失敗#
- 快速成功比緩慢成功好一百倍
- 快速失敗比緩慢失敗好一百萬倍
快速失敗讓你有時間重新思考、調整、改寫——而不是在船要沉的前一刻才發現破洞。
實用技巧: 如果你的程式語言或框架需要數小時才能編譯,那個工具本身就是問題的一部分。頂尖網站能在 30 分鐘內推出新功能,正是因為他們消除了所有會拖慢迭代速度的摩擦點(friction points)。
測試也要「現在」#
頂尖的軟體開發團隊不等到開發週期結束才寫測試——他們現在就寫。
**測試先行(test-first)與測試驅動開發(Test-Driven Development, TDD)**已成為一流開發團隊的標準做法,因為:若測試重要,就重要到值得現在就做。
補充: 舊式的瀑布方法論源於一個程式碼需要手寫、謄到打孔卡、再人工送到機房的時代。那套流程無法直接套用在今天的軟體開發環境。我們身處「當下」的時代,流程也應隨之進化。
結語#
規劃仍然重要,但要以現代軟體實踐為基礎進行規劃。讓可運行的軟體盡快出現在真實使用者面前,讓失敗發生在早期而非晚期——這才是在競爭中保持優勢的方式。