在某些人眼中,「敏捷」是狂熱份子聚集的邪教。

或許是被困在守舊勢力太久了,敏捷信徒不只有改變世界的熱情,更有捨我其誰的急迫感。不過,在傳播理念或推動改變時,若操之過急,忽略對方所處的情境、歷史及歷程,就很難有建設性對話。在這守舊勢力龐大的世界,自然很容易陣亡。

但這還只是表象。歧見,單靠對話仍不足以化解,更需要在方法論層次達到理解,方可進退有據。

尤其在看過《社會科學的理路》之後,我領悟到一些根源問題及槓桿解。

圖一 《社會科學的理路》第一版 (2001) 及第四版 (2018)

圖一 《社會科學的理路》第一版 (2001) 及第四版 (2018)

方法論形塑世界觀

我們都在採用方法論,不管我們自覺或不自覺。

瀑布模型是一種方法論,敏捷是一種方法論,Scrum 及 Kanban 則是敏捷方法論底下更具體的實踐作法。

為什麼會決定採取某一種方法論?原因可能很多,本文不予探討。本文想談的是,採取某一種方法論,就會逐漸被該方法論所形塑的世界觀所包圍,以及接下來的連鎖效應——不管我們自覺或不自覺。

論到方法論及世界觀,我想要引述《社會科學的理路》的見解。

本書作者黃光國教授,是台灣社會心理學界的大老。他花了將近十年的工夫寫成本書第一版 (2001 年),析論二十世紀發展出來的五種科學哲學主要典範之間的關聯。退休後推出的第四版 (2018 年),將原本具有歷史意義的第一章整個抽換掉,很可惜,所以我仍然留著第一版。

社會科學的理路》,從科學哲學角度指出:

圖二 方法論與世界觀

圖二 方法論與世界觀

看起來有點抽象,讓我們從「軟體開發流程」的角度來照樣造句,就會茅塞頓開:

  • 任何一種軟體開發流程所主張的「本體論/認識論/方法論」,構成了該一開發流程的「世界觀」,它在性質上是一種形而上學的預設,是由軟體開發團隊的基本信念所決定的。

  • 一個軟體開發者,對於方法論的回答,必然會受到其「本體論/認識論」立場的限制,而不能隨意選擇。當他決定採用某種方法論的時候,他也必須同時接受其「本體論/認識論」預設

所以,採取瀑布模式的人,採取敏捷模式的人,兩群人的世界觀,以及信念、預設,是非常不一樣的。

想合作,或是想進一步改變對方,就得先認清這一點:你們的對話,是不同世界觀的對話。

方法論之外,還有判準

瀑布模型是一種方法論,敏捷是一種方法論。

不同方法論,有優劣之別嗎?

或許有吧。但更常見的事實是:不同方法論,各有擅長的場域。

社會科學的理路》第一版的第一章,從科學哲學角度指出:

圖三 典範的判準

圖三 典範的判準

文中點出很重要的觀念:「判準」。

看起來有點抽象,讓我們再從「軟體開發流程」的角度來照樣造句吧!

  • 我是贊同「敏捷運動」的。然而,我卻認為:「敏捷/不敏捷」不能夠作為軟體開發流程好壞的判準

  • 我主張的「多元典範的軟體開發取向」認為:我們可以視問題的性質,採取瀑布或敏捷軟體開發典範。然而,採取某種典範,不但要說明自己的方法論立場,而且要採用該一典範的方法論判準

  • 在我看來,軟體開發而沒有判準,是非常不可思議之事。

判準,是將方法論落地實施的重要關鍵,也是方法論歧見的槓桿解。

試問:你對自己採用的軟體開發方法論,了解它的判準嗎?

試問:你對其他人採用的不一樣的軟體開發方法論,也了解它的判準嗎?

先賣個關子。下一篇文章,再分別針對瀑布與敏捷取向,談談我所認為的方法論判準。

「判準與指標」系列文章

❶ 軟體開發,除了方法論,還有⋯⋯

敏捷的判準

Lean Startup 的判準

敏捷的價值與指標

DevOps 的價值與指標

如何衡量敏捷對於軟體研發效能的利益?