GHawk

          UP & XP之爭(zhēng),意義何在?(續(xù))

          雖然我沒(méi)能去參加BEA的活動(dòng),但是相關(guān)的資料已經(jīng)下載并且瀏覽過(guò)了,確實(shí)收獲不少。所以,對(duì)于莊兄的這些想法我很理解。

          相信不只你我,大部分的人都比較認(rèn)同敏捷化的過(guò)程,希望使過(guò)程變得敏捷。的確,這是個(gè)好東西,之前我也說(shuō)過(guò)“敏捷過(guò)程是三贏的”這樣的話。

          我所關(guān)心的問(wèn)題是“如何能夠用好XP?”。

          莊兄認(rèn)為“湯的味道,不需要什么過(guò)程控制”,我也會(huì)認(rèn)同。為什么?因?yàn)槟阄叶际侵袊?guó)人。大部分中國(guó)人不會(huì)認(rèn)為湯的味道需要什么過(guò)程控制。但是想想看,如果你在不同地方買到的肯德基炸雞味道各異;同一批次生產(chǎn)的同型號(hào)的汽車形狀各異;銀行里取出來(lái)的一疊百元大鈔大小不一,你不會(huì)覺(jué)得奇怪么或是有那么一點(diǎn)點(diǎn)憤怒么?

          西方人(甚至學(xué)習(xí)西方的日本人)對(duì)品質(zhì)的重視程度卻完全不同。他們不允許肯德基炸雞的味道有很大偏差(即便你覺(jué)得無(wú)所謂);“2毫米工程”不允許整車的總裝長(zhǎng)度發(fā)生2毫米以上的偏差(即便你覺(jué)得無(wú)所謂);百元大鈔……(我想誰(shuí)都不會(huì)無(wú)所謂)。

          所以,一切質(zhì)量都有標(biāo)準(zhǔn),一切標(biāo)準(zhǔn)都應(yīng)該被度量!這就是工程學(xué)的目標(biāo)之一,為了實(shí)現(xiàn)更嚴(yán)格的質(zhì)量標(biāo)準(zhǔn),就需要過(guò)程控制和度量。

          莊兄所說(shuō),用測(cè)試用例保證代碼的質(zhì)量其實(shí)還是采用了“測(cè)試用例”作為度量的標(biāo)準(zhǔn)。唯一的問(wèn)題是:“如何確保測(cè)試用例的質(zhì)量”。顯然,我們不能把一把不直的尺子度量出來(lái)的結(jié)果作為可靠的參考依據(jù)。怎么解決呢?“結(jié)對(duì)編程”么?嗯,這是一個(gè)不錯(cuò)的方式,那么最終該信賴誰(shuí)呢?是Pair中的A還是B呢?或者,是Leader么?那么又是誰(shuí)提出的要求呢?是老板么?還是客戶?政府?法規(guī)?市場(chǎng)?……問(wèn)題沒(méi)有終結(jié)了。

          不要學(xué)習(xí)哲學(xué)家的方法,提出一層又一層無(wú)法解決的問(wèn)題。我們是工程師,應(yīng)該試圖解決問(wèn)題才對(duì)!解決問(wèn)題的關(guān)鍵在于,XP同樣需要標(biāo)準(zhǔn)!為了制定標(biāo)準(zhǔn),必要的文檔是不可以少的。而且,標(biāo)準(zhǔn)本身的質(zhì)量是嚴(yán)苛的。因?yàn)?,作為?biāo)準(zhǔn),他不可以含糊其辭、模棱兩可。在標(biāo)準(zhǔn)的基礎(chǔ)之上,我們才可以談什么TDD、Pair Programming之類的實(shí)踐。

          回到爭(zhēng)論的開端。我引用了林先生的話“UP是正楷;XP是草書。要先學(xué)好UP才能學(xué)好XP,先學(xué)XP會(huì)亂套。”我對(duì)這句話的理解如下:這句話并沒(méi)有批判UP或是XP,只是指出了一個(gè)學(xué)習(xí)的順序。我認(rèn)為這句話是有實(shí)踐依據(jù)的,因?yàn)閁P強(qiáng)調(diào)的是一種經(jīng)典的工程方法。軟件工程本來(lái)就源于其他行業(yè)的工程實(shí)踐經(jīng)驗(yàn)。UP利用大量的文檔對(duì)開發(fā)活動(dòng)進(jìn)行約束和記錄。正是這種重量級(jí)的過(guò)程規(guī)范了規(guī)范了從PM到Coder的所有活動(dòng),有問(wèn)題可以參照文檔,看看自己應(yīng)該怎么做。文檔也可以作為日后評(píng)估這個(gè)過(guò)程的依據(jù)。隨著整個(gè)團(tuán)隊(duì)和每個(gè)個(gè)人的經(jīng)驗(yàn)不斷積累,開發(fā)活動(dòng)中的日常行為漸漸形成了一種職業(yè)習(xí)慣。然后可以通過(guò)對(duì)UP的配置,逐漸減少文檔的使用量,一些沒(méi)有必要的文檔就可以省去,更具團(tuán)隊(duì)的實(shí)際能力調(diào)整過(guò)程。UP是可配置的,不必要的文檔沒(méi)有存在的理由,這一點(diǎn)UP和XP沒(méi)有什么兩樣。當(dāng)然,隨著大家的職業(yè)習(xí)慣越來(lái)越好,經(jīng)驗(yàn)越來(lái)越豐富,個(gè)人和團(tuán)隊(duì)就可以采用更敏捷更輕便的過(guò)程,逐漸過(guò)渡到XP上去。

          反過(guò)來(lái),如果一開始就沒(méi)有詳盡的文檔,很多活動(dòng)(比如設(shè)計(jì)、版本控制)往往會(huì)脫離控制,進(jìn)入一種無(wú)序的、混亂的狀態(tài)。沒(méi)有文檔可參考,就意味著很多問(wèn)題只能問(wèn)人,而不同人的回答可能各異,同一個(gè)人對(duì)同一個(gè)問(wèn)題的兩次回答也可能不同!當(dāng)然,如果整個(gè)團(tuán)隊(duì)的工程素養(yǎng)和個(gè)體的職業(yè)習(xí)慣都比較好的情況下可能不會(huì)發(fā)生類似的情況。但是這種工程素養(yǎng)和職業(yè)習(xí)慣從哪里來(lái),可能單靠的XP是不足以培養(yǎng)出來(lái)的。

          “UP是正楷;XP是草書。要先學(xué)好UP才能學(xué)好XP,先學(xué)XP會(huì)亂套。”這句話表明了UP和XP在一定程度上是存在沖突的,并且提出了一條路線去降低和避免這個(gè)沖突。

          再次需要強(qiáng)調(diào)的是莊兄所提到的“XP是一種思想”,這點(diǎn)我認(rèn)同。但是我認(rèn)為這個(gè)除了思想之外,還是一種“文化”。這種思想和文化也是出于軟件工程多年來(lái)的實(shí)踐,其中也不免有UP等其他過(guò)程。不能簡(jiǎn)單地認(rèn)為“我們只要吸取歷史的教訓(xùn),提出新的思想和文化就不會(huì)再犯同樣的錯(cuò)誤了?!焙芏鄷r(shí)候歷史總是一次又一次地重演著。新的思想和文化如果不能被準(zhǔn)確地理解和運(yùn)用,它所帶來(lái)的可能仍然是它原本想解決的問(wèn)題。只有我們具備了引入這種文化的基礎(chǔ),才能把它變成自己的文化,否則這仍然是掛在嘴邊行于表面的一種不求精髓只求模仿的偽文化、偽思想。這一點(diǎn)對(duì)于UP和XP的實(shí)踐者來(lái)說(shuō)沒(méi)有什么兩樣。

          posted on 2006-04-25 15:03 GHawk 閱讀(2051) 評(píng)論(4)  編輯  收藏 所屬分類: 軟件過(guò)程

          評(píng)論

          # re: UP & XP之爭(zhēng),意義何在?(續(xù)) 2006-04-25 16:02 yuxie

          引用“反過(guò)來(lái),如果一開始就沒(méi)有詳盡的文檔,很多活動(dòng)(比如設(shè)計(jì)、版本控制)往往會(huì)脫離控制,進(jìn)入一種無(wú)序的、混亂的狀態(tài)。沒(méi)有文檔可參考,就意味著很多問(wèn)題只能問(wèn)人,而不同人的回答可能各異,同一個(gè)人對(duì)同一個(gè)問(wèn)題的兩次回答也可能不同!當(dāng)然,如果整個(gè)團(tuán)隊(duì)的工程素養(yǎng)和個(gè)體的職業(yè)習(xí)慣都比較好的情況下可能不會(huì)發(fā)生類似的情況。但是這種工程素養(yǎng)和職業(yè)習(xí)慣從哪里來(lái),可能單靠的XP是不足以培養(yǎng)出來(lái)的?!?

          如果你的團(tuán)隊(duì)沒(méi)有足夠的經(jīng)驗(yàn)和工程素養(yǎng),卻又不想組織足夠的培訓(xùn)和交流,那么即使文檔再多、再詳盡也無(wú)濟(jì)于事!  回復(fù)  更多評(píng)論   

          # re: UP & XP之爭(zhēng),意義何在?(續(xù)) 2006-04-25 17:30 GHawk

          這就好比法規(guī)、制度,它存在,但是依然可以違反它。
          文檔提供了一個(gè)做事的準(zhǔn)則和流程,聲明了一些大家都應(yīng)該知道和遵守的東西。如果一個(gè)人連明文規(guī)定的東西都無(wú)法理解和遵守。那怎么指望他能夠僅僅通過(guò)溝通就能遵守團(tuán)隊(duì)的行動(dòng)準(zhǔn)則,成為團(tuán)隊(duì)的一員呢?應(yīng)該是很有難度的吧。

          文檔是UP進(jìn)行過(guò)程控制的手段,XP用來(lái)解決過(guò)程中采用的是“溝通”。文檔的適用范圍更普遍一些 ,“溝通”雖然便利,但是會(huì)受到很多條件的限制。從UP到XP,可以明確知道哪些文檔從“文檔”變成了“溝通”;從XP到UP,卻很難把所有的“溝通”轉(zhuǎn)化成“文檔?!边@是因?yàn)槲臋n的成本通常比溝通來(lái)得高。  回復(fù)  更多評(píng)論   

          # re: UP & XP之爭(zhēng),意義何在?(續(xù)) 2006-04-27 23:58 joachim

          我想最重要的是需要有一份簡(jiǎn)單概要的指導(dǎo)原則性的規(guī)范,就像法律先要有憲法一樣。
          隨著項(xiàng)目的進(jìn)行和經(jīng)驗(yàn)的積累,各種規(guī)范、文檔會(huì)多得嚇人,新人進(jìn)來(lái)不大會(huì)去完整的讀或者學(xué)習(xí)長(zhǎng)達(dá)上百頁(yè)甚至更多的文檔。XP的交流應(yīng)該是更有效。
          文檔固然可以積累和沉淀知識(shí),但如何讓這些沉淀的東西更好更廣泛的傳播,似乎UP也沒(méi)有很好的解決辦法。  回復(fù)  更多評(píng)論   

          # re: UP & XP之爭(zhēng),意義何在?(續(xù)) 2006-05-11 17:23 SpiderMan

          XP 與 UP之爭(zhēng)的背后,體現(xiàn)著兩種不同文化理念、價(jià)值觀的差異

          打個(gè)比方:

          教育、培養(yǎng)人的道德觀念,提高人們的素養(yǎng),來(lái)降低犯罪。

          還是

          制定大量的法律條例,來(lái)打擊、制止犯罪。

            回復(fù)  更多評(píng)論   

          主站蜘蛛池模板: 银川市| 安义县| 任丘市| 广灵县| 陆良县| 彰化市| 蛟河市| 卢氏县| 南昌市| 桦南县| 双鸭山市| 屏东县| 徐闻县| 建始县| 三门县| 都昌县| 高碑店市| 大同县| 武穴市| 庐江县| 乌兰察布市| 句容市| 陇川县| 承德县| 遂溪县| 麦盖提县| 孟津县| 额济纳旗| 宿州市| 栾川县| 济宁市| 图木舒克市| 涟源市| 娄底市| 常宁市| 北碚区| 遂宁市| 罗江县| 临清市| 武夷山市| 临江市|