HTML clipboard
卡爾.波普爾的理論能很好的解釋目前的科學(xué), 藝術(shù), 政治, 社會(huì)等方面一般性的問(wèn)題.
它對(duì)軟件開(kāi)發(fā)過(guò)程中一些顯而易見(jiàn)的問(wèn)題有著明確的答案. 比如, 我們都知道我們無(wú)法證明軟件已經(jīng)沒(méi)有Bug, 用波普爾的話說(shuō)就是: 科學(xué)理論都是假說(shuō),
愛(ài)因斯坦的競(jìng)爭(zhēng)理論表明對(duì)牛頓理論的即使如海王星發(fā)現(xiàn)般嚴(yán)格的檢驗(yàn)都不能確保其正確性, 即對(duì)白天鵝的一千次觀察都不足以斷言黑天鵝的不存在.
能否證偽是科學(xué)和非科學(xué)的分界線.
而敏捷是軟件開(kāi)發(fā)領(lǐng)域逐漸得到采用的理論和方法.
那敏捷這種具體領(lǐng)域的理論和實(shí)踐是否能夠與卡爾.波普爾一般性的哲學(xué)理論相契合呢?
若波普爾的理論是普適的, 能否指出敏捷的一些問(wèn)題呢?
波普爾理論摘要:
<<卡爾.波普爾摘要:
科學(xué)的方法>>
<<卡爾.波普爾摘要:
客觀知識(shí)>>
<<卡爾.波普爾摘要:
三個(gè)世界>>
<<卡爾.波普爾摘要:
歷史決定論與歷史多元論>>
<<卡爾.波普爾摘要:
民主與專制>>
<<卡爾.波普爾摘要:
批評(píng)與理性主義, 懷疑主義, 以及啟蒙運(yùn)動(dòng)>>
<<卡爾.波普爾摘要:
寬容, 沖突, 以及多元論>>
<<卡爾.波普爾摘要:
知識(shí)分子, 科學(xué)家, 哲學(xué)家的職業(yè)道德>>
<<卡爾.波普爾摘要:
社會(huì)科學(xué), 藝術(shù), 及進(jìn)化論>>
1. 波普爾強(qiáng)調(diào)無(wú)知, 可錯(cuò)性, 和試錯(cuò)法. 這導(dǎo)致了XP"反饋"的價(jià)值觀, 導(dǎo)致了迭代的實(shí)踐(迭代不是敏捷獨(dú)有的, 這說(shuō)明迭代也是一種一般性的方法)
"""
諸神自始就未向我們昭示萬(wàn)物的秘密,
但隨著時(shí)間的推移,
通過(guò)探索我們會(huì)學(xué)習(xí)并懂得更好的東西
"""
在解釋反饋的價(jià)值觀時(shí), Kent Beck批評(píng)了"從一開(kāi)始就選擇正確的方法, 不是更容易嗎"的想法:
關(guān)于試錯(cuò)與迭代的關(guān)系, 參考<<敏捷質(zhì)疑:
迭代開(kāi)發(fā)>>
2. 波普爾認(rèn)為我們應(yīng)從問(wèn)題開(kāi)始, 然后提出一個(gè)初步的解決方案, 經(jīng)過(guò)批評(píng)性討論, 前進(jìn)到下一個(gè)問(wèn)題. 這導(dǎo)致了測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)
"""
整個(gè)過(guò)程可由我稱作四個(gè)一組的圖解的簡(jiǎn)化的圖解表示:P1→TT→CD→P2[問(wèn)題1→嘗試性理論→批評(píng)性討論→問(wèn)題2]
我們可以從某個(gè)問(wèn)題P1開(kāi)始——無(wú)論理論問(wèn)題還是歷史問(wèn)題——接著做出嘗試性解答——推測(cè)的或假設(shè)的解答,一種嘗試性理論——把它提交按照證據(jù)進(jìn)行的批評(píng)性討論,如果可得到證據(jù)的話,結(jié)果出現(xiàn)新的問(wèn)題P2。
因此,科學(xué)的概貌就是:
-
我們選擇某個(gè)有趣的問(wèn)題
-
我們提出一種大膽的理論作為嘗試性解決辦法
-
我們盡最大努力批評(píng)這種理論,這意味著我們?cè)噲D駁倒它
-
如果成功地駁倒了它,那么我們就試圖提出一種新的理論,我們又會(huì)對(duì)它進(jìn)行批評(píng)
-
如此等等
這樣,即使我們沒(méi)有成功地提出一種令人滿意的理論,也會(huì)了解到許多東西:會(huì)了解到關(guān)于這個(gè)問(wèn)題的一些情況,我們將知道它的困難所在。
"""
我們必須從失敗的測(cè)試開(kāi)始, 這是我們要解決的問(wèn)題. 完成初步的產(chǎn)品代碼使其可通過(guò)測(cè)試, 即初步解決了這個(gè)問(wèn)題; 然后盡力批評(píng)產(chǎn)品代碼, 就是寫(xiě)另外的測(cè)試,
爭(zhēng)取讓其失敗; 若失敗, 則進(jìn)一步編寫(xiě)產(chǎn)品代碼, 如此循環(huán)
這是典型的 TDD 循環(huán), 除了重構(gòu). 那么重構(gòu)在哪里?
3. 波普爾對(duì)更好的理論或科學(xué)進(jìn)步的追求, 導(dǎo)致了重構(gòu)
"""
沒(méi)有真理的標(biāo)準(zhǔn), 但存在著科學(xué)進(jìn)步的理性標(biāo)準(zhǔn):
-
新的假定必須解釋舊的假定成功解釋的一切事物
-
必須至少避免舊的假定的一些錯(cuò)誤,
即它在可能之處應(yīng)能經(jīng)得住舊的假定所不能經(jīng)受的一些批判性檢驗(yàn)
-
在可能之處, 它應(yīng)當(dāng)解釋舊的假定不能解釋或預(yù)言的事物
"""
這也是重構(gòu)的標(biāo)準(zhǔn):
-
重構(gòu)必須保證不破壞原來(lái)的功能, 即新的假定必須解釋舊的假定成功解釋的一切事物
-
必須支持已經(jīng)出現(xiàn)的一些原來(lái)代碼無(wú)法支持的擴(kuò)展性需求, 或者消除舊代碼的一些可維護(hù)性方面的問(wèn)題, 如重復(fù)代碼等
-
在可能之處, 支持一些就要出現(xiàn)的原來(lái)代碼無(wú)法支持的擴(kuò)展性需求
在波普爾的P1→TT→CD→P2[問(wèn)題1→嘗試性理論→批評(píng)性討論→問(wèn)題2]循環(huán)中, 批評(píng)性討論總是導(dǎo)致了更好理論, 也導(dǎo)致了TDD過(guò)程中對(duì)重構(gòu)的必然需求
4. 波普爾反對(duì)大詞, 反對(duì)晦澀難懂的表達(dá), 崇尚簡(jiǎn)單性. 這符合XP的價(jià)值觀, 甚至可以幫助修正人們對(duì)于XP"簡(jiǎn)單性"價(jià)值觀的誤解
"""
每個(gè)知識(shí)分子都有一個(gè)很特殊的責(zé)任。他擁有學(xué)習(xí)的特權(quán)和機(jī)會(huì)。作為回報(bào),他對(duì)于同胞(或?qū)τ谏鐣?huì))有責(zé)任盡可能簡(jiǎn)單、清楚、謙虛地描述他的研究結(jié)果。知識(shí)分子所做的最糟的事情——主要罪過(guò)——是試圖對(duì)同胞自命為偉大的預(yù)言家,給他們留下令人迷惑的哲學(xué)的印象。任何不能簡(jiǎn)單、清楚地講話的人都應(yīng)住口,繼續(xù)下些功夫,直至能這樣做為止
我在上面(第1點(diǎn))所說(shuō)的主要罪過(guò)——受過(guò)不充分教育的人的傲慢——簡(jiǎn)而言之,就是夸夸其談,佯裝具有我們所不具有的智慧。它的訣竅是:同義反復(fù)和瑣屑之事再加上自相矛盾的胡言。另一個(gè)訣竊是:寫(xiě)下一些幾乎無(wú)法理解的夸大的言詞,不時(shí)添加一些瑣屑之事。這會(huì)受到高興地在如此“深?yuàn)W”的書(shū)中發(fā)現(xiàn)自己原也具有這樣的思想的讀者的喜愛(ài)。(現(xiàn)在任何人都能看到皇帝的新裝正在流行?。?/p>
我認(rèn)為,每個(gè)知識(shí)分子的責(zé)任就是意識(shí)到他所處的優(yōu)越地位。他有責(zé)任盡可能把文章寫(xiě)得簡(jiǎn)單明白,而且盡可能用規(guī)范的形式寫(xiě);永遠(yuǎn)不要忘記那些困擾著人類而且要求用新的大膽而耐心思考去處理的重大問(wèn)題,不要忘記那種承認(rèn)自己所知甚少的蘇格拉底式的謙虛。與處理瑣碎問(wèn)題的瑣碎哲學(xué)家不同,我認(rèn)為哲學(xué)的主要任務(wù)就是批判性地沉思宇宙和我們?cè)谟钪嬷械牡匚?,這也包括我們的認(rèn)識(shí)能力以及我們行善和作惡的能力
叔本華最明智的意見(jiàn)之一(雖然這可能并不是他最有獨(dú)創(chuàng)性的意見(jiàn))是:“在一切藝術(shù)中……簡(jiǎn)單性是必不可少的……;至少忽視它始終是危險(xiǎn)的。”我想,他指的是對(duì)一種簡(jiǎn)單性的追求,而我們尤其可在偉大作曲家的主題中看到這種簡(jiǎn)單性。例如,我們從《后宮誘逃》可以看出,最后的結(jié)果可能是復(fù)雜的,但莫扎特仍然可以驕傲地回答約瑟夫皇帝:其中沒(méi)有一個(gè)多余的音符
"""
基本上可以認(rèn)為波普爾反對(duì)華麗的過(guò)度設(shè)計(jì)
有一種觀點(diǎn), 認(rèn)為簡(jiǎn)單就是用最直白的方式實(shí)現(xiàn)功能, 然而如果是這樣, Kent
Beck又怎會(huì)把簡(jiǎn)單看作XP價(jià)值觀中最具智力色彩的一個(gè)? 這里波普爾給出了相似的觀點(diǎn): 最后的結(jié)果可能是復(fù)雜的,但莫扎特仍然可以驕傲地回答約瑟夫皇帝:其中沒(méi)有一個(gè)多余的音符
5. 波普爾對(duì)啟蒙運(yùn)動(dòng)的贊賞, 對(duì)理性批評(píng)的支持, 對(duì)寬容的要求, 也與XP對(duì)勇氣,
尊重等價(jià)值觀的推崇一致
"""
敢于顯示智慧!要敢于運(yùn)用自己的理智. 這就是啟蒙運(yùn)動(dòng)的口號(hào)
你可能是正確的,我可能是錯(cuò)誤的;即使我們的批評(píng)性討論不能使我們明確決定誰(shuí)是正確的,我們?nèi)詴?huì)希望在討論后對(duì)事情看得更清楚。我們都可以互相學(xué)習(xí),只要我們不忘記,真正重要的不是誰(shuí)正確,而是我們更接近真理
寬容是認(rèn)識(shí)到我們?nèi)说目慑e(cuò)性的必然結(jié)果:人孰無(wú)過(guò),我們一直在犯錯(cuò)誤。因此讓我們互相諒解對(duì)方的愚行。這是天賦人權(quán)的第一個(gè)原則
"""
6. 波普爾對(duì)文化沖突的喜好, 對(duì)多元論的執(zhí)著, 最大程度的支持著代碼集體所有與結(jié)對(duì)編程
"""
他們將歡迎與來(lái)自另一個(gè)世界、另一個(gè)框架的伙伴進(jìn)行的討論,因?yàn)樗o予他們一個(gè)機(jī)會(huì),去發(fā)現(xiàn)他們迄今尚未感覺(jué)到的枷鎖,打碎它們,從而超越自己。當(dāng)然,沖破牢房不是常規(guī)的事情:它只能是批評(píng)的努力——?jiǎng)?chuàng)造性努力——的結(jié)果.
非常明顯,這種自我解放的、沖破此刻的牢房的理想,又會(huì)成為一個(gè)框架或一個(gè)牢房的一部分——換言之,我們永遠(yuǎn)不會(huì)絕對(duì)自由。但是我們可以拓寬我們的牢房,至少能拋開(kāi)甘受束縛的人的狹隘性
當(dāng)兩種或更多的不同文化相接觸時(shí),人們認(rèn)識(shí)到他們長(zhǎng)久以來(lái)認(rèn)為理所當(dāng)然的風(fēng)俗習(xí)慣不是“當(dāng)然的”,不是唯一可能的風(fēng)俗習(xí)慣,既不是上帝所頒布的,也不是人性的一部分。他們發(fā)現(xiàn)他們的文化是人及其歷史的杰作。從而它開(kāi)辟了充滿種種新的可能性的世界:它打開(kāi)了窗子,放進(jìn)了新鮮空氣。這是一種社會(huì)學(xué)的規(guī)律,解釋了許多東西,它在希臘歷史中無(wú)疑起了重要的作用
這個(gè)猜想是,這種沖突未必總是導(dǎo)致流血的戰(zhàn)斗和破壞性戰(zhàn)爭(zhēng),而可能也是富有成效的和促進(jìn)生命的發(fā)展的原因。它甚至?xí)?dǎo)致像希臘文化那樣的無(wú)可匹敵的文化的發(fā)展
"""
7. 波普爾理性批評(píng)的態(tài)度, 又指導(dǎo)著如何處理結(jié)對(duì)編程中常見(jiàn)的問(wèn)題
"""
如果相碰撞的文化之一認(rèn)為自己優(yōu)越于所有文化,那么文化碰撞就會(huì)失去其一些價(jià)值,如果另一種文化也這樣認(rèn)為,則尤其如此:這破壞了文化碰撞的主要價(jià)值,因?yàn)槲幕鲎驳淖畲髢r(jià)值在于它能引起批評(píng)態(tài)度的事實(shí)
。尤其是,如果其中一方相信了自己不如對(duì)方,那么,如信仰主義者和存在主義者所常常描述的那樣,向另一方學(xué)習(xí)的批評(píng)態(tài)度就會(huì)被一種盲目接受、盲目地跳入新的魔圈或者皈依所取代。
你可能是正確的,我可能是錯(cuò)誤的;即使我們的批評(píng)性討論不能使我們明確決定誰(shuí)是正確的,我們?nèi)詴?huì)希望在討論后對(duì)事情看得更清楚。我們都可以互相學(xué)習(xí),只要我們不忘記,真正重要的不是誰(shuí)正確,而是我們更接近真理
嚴(yán)肅的批評(píng)性討論總是困難的??倳?huì)夾雜進(jìn)一些人類的非理性的成分。理性的即批評(píng)性的討論的許多參加者都感到,要擺脫人們?cè)谵q論會(huì)中染上的習(xí)氣特別困難,他們必須了解,在一場(chǎng)辯論中獲勝是微不足道的,只有澄清人們的問(wèn)題,只有促進(jìn)人們對(duì)自己的觀點(diǎn)或其對(duì)手的觀點(diǎn)的進(jìn)一步理解,哪怕是最輕微的澄清和最微小的促進(jìn),才是巨大的成功。如果你在一場(chǎng)討論中獲勝,但它未能幫助你至少稍微改變或澄清你的思想,那么你應(yīng)把它視為純粹的損失
"""
8. 波普爾關(guān)于客觀知識(shí)的理論, 也可以從另一個(gè)角度指導(dǎo)我們正確的對(duì)待結(jié)對(duì)過(guò)程中的意見(jiàn)不一致
"""
用語(yǔ)言表達(dá)我們的思想,或者更好一些,把它們寫(xiě)下來(lái),是大不相同的。因?yàn)檫@樣它們就成為可批評(píng)的了.
在這之前,它們是我們自身的一部分。我們也許有懷疑。但是我們不能以批評(píng)一個(gè)用語(yǔ)言系統(tǒng)闡述的命題,或者更好一些,寫(xiě)下的報(bào)告那樣的方式批評(píng)它們。因此,“知識(shí)”至少有一種重要的意義——“提交批評(píng)的用語(yǔ)言系統(tǒng)闡述的理論”的意義。這就是我所稱的“客觀意義上的知識(shí)”
知識(shí)本質(zhì)上在于體外人工制品,或產(chǎn)物,或制度
"""
當(dāng)我們說(shuō)出我們的觀點(diǎn), 或者更進(jìn)一步, 寫(xiě)出代碼來(lái)表達(dá)我們的觀點(diǎn), 讓它們成為客觀知識(shí),
有助于我們把批評(píng)聚焦在問(wèn)題上, 而不是針對(duì)人
結(jié)對(duì)是最直接的批評(píng), 這也暗含著任何一方不是在教導(dǎo), 而是在接受批評(píng)
9. 這里有一個(gè)有趣的推論. 批評(píng)是波普爾理論的核心手段, 實(shí)際上意味著溝通是XP的核心價(jià)值觀,
結(jié)對(duì)是XP的核心實(shí)踐
比如, 波普爾認(rèn)為: "客觀性, 不能依靠科學(xué)家本人的客觀性來(lái)保證,
必須依靠批評(píng):可被描述為科學(xué)的客觀性的事物完全建立在批評(píng)傳統(tǒng)之上,這種批評(píng)傳統(tǒng)總是不顧任何反對(duì),使人們能批評(píng)占統(tǒng)治地位的教條。換言之,科學(xué)的客觀性不是個(gè)別科學(xué)家的事情,而是相互批評(píng)的社會(huì)結(jié)果,科學(xué)家中友好與敵對(duì)的分工的社會(huì)結(jié)果,他們的合作的社會(huì)結(jié)果,也是他們的競(jìng)爭(zhēng)的社會(huì)結(jié)果"
那么XP中對(duì)類似"簡(jiǎn)單性"之類的要求, 也必須建立在批評(píng)的基礎(chǔ)上, 不能依靠單個(gè)開(kāi)發(fā)者的決定,
必須至少是結(jié)對(duì), 輪換結(jié)對(duì)來(lái)完成, 代碼必須集體所有
10. 波普爾對(duì)框架神話的反對(duì), 指導(dǎo)者如何處理采用敏捷開(kāi)發(fā)過(guò)程中價(jià)值觀不一致的問(wèn)題,
敏捷與其它軟件開(kāi)發(fā)過(guò)程理論的碰撞問(wèn)題
組織內(nèi)部?jī)r(jià)值觀一致, 事情自然順利的多. 對(duì)于大部分情況下的組織價(jià)值觀不一致,
波普爾有另一個(gè)角度的觀點(diǎn): 順利的不意味著是富有成效的, 最終取得一致意見(jiàn)也不意味著是富有成效的; 參與者學(xué)到的越多, 越富有成效. 這意味著:
向他們提出的有趣的問(wèn)題和困難的問(wèn)題越多, 吸引他們思考的新的答案越多, 他們的觀點(diǎn)越是發(fā)生動(dòng)搖, 以及討論之后他們?cè)绞悄軐?duì)事物有不同看法. 簡(jiǎn)言之,
他們的知識(shí)視野越是開(kāi)闊
結(jié)論就是波普爾認(rèn)為在不同的框架間進(jìn)行討論, 是困難的, 但不是不可能的
波普爾主張批評(píng)的多元論,
即為了尋求真理,應(yīng)允許所有理論--多多益善——與所有其他理論競(jìng)爭(zhēng)。這種競(jìng)爭(zhēng)在于對(duì)理論的理性討論,在于對(duì)它們的批評(píng)性淘汰。討論應(yīng)當(dāng)是理性的--這意味著它應(yīng)當(dāng)關(guān)注相競(jìng)爭(zhēng)的理論的真理:在批評(píng)性討論過(guò)程中似乎更接近真理的理論是更好的理論,更好的理論取代了較差的理論。因此正是真理的問(wèn)題利害攸關(guān)
因此, 哪怕你最終全面接受了敏捷, 在此之前, 應(yīng)有一個(gè)理性討論和實(shí)踐的階段, 而不是迷信.
這也意味著, 在推行敏捷的時(shí)候, 哪怕你全面否定了之前的軟件開(kāi)發(fā)理論, 在此之前, 也應(yīng)該有一個(gè)理性討論的階段, 而不是盲從. 順利和一致是好事,
但可能錯(cuò)過(guò)發(fā)現(xiàn)更好理論的機(jī)會(huì)
手里有波普爾這個(gè)錘子, 到處都是釘子. 另請(qǐng)參閱其它牽強(qiáng)附會(huì)之作:
<<敏捷外傳>>
<<姑蘇慕容與軟件開(kāi)發(fā)>>
<<獨(dú)孤九劍與軟件開(kāi)發(fā)>>