在某些人眼中,「敏捷」是狂熱份子聚集的邪教。
或許是被困在守舊勢力太久了,敏捷信徒不只有改變世界的熱情,更有捨我其誰的急迫感。不過,在傳播理念或推動改變時,若操之過急,忽略對方所處的情境、歷史及歷程,就很難有建設性對話。在這守舊勢力龐大的世界,自然很容易陣亡。
但這還只是表象。歧見,單靠對話仍不足以化解,更需要在方法論層次達到理解,方可進退有據。
尤其在看過《社會科學的理路》之後,我領悟到一些根源問題及槓桿解。
方法論形塑世界觀
我們都在採用方法論,不管我們自覺或不自覺。
瀑布模型是一種方法論,敏捷是一種方法論,Scrum 及 Kanban 則是敏捷方法論底下更具體的實踐作法。
為什麼會決定採取某一種方法論?原因可能很多,本文不予探討。本文想談的是,採取某一種方法論,就會逐漸被該方法論所形塑的世界觀所包圍,以及接下來的連鎖效應——不管我們自覺或不自覺。
論到方法論及世界觀,我想要引述《社會科學的理路》的見解。
本書作者黃光國教授,是台灣社會心理學界的大老。他花了將近十年的工夫寫成本書第一版 (2001 年),析論二十世紀發展出來的五種科學哲學主要典範之間的關聯。退休後推出的第四版 (2018 年),將原本具有歷史意義的第一章整個抽換掉,很可惜,所以我仍然留著第一版。
《社會科學的理路》,從科學哲學角度指出:
看起來有點抽象,讓我們從「軟體開發流程」的角度來照樣造句,就會茅塞頓開:
-
任何一種軟體開發流程所主張的「本體論/認識論/方法論」,構成了該一開發流程的「世界觀」,它在性質上是一種形而上學的預設,是由軟體開發團隊的基本信念所決定的。
-
一個軟體開發者,對於方法論的回答,必然會受到其「本體論/認識論」立場的限制,而不能隨意選擇。當他決定採用某種方法論的時候,他也必須同時接受其「本體論/認識論」預設。
所以,採取瀑布模式的人,採取敏捷模式的人,兩群人的世界觀,以及信念、預設,是非常不一樣的。
想合作,或是想進一步改變對方,就得先認清這一點:你們的對話,是不同世界觀的對話。
方法論之外,還有判準
瀑布模型是一種方法論,敏捷是一種方法論。
不同方法論,有優劣之別嗎?
或許有吧。但更常見的事實是:不同方法論,各有擅長的場域。
《社會科學的理路》第一版的第一章,從科學哲學角度指出:
文中點出很重要的觀念:「判準」。
看起來有點抽象,讓我們再從「軟體開發流程」的角度來照樣造句吧!
-
我是贊同「敏捷運動」的。然而,我卻認為:「敏捷/不敏捷」不能夠作為軟體開發流程好壞的判準。
-
我主張的「多元典範的軟體開發取向」認為:我們可以視問題的性質,採取瀑布或敏捷軟體開發典範。然而,採取某種典範,不但要說明自己的方法論立場,而且要採用該一典範的方法論判準。
-
在我看來,軟體開發而沒有判準,是非常不可思議之事。
判準,是將方法論落地實施的重要關鍵,也是方法論歧見的槓桿解。
試問:你對自己採用的軟體開發方法論,了解它的判準嗎?
試問:你對其他人採用的不一樣的軟體開發方法論,也了解它的判準嗎?
先賣個關子。下一篇文章,再分別針對瀑布與敏捷取向,談談我所認為的方法論判準。