重庆幸运农场中奖金额|重庆幸运农场官网
MyException - 我的異常網
當前位置:我的異常網» 綜合 » 不懂技術不要對懂技術的人說這很容易實現

不懂技術不要對懂技術的人說這很容易實現

www.h0f1.com  網友分享于:2015-02-04  瀏覽:82次

   111

 

   “這個網站相當簡單,所有你需要做的就是完成X,Y,Z。你看起來應該是技術很好,所以,我相信,你不需要花費太多時間就能把它搭建起來。”

 


我時不時的就會收到這樣的Email。寫這些郵件的人幾乎都是跟技術不沾邊的人,或正在研究他們的第一個產品。起初,當聽到人們這樣的話,我總是十分的惱怒。他們在跟誰辯論軟件開發所需要的時間?但后來我意識到,即使我自己對自己的項目預測要花去多少開發時間,我也是一籌莫展。如果連我自己都做不好,我何必對那些人惱怒呢?
 

真正讓我郁悶的不是他們預估的錯誤。問題在于他們竟然認為自己可以做出正確的估計。作為開發人員,我們經常會發現,在軟件開發的問題上,一個外行人會很自然的把復雜的事情估計的很簡單。
 

這并不是為我們的憤怒找借口。但這引起了另外一個有趣的問題:為什么我們天生的預測復雜性的能力在遇到編程問題時會失靈?
 

為了回答這個問題,讓我們來認識一下我們的大腦如何估計事情的。有些事情對于一些沒有經驗的人也很容易預估正確,但有些事情則不然。
 

我們來想想觀看一個人彈吉他。即使你從來沒有彈過吉他,在觀看了一場彈奏《瑪麗有只小羊羔(Mary had a Little Lamb)》的吉他表演后,你也能大概推測出這很簡單,一個人不需要太高的技術就能演奏出來。同樣,當觀看了有人演奏D大調的《卡農(Pachabel’s Canon)》后,你也很容易推測出,這很復雜,需要很長時間的練習才能演奏的出來。
 

為什么我們能夠很迅速準確的預估這兩首曲子的復雜性呢?這是跟我們用來判斷一個事情簡單和還是復雜的方法有關的。我們的大腦有一些現成的模式來完成這些事情,首先一個就是根據速度。這種情況下,大腦會辨別每秒鐘演奏的東西。根據每秒鐘演奏了多少東西,我們很容易有一個直觀的判斷曲子的復雜度。因為用吉他演奏一首歌是一種物理過程,一種感官上的活動,我們的大腦很容易依此來推測速度,繼而轉換成復雜度。
 

我們還有另外一個天生的推測依據:體積。想想把一個帳篷和一棟公寓放在一起對比。即使一個人從來沒有學過建筑學,他也能告訴你通常設計和建造一個帳篷會比設計和建造一棟公寓要簡單。為什么?因為我們天生的會使用物理體積作為事物復雜性的一個指標。
 

當然。上面說的這兩種邏輯分析并不是總是100%的有效。但大多數情況下,人們就是這樣干,而且很成功。大多數情況中,我們在對物理過程評估時,我們的大腦會對物理事物進行有效的關聯,不需要依賴之前的經驗。
 

現在讓我們來談談軟件。當一個不懂技術的人試圖對軟件開發時間進行評估時,有兩個很基本的直觀指標在輔助他們:以體積為指標的復雜度和以速度為指標的復雜度。但他們沒有意識到,軟件跟他們想象的不一樣。軟件本質上不是有形物質。沒有體積和速度。它的極小的組成部分可能會時不時的在電腦屏幕上閃現。正因為如此,當面對開發一個web應用時(或任何類型的軟件),我們的基本直觀感覺失效了。
 

這第一點,速度,很顯然根本不可能被外行人拿來對軟件進行評估。于是很自然的,他們傾向于使用體積指標進行評估。要么是根據描述文檔的頁數,要么是根據軟件的功能用例數或特征數。
 

有時候,這種評估手段確實有效!當面對一個靜態網站,沒有特別的設計要求,外行人很容易用這種方法估計出開發時間。但是,通常情況下,對于軟件開發,體積并不能真實有效的反映復雜度。
 

不幸的是,對于軟件的復雜度,唯一有效的推測方法是依據經驗。而且還不是時時都好用。作為一個程序員,我知道,根據我之前開發過的相似的功能特征,我可以估計出現在的這些功能特征各自要多少開發時間。然后,我把總時間加起來,這就得到了完成整個項目需要的大致時間。然而,事實情況中,每個項目在開發過程中都遇到二、三個瓶頸。這些瓶頸會肆意的消耗程序員的大量時間,你在遇到它們之前根本不會有所預見。它們會拖住整個項目,致使工期延后數周甚至數月。
 

