分(fēn)享到:

不懂(dǒng)技術(shù)的人(rén)不要對懂(dǒng)技術(shù)的人(rén)說(shuō)這很容易實現!

日(rì)期:2013-08-21 23:10:00     閱讀(dú):1156     文章(zhāng)來(lái)源:源美網絡     标簽:

“這個網站(zhàn)相(xiàng)當簡單,所有你(nǐ)需要做的就(jiù)是完成X,Y,Z。你(nǐ)看(kàn)起來(lái)應該是技術(shù)很好,所以,我相(xiàng)信,你(nǐ)不需要花費太多時間就(jiù)能把它搭建起來(lái)。”


我時不時的就(jiù)會收到這樣的Email。寫這些郵件(jiàn)的人(rén)幾乎都(dōu)是跟技術(shù)不沾邊的人(rén),或正在研究他(tā)們的第一個産品。起初,當聽到人(rén)們這樣的話(huà),我總是十分(fēn)的惱怒。他(tā)們在跟誰辯論軟件(jiàn)開發所需要的時間?但(dàn)後來(lái)我意識到,即使我自(zì)己對自(zì)己的項目預測要花去(qù)多少開發時間,我也是一籌莫展。如(rú)果連我自(zì)己都(dōu)做不好,我何必對那些人(rén)惱怒呢(ne)?


真正讓我郁悶的不是他(tā)們預估的錯誤。問(wèn)題在于他(tā)們竟然認爲自(zì)己可(kě)以做出正确的估計(jì)。作(zuò)爲開發人(rén)員(yuán),我們經常會發現,在軟件(jiàn)開發的問(wèn)題上,一個外行人(rén)會很自(zì)然的把複雜的事(shì)情估計(jì)的很簡單。


這并不是爲我們的憤怒找借口。但(dàn)這引起了另外一個有趣的問(wèn)題:爲什麽我們天生(shēng)的預測複雜性的能力在遇到編程問(wèn)題時會失靈?


爲了回答這個問(wèn)題,讓我們來(lái)認識一下我們的大(dà)腦如(rú)何估計(jì)事(shì)情的。有些事(shì)情對于一些沒有經驗的人(rén)也很容易預估正确,但(dàn)有些事(shì)情則不然。


我們來(lái)想想觀看(kàn)一個人(rén)彈吉他(tā)。即使你(nǐ)從(cóng)來(lái)沒有彈過吉他(tā),在觀看(kàn)了一場彈奏《瑪麗有隻小羊羔(Mary had a Little Lamb)》的吉他(tā)表演後,你(nǐ)也能大(dà)概推測出這很簡單,一個人(rén)不需要太高的技術(shù)就(jiù)能演奏出來(lái)。同樣,當觀看(kàn)了有人(rén)演奏D大(dà)調的《卡農(Pachabel’s Canon)》後,你(nǐ)也很容易推測出,這很複雜,需要很長時間的練習才能演奏的出來(lái)。


爲什麽我們能夠很迅速準确的預估這兩首曲子的複雜性呢(ne)?這是跟我們用來(lái)判斷一個事(shì)情簡單和還(hái)是複雜的方法有關的。我們的大(dà)腦有一些現成的模式來(lái)完成這些事(shì)情,首先一個就(jiù)是根據速度。這種情況下,大(dà)腦會辨别每秒鍾演奏的東西。根據每秒鍾演奏了多少東西,我們很容易有一個直觀的判斷曲子的複雜度。因爲用吉他(tā)演奏一首歌是一種物理(lǐ)過程,一種感官上的活動,我們的大(dà)腦很容易依此來(lái)推測速度,繼而轉換成複雜度。


我們還(hái)有另外一個天生(shēng)的推測依據:體(tǐ)積。想想把一個帳篷和一棟公寓放(fàng)在一起對比。即使一個人(rén)從(cóng)來(lái)沒有學過建築學,他(tā)也能告訴你(nǐ)通常設計(jì)和建造一個帳篷會比設計(jì)和建造一棟公寓要簡單。爲什麽?因爲我們天生(shēng)的會使用物理(lǐ)體(tǐ)積作(zuò)爲事(shì)物複雜性的一個指标。


當然。上面說(shuō)的這兩種邏輯分(fēn)析并不是總是100%的有效。但(dàn)大(dà)多數情況下,人(rén)們就(jiù)是這樣幹,而且很成功。大(dà)多數情況中,我們在對物理(lǐ)過程評估時,我們的大(dà)腦會對物理(lǐ)事(shì)物進行有效的關聯,不需要依賴之前的經驗。


現在讓我們來(lái)談談軟件(jiàn)。當一個不懂(dǒng)技術(shù)的人(rén)試圖對軟件(jiàn)開發時間進行評估時,有兩個很基本的直觀指标在輔助他(tā)們:以體(tǐ)積爲指标的複雜度和以速度爲指标的複雜度。但(dàn)他(tā)們沒有意識到,軟件(jiàn)跟他(tā)們想象的不一樣。軟件(jiàn)本質上不是有形物質。沒有體(tǐ)積和速度。它的極小的組成部分(fēn)可(kě)能會時不時的在電腦屏幕上閃現。正因爲如(rú)此,當面對開發一個web應用時(或任何類型的軟件(jiàn)),我們的基本直觀感覺失效了。


這第一點,速度,很顯然根本不可(kě)能被外行人(rén)拿來(lái)對軟件(jiàn)進行評估。于是很自(zì)然的,他(tā)們傾向于使用體(tǐ)積指标進行評估。要麽是根據描述文檔的頁數,要麽是根據軟件(jiàn)的功能用例數或特征數。


有時候,這種評估手段确實有效!當面對一個靜(jìng)态網站(zhàn),沒有特别的設計(jì)要求,外行人(rén)很容易用這種方法估計(jì)出開發時間。但(dàn)是,通常情況下,對于軟件(jiàn)開發,體(tǐ)積并不能真實有效的反映複雜度。


不幸的是,對于軟件(jiàn)的複雜度,唯一有效的推測方法是依據經驗。而且還(hái)不是時時都(dōu)好用。作(zuò)爲一個程序員(yuán),我知道,根據我之前開發過的相(xiàng)似的功能特征,我可(kě)以估計(jì)出現在的這些功能特征各自(zì)要多少開發時間。然後,我把總時間加起來(lái),這就(jiù)得(de)到了完成整個項目需要的大(dà)緻時間。然而,事(shì)實情況中,每個項目在開發過程中都(dōu)遇到二、三個瓶頸。這些瓶頸會肆意的消耗程序員(yuán)的大(dà)量時間,你(nǐ)在遇到它們之前根本不會有所預見(jiàn)。它們會拖住整個項目,緻使工(gōng)期延後數周甚至數月。


這些是沒有經驗的人(rén)在評估複雜度時不會理(lǐ)解的。他(tā)們不明白(bái)在其他(tā)事(shì)情上都(dōu)很靈的方法,爲什麽放(fàng)到軟件(jiàn)開發上就(jiù)不靈了。所以,下一次當你(nǐ)聽到有人(rén)說(shuō)“我想你(nǐ)幾天時間就(jiù)能把它開發出來(lái)”時,不管是誰說(shuō)的,都(dōu)不要懊惱。深呼吸一下,告訴他(tā)這篇文章(zhāng)的地址,自(zì)己該幹什麽還(hái)幹什麽。


“無營銷不網站(zhàn)”,今天關于常見(jiàn)問(wèn)題的文章(zhāng)就(jiù)寫到這裡(lǐ),還(hái)是老樣子,如(rú)果大(dà)家覺得(de)有用,可(kě)以直接收藏深圳網站(zhàn)建設的官方網站(zhàn),我們相(xiàng)互交流,共同學習。



文章(zhāng)引用:

本站(zhàn)文章(zhāng)爲深圳網站(zhàn)建設·源美網絡原創策劃,如(rú)有版權糾紛或者違規問(wèn)題,請(qǐng)聯系我們删除,謝謝!

上一篇: FTP工(gōng)作(zuò)原理(lǐ)

下一篇: 請(qǐng)問(wèn)服務器是如(rú)何進行管理(lǐ)的呢(ne)?

返回列表
最新案例
OUR ADVANTAGE WORKS

售後保障

承諾任何問(wèn)題1小時内解決

數據備份

更安全、更高效、更穩定

價格公道精準

項目經理(lǐ)精準報價不弄虛作(zuò)假

合作(zuò)無風(fēng)險

重合同講信譽,無效全額退款