色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

“品質(zhì)在于構(gòu)建過程”嗎?

  今天在微博上看到幾位敏捷愛好者(本著討論問題的態(tài)度故隱其名)探討敏捷測試和質(zhì)量保證問題,我忍不住也加入了討論:

  Z先生原帖:我剛才看到一個大會演講稿,談到敏捷測試六大指導原則:1. 僅靠測試人員不可能獲得高質(zhì)量的軟件,質(zhì)量是整個研發(fā)團隊的責任;2. 場景是不可窮舉的,測試活動必須是風險驅(qū)動的,關(guān)注于高風險的場景;3.分層自動化測試是唯一出路;4. 在正確的位置進行恰當?shù)臏y試是自動化的關(guān)鍵;【待續(xù)】

  S先生回復:品質(zhì)在于構(gòu)建過程。檢驗貫穿構(gòu)建過程,提供及時反饋。

  我回復:什么樣的構(gòu)建過程才能出Unix這樣的品質(zhì)呢?迭代?快速反饋?TDD?

  S先生回復:據(jù)說stroustrup聽到重構(gòu)時的反應是,我們從七十年代就這樣做了。推薦《UNIX編程環(huán)境》,了解大師的編程方式。

  我回復:您偷換了概念。不能說大師用了重構(gòu),C++和UNIX的品質(zhì)就是靠重構(gòu)或某種構(gòu)建過程得來的。廚師做菜用到了勺子,不等于菜好吃是因為勺子。

  S先生回復:我沒有概念。我們看到一個果,就問因是什么。其實是泛因果,無因果,一切是機緣湊巧。

  我回復:“品質(zhì)在于構(gòu)建過程”難道不是一個明白的因果描述嗎?

  S先生回復:品質(zhì)在于構(gòu)建的人。我說話時沒因果,你看到了因果。

  我回復:歡迎敏捷愛好者圍觀!

  很高興幾個回合討論下來S先生修正了先前“品質(zhì)在于構(gòu)建過程”的觀點。什么重構(gòu)、TDD、迭代、快速反饋等等構(gòu)建過程都不是Unix品質(zhì)的核心要素。我不但不認同“品質(zhì)在于構(gòu)建過程”、“測試是最好的設(shè)計方法”這類機械式的觀點,而且也不滿意把軟件優(yōu)劣歸結(jié)于“人是根本”的簡單回答。我們需要探索一個既非機械式的,也非簡單地歸結(jié)為某種理念的更深刻的答案。

  像Unix這樣優(yōu)秀的軟件,真正的核心要素到底是什么呢?我的答案是:模型,即人心中的軟件。在看得見、摸得著之前,Unix的品質(zhì)就已經(jīng)存在于設(shè)計者的心中了,他們不會在Unix誕生后驚訝:“哇,Unix的穩(wěn)定性這么好,7x24小時運行,從來不藍屏”。模型一定是設(shè)計者心中最美最自然的東西,為什么我們閱讀操作系統(tǒng)源代碼會像進入迷宮一般理不清頭緒,而作者自己卻覺得頭頭是道呢?因為作者心中早已依稀看到了那個美麗的作品,我們以為他幾十萬行代碼敲很辛苦,實際上在他自己看來是自然地一步步向她靠近。

  模型是軟件的靈魂,存在于設(shè)計者的心中,而軟件的構(gòu)建過程正是心中的世界向現(xiàn)實世界逐漸投影。模型可以是完美的,而現(xiàn)實卻非完美,或許有時候我們很幸運地到達了,或許有時候我們不得不向現(xiàn)實妥協(xié),改變心中的世界。試圖制造燈泡的愛迪生可能會一時找不到熔點極高的發(fā)光金屬而止步不前,企圖制造永動機的人則根本無法實現(xiàn)。在不完美的現(xiàn)實中,我們明明想的是a+b,卻敲成了a-b;我們以為某個API可以很快返回,沒想到卻等了5秒鐘,為了不阻塞用戶不得不改成了異步。Review、測試等構(gòu)建過程在一定程度上彌補了現(xiàn)實的不完美,并對模型給予了反饋,但它卻無法決定軟件的特質(zhì)。Windows NT內(nèi)核和Windows 3.1內(nèi)核的品質(zhì)差別不在于微軟采用了兩種不同的構(gòu)建過程,而在于它們采用了不同的內(nèi)核模型。靈魂與軀體的差別就在于此!雖然對于普通的軟件開發(fā)通常有不少成熟的模型供選擇,并不需要總是創(chuàng)造自己的模型,但理解模型間的差異,并在設(shè)計時選用恰當?shù)哪P腿匀槐炔捎媚撤N構(gòu)建過程更加重要。服務(wù)器架構(gòu)采用Nginx似的異步IO模型,還是采用Apache似的每個請求一個線程的模型遠比開發(fā)是否采用了TDD更為重要。

  模型的產(chǎn)生是柔性的,主要源于靈感;過程的執(zhí)行是剛性的,主要源于邏輯。蘋果砸在牛頓的腦袋上能砸出萬有引力模型,砸在我們腦袋上卻只是“哎呦”一聲;但一個蘋果3元錢,兩個蘋果2*3=6元錢卻在牛頓和我們面前是平等的。迷信靈感和迷信邏輯是兩個錯誤的極端,孔子講“天下國家可均也,爵祿可辭也,白刃可蹈也,中庸不可能也”,任何一項技能的高級階段都是關(guān)于“度”的藝術(shù)。如同光具有波粒二象性,軟件開發(fā)也具有藝術(shù)創(chuàng)作和工業(yè)生產(chǎn)的二象性,它包含了柔性的設(shè)計和剛性的過程。越是不成熟的前沿領(lǐng)域越表現(xiàn)出柔性特征;越是成熟的一般領(lǐng)域越表現(xiàn)出工業(yè)生產(chǎn)的特征。因此,一個以新產(chǎn)品為主的創(chuàng)業(yè)型公司應當更注重設(shè)計,更需要畫家、詩人般的創(chuàng)造型人才;而業(yè)務(wù)成熟產(chǎn)品穩(wěn)定的大公司應當更注重過程,更需要踏踏實實的生產(chǎn)線工人似的人才。但在當今這個瞬息萬變的信息時代,即使是世界500強的大公司也越來越不穩(wěn)定,越來越需要創(chuàng)新才能適應,所以即使大公司也不可忽視軟件開發(fā)的柔性特征。同時,我們也不能迷信模型,過程同樣可以成為企業(yè)的核心競爭力,比如:富士康。虛虛實實,實實虛虛,其妙無窮。老外做Nike品牌(虛),我們做代工生產(chǎn)(實),高額利潤被老外拿走了;我們經(jīng)營航空公司(虛),老外生產(chǎn)波音飛機(實)高價賣給我們,高額利潤又被老外拿走了。靠虛取勝還是靠實取勝?這是個問題^_^

  或許我對于模型的描述不太讓人滿意,人們多習慣于那種有章可循的感覺,即便不是死板的知識,起碼要找個“在某某思想的指導下”才覺得心里有著落。或許還有人說,模型的確重要,那么我們能不能有一個過程、模式或套路來推導出模型呢?比如,現(xiàn)在非常流行的從用戶需求出發(fā)的分析模式,即“分析需求,抽象出共性,共性是本質(zhì)的,本質(zhì)是穩(wěn)定的”,這類模式的特點符合人們希望找到套路的心理,一看就明白,容易操作,有成就感。我不否認這類模式的確可以得出可用的軟件設(shè)計,沿用成熟的模型也未嘗不可。但我們應該明白,心中的世界遠比現(xiàn)實的世界更廣大更美妙。世界是多元的,現(xiàn)有的東西(用戶需求、成熟模型等)只代表了其中某幾個維度的視圖,設(shè)計者心中應當有更多的維度!用戶需要一個文本編輯器,是設(shè)計者心中的世界決定了他交出的作品是Vi,還是Emacs,亦或是Notepad。亨利·福特說:“如果你問用戶需要什么,他會告訴你一匹更快的馬”。汽車源于福特心中的世界,這是一個比只有馬的世界更多彩的世界。喬布斯是一個不重視市場調(diào)研的人,iPod, iPhone, iPad都不是發(fā)個問卷,做個市場調(diào)查看看用戶需要什么的結(jié)果。Apple是喬布斯心中的世界在現(xiàn)實中的投影!所以,請打破“從用戶需求出發(fā)”,“從模式出發(fā)”的迷信,釋放你的想象力,讓自己心中的世界去包容現(xiàn)實的世界吧!

  每個人心中都有一個屬于自己的世界,牛頓運動定律是牛頓心中的世界,相對論是愛因斯坦心中的世界。哪一個才是本來的世界呢?有沒有本來的世界呢?本來的世界是什么樣子呢?… 老子給我們啟示“道可道,非常道”,說得清,道得明,想得到的都不是永恒的真理,所以真理不可言說,對真理的探索永遠沒有止境……

it知識庫“品質(zhì)在于構(gòu)建過程”嗎?,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 金寨县| 马龙县| 察雅县| 普陀区| 民勤县| 唐海县| 普兰县| 定州市| 清徐县| 固原市| 石渠县| 罗甸县| 阿巴嘎旗| 左权县| 宜川县| 栾川县| 高台县| 远安县| 西宁市| 宣恩县| 碌曲县| 张北县| 龙门县| 封丘县| 祁连县| 格尔木市| 永昌县| 青海省| 隆昌县| 石首市| 马鞍山市| 昌平区| 曲麻莱县| 古田县| 磐石市| 尼玛县| 高雄市| 西乌珠穆沁旗| 敦化市| 丹江口市| 旬阳县|