隱喻式提問
2004 年 12 月 16 日
我的作品的常客可能知道,我對使用其他專業的隱喻來推論軟體開發非常懷疑。特別是,我相信工程隱喻對我們的專業造成了損害——它鼓勵了將設計與施工分開的概念。
當我在倫敦辦公室閒晃時,這個問題出現在精實製造的背景中,這是一個在敏捷圈中經常使用的隱喻——特別是Poppendiecks。如果我不喜歡土木工程的隱喻式推理,我是否更喜歡精實製造的隱喻式推理?
我認為同樣的危險適用,但一切都取決於你如何使用隱喻。如果它能幫助你提出問題,那麼與其他活動進行比較是有用的;如果你用它來證明答案,那就很危險。
因此,舉個例子——精實製造的原則之一是消除庫存。這引發了一個問題,即軟體開發中是否存在與庫存類似的項目。人們提出,前期文件就是這樣的類比。它在那裡,沒有產生任何價值,直到你實際交付基於它的軟體。
這裡,隱喻幫助我們從不同的角度審視我們的實務。它幫助我們提出關於我們所做的事情的問題。到目前為止,我認為隱喻是有用的。
當人們說:「我們在精實製造中消除庫存,前期文件等同於庫存,因此我們消除了前期文件」時,就會出現分歧點。現在我同意我們需要大幅減少這種推測性的文件;但這樣做的理由必須來自對軟體開發流程的思考,而不是純粹類比推理。