這些是沒有經驗的人在評估復雜度時不會理解的。他們不明白在其他事情上都很靈的方法,為什么放到軟件開發上就不靈了。所以,下一次當你聽到有人說“我想你幾天時間就能把它開發出來”時,不管是誰說的,都不要懊惱。深呼吸一下,告訴他這篇文章的地址,自己該干什么還干什么。
 
 
[英文原文:I'm Sure It Will Only Take You A Few Days To Code ]

 

文章評論

程序員必看的十大電影
程序員必看的十大電影
做程序猿的老婆應該注意的一些事情
做程序猿的老婆應該注意的一些事情
寫給自己也寫給你 自己到底該何去何從
寫給自己也寫給你 自己到底該何去何從
鮮為人知的編程真相
鮮為人知的編程真相
如何成為一名黑客
如何成為一名黑客
Web開發人員為什么越來越懶了?
Web開發人員為什么越來越懶了?
初級 vs 高級開發者 哪個性價比更高?
初級 vs 高級開發者 哪個性價比更高?
程序員的鄙視鏈
程序員的鄙視鏈
什么才是優秀的用戶界面設計
什么才是優秀的用戶界面設計
如何區分一個程序員是“老手“還是“新手“?
如何區分一個程序員是“老手“還是“新手“?
Java程序員必看電影
Java程序員必看電影
我跳槽是因為他們的顯示器更大
我跳槽是因為他們的顯示器更大
我是如何打敗拖延癥的
我是如何打敗拖延癥的
代碼女神橫空出世
代碼女神橫空出世
編程語言是女人
編程語言是女人
Google倫敦新總部 猶如星級莊園
Google倫敦新總部 猶如星級莊園
十大編程算法助程序員走上高手之路
十大編程算法助程序員走上高手之路
程序員周末都喜歡做什么?
程序員周末都喜歡做什么?
Java 與 .NET 的平臺發展之爭
Java 與 .NET 的平臺發展之爭
Web開發者需具備的8個好習慣
Web開發者需具備的8個好習慣
“骯臟的”IT工作排行榜
“骯臟的”IT工作排行榜
親愛的項目經理,我恨你
親愛的項目經理,我恨你
“懶”出效率是程序員的美德
“懶”出效率是程序員的美德
程序員和編碼員之間的區別
程序員和編碼員之間的區別
看13位CEO、創始人和高管如何提高工作效率
看13位CEO、創始人和高管如何提高工作效率
不懂技術不要對懂技術的人說這很容易實現
不懂技術不要對懂技術的人說這很容易實現
程序員的一天:一寸光陰一寸金
程序員的一天:一寸光陰一寸金
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
 程序員的樣子
程序員的樣子
為什么程序員都是夜貓子
為什么程序員都是夜貓子
程序員眼里IE瀏覽器是什么樣的
程序員眼里IE瀏覽器是什么樣的
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
當下全球最炙手可熱的八位少年創業者
當下全球最炙手可熱的八位少年創業者
漫畫:程序員的工作
漫畫:程序員的工作
要嫁就嫁程序猿—錢多話少死的早
要嫁就嫁程序猿—錢多話少死的早
那些爭議最大的編程觀點
那些爭議最大的編程觀點
為啥Android手機總會越用越慢?
為啥Android手機總會越用越慢?
10個幫程序員減壓放松的網站
10個幫程序員減壓放松的網站
一個程序員的時間管理
一個程序員的時間管理
中美印日四國程序員比較
中美印日四國程序員比較
程序員都該閱讀的書
程序員都該閱讀的書
老程序員的下場
老程序員的下場
60個開發者不容錯過的免費資源庫
60個開發者不容錯過的免費資源庫
2013年中國軟件開發者薪資調查報告
2013年中國軟件開發者薪資調查報告
2013年美國開發者薪資調查報告
2013年美國開發者薪資調查報告
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序員最害怕的5件事 你中招了嗎?
程序員最害怕的5件事 你中招了嗎?
每天工作4小時的程序員
每天工作4小時的程序員
5款最佳正則表達式編輯調試器
5款最佳正則表達式編輯調試器
軟件開發程序錯誤異常ExceptionCopyright © 2009-2015 MyException 版權所有
重庆幸运农场中奖金额