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