2021-04-11 分類: 網(wǎng)站建設
真正讓我郁悶的不是他們預估的錯誤。問題在于他們竟然認為自己可以做出正確的估計。作為開發(fā)人員,我們經(jīng)常會發(fā)現(xiàn),在軟件開發(fā)的問題上,一個外行人會很自然的把復雜的事情估計的很簡單。
這并不是為我們的憤怒找借口。但這引起了另外一個有趣的問題:為什么我們天生的預測復雜性的能力在遇到編程問題時會失靈?
為了回答這個問題,讓我們來認識一下我們的大腦如何估計事情的。有些事情對于一些沒有經(jīng)驗的人也很容易預估正確,但有些事情則不然。
我們來想想觀看一個人彈吉他。即使你從來沒有彈過吉他,在觀看了一場彈奏《瑪麗有只小羊羔(maryhadalittlelamb)》的吉他表演后,你也能大概推測出這很簡單,一個人不需要太高的技術就能演奏出來。同樣,當觀看了有人演奏d大調(diào)的《卡農(nóng)(pachabel’scanon)》后,你也很容易推測出,這很復雜,需要很長時間的練習才能演奏的出來。
為什么我們能夠很迅速準確的預估這兩首曲子的復雜性呢?這是跟我們用來判斷一個事情簡單和還是復雜的方法有關的。我們的大腦有一些現(xiàn)成的模式來完成這些事情,首先一個就是根據(jù)速度。這種情況下,大腦會辨別每秒鐘演奏的東西。根據(jù)每秒鐘演奏了多少東西,我們很容易有一個直觀的判斷曲子的復雜度。因為用吉他演奏一首歌是一種物理過程,一種感官上的活動,我們的大腦很容易依此來推測速度,繼而轉(zhuǎn)換成復雜度。
我們還有另外一個天生的推測依據(jù):體積。想想把一個帳篷和一棟公寓放在一起對比。即使一個人從來沒有學過建筑學,他也能告訴你通常設計和建造一個帳篷會比設計和建造一棟公寓要簡單。為什么?因為我們天生的會使用物理體積作為事物復雜性的一個指標。
當然。上面說的這兩種邏輯分析并不是總是100%的有效。但大多數(shù)情況下,人們就是這樣干,而且很成功。大多數(shù)情況中,我們在對物理過程評估時,我們的大腦會對物理事物進行有效的關聯(lián),不需要依賴之前的經(jīng)驗。
現(xiàn)在讓我們來談談軟件。當一個不懂技術的人試圖對軟件開發(fā)時間進行評估時,有兩個很基本的直觀指標在輔助他們:以體積為指標的復雜度和以速度為指標的復雜度。但他們沒有意識到,軟件跟他們想象的不一樣。軟件本質(zhì)上不是有形物質(zhì)。沒有體積和速度。它的極小的組成部分可能會時不時的在電腦屏幕上閃現(xiàn)。正因為如此,當面對開發(fā)一個web應用時(或任何類型的軟件),我們的基本直觀感覺失效了。
這第一點,速度,很顯然根本不可能被外行人拿來對軟件進行評估。于是很自然的,他們傾向于使用體積指標進行評估。要么是根據(jù)描述文檔的頁數(shù),要么是根據(jù)軟件的功能用例數(shù)或特征數(shù)。
有時候,這種評估手段確實有效!當面對一個靜態(tài)網(wǎng)站,沒有特別的設計要求,外行人很容易用這種方法估計出開發(fā)時間。但是,通常情況下,對于軟件開發(fā),體積并不能真實有效的反映復雜度。
不幸的是,對于軟件的復雜度,唯一有效的推測方法是依據(jù)經(jīng)驗。而且還不是時時都好用。作為一個程序員,我知道,根據(jù)我之前開發(fā)過的相似的功能特征,我可以估計出現(xiàn)在的這些功能特征各自要多少開發(fā)時間。然后,我把總時間加起來,這就得到了完成整個項目需要的大致時間。然而,事實情況中,每個項目在開發(fā)過程中都遇到二、三個瓶頸。這些瓶頸會肆意的消耗程序員的大量時間,你在遇到它們之前根本不會有所預見。它們會拖住整個項目,致使工期延后數(shù)周甚至數(shù)月。
網(wǎng)頁題目:不懂技術的人不要對懂技術的人說這很容易實現(xiàn)
文章網(wǎng)址:http://muchs.cn/news13/106863.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計、搜索引擎優(yōu)化、軟件開發(fā)、ChatGPT、手機網(wǎng)站建設、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容