為什么軟件開發(fā)工期預(yù)估都不靠譜
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
本文的作者Diego Basch是IndexTank公司(被LinkedIn公司收購)的前任CEO,他是看到了Quora上一個有趣的關(guān)于討論軟件開發(fā)工期估算不準(zhǔn)的文章后寫下了這篇文章。
有些人認為做一個大型軟件項目跟建一座大橋一樣。你可以根據(jù)以往的項目,使用那些歷史數(shù)據(jù)來評估所需要的時間和資源。這種觀點數(shù)十年前就已經(jīng)被證實為偽觀點;這種類比出的結(jié)論在上世紀(jì)九十年代,我在卡內(nèi)基·梅隆攻讀軟件工程學(xué)位時,是我一直向往的結(jié)果。 現(xiàn)實生活中,大多數(shù)值得一做的工程都不會是之前的項目的重復(fù)。不要以為當(dāng)需要一座橋時,你可以“gem install bridge”或擴展bridge4j。一個新的軟件項目更像是這樣: — 你是一個發(fā)明家。你已經(jīng)發(fā)明了一種太陽能微波爐,一種以死蟲子為能量的發(fā)動機,一種能殺死蚊子的激光武器。那好,有人找到你對你說: “嗨,發(fā)明家,我需要一種無人機,它能夠抓取老鼠(不能是別的動物),定位我的前女友,把老鼠投擲到她頭上。給出一個資金預(yù)算和工期估計吧。” 很顯然,你會不知道如何入手。你需要理解需求。這種東西以前從來沒有制造過,但這完全不是什么新技術(shù)。無人機已經(jīng)有了,定技術(shù)也有。可是如何能準(zhǔn)確的找到老鼠呢?有多少東西是真的需要你去發(fā)明的?你可以買一個DIY 無人機,稍加改動是否可以滿足需求?你的客戶是否能夠偷偷的把一個跟蹤設(shè)備放到他前女友的手袋里? 做軟件不是一種重復(fù)性動作,而是一種發(fā)明性動作。在Twitter上瘋傳的Quora上的這個奇思妙想的貼子實 際上跑題了。拿從舊金山走到洛杉磯的步行者做類比是不合適的。徒步旅行這項活動已經(jīng)被人類實踐了幾千年了,所有你需要的知識只要在谷歌上搜索一下都能找 到。一個苦行僧只要走過一次就能了解所有的行程。當(dāng)你問他從紐約步行到芝加哥的路程,他很可能相當(dāng)準(zhǔn)確的說出來。經(jīng)過數(shù)次的城際間的旅行后,他有足夠的知 識來進行相當(dāng)準(zhǔn)確的估算。但如果我讓你告訴我從洛杉磯駕車到舊金山要多少時間,依賴于交通堵塞的狀況,你的估算很可能會相差數(shù)小時。 而另一方面,如果一個有經(jīng)驗的軟件工程師被要求去開發(fā)一個能自主駕駛從舊金山到洛杉磯的汽車的控制系統(tǒng)時,他面對的上一種完全不同的情況。真正的軟件開發(fā)實際是指那些你以前從未做過的東西。這就是為什么所有的這些拿日常真實生活里的東西來做的類比都不靠譜的原因。 該文章在 2012/3/20 23:09:07 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |