透視軟體開發過程中的痛點

來源:互聯網
上載者:User
作者:田占海

1 引言
如果你是一個程式員,可能常常為不能按時完成任務而苦惱。如果你是一個專案經理,可能會覺得開發符合預算和進度要求的軟體簡直難於上青天。實際上,軟體項目常常嚴重超期或超出預算仍是困擾著絕大多數軟體機構的難題。據美國一份評估報告顯示,17個主要的國防部軟體合約中,平均28個月的進度計劃延遲了20個月才完成。一個4年應該完成的任務,7年還未提交,其中沒有一個項目按時完成。由於存在軟體問題,B1轟炸機的部署被延遲了,同樣的原因,580億美元的A12飛機計劃也被部分取消了。持續了二三十年的軟體危機為什麼愈演愈烈?軟體開發為什麼如此之難?本文試結合作者的體會對軟體開發的困難之處做一剖析,並提出一些建議。
2 困難所在
2.1 極大的複雜性
大多數大型軟體軟體產品由幾十甚至幾百萬行原始碼構成,例如:Windows95作業系統由大約1100萬行程式碼群組成。每一行代碼都可能影響到程式的其它部分,並且各個部分之間都可能互相影響。這樣一個錯綜複雜的巨大系統當中,每一個小小的錯誤都可能導致整個系統崩潰。有些大型軟體,例如Windows,可能是人類曾經建造過的最複雜的事物之一,從古至今最複雜的建築都無法與之相比。
2.2 高度的不確定性
一個軟體項目從一開始就存在許多不確定性因素。其一:使用者需求很難確定。這是因為軟體開發人員很難詳細瞭解使用者的需求,甚至使用者在看到產品之前也不清楚自己到底需要什麼,所以從項目開發的自始至終都可能會有新的需求提出,致使系統結構不斷修改,最終面目全非。其二:設計不完全可以預測。有時,一個設計時認為可行的方案,在實現時可能行不通,或者最初的設計方案存在很大的缺陷而沒有及時發現,或者突然一個設計時沒有料到的技術痛點阻擋了項目的進度。從設計到實現實際上有著很大的不可預測性。其三:使用者需求不斷變化,如果最初的使用者需求沒有瞭解的很清楚,可能整個項目很快就會陷在不斷變化的需求之中不能自拔。其四:客觀條件的不確定性。在項目的進展過程中,可能會有人員的流動,可能會有資源的調整,可能會有這樣或那樣的客觀條件的限制而阻擋了項目的正常進行。在這樣高度的不確定之中,在較早階段精確估計一個項目不只是很難地,甚至是不可能的。
3 造成工期延誤的原因
3.1 開發人員的過分樂觀
許多開發人員傾向於一切都會進展順利,這種盲目的自信對於項目開發來說是不對的。如果按照最樂觀的估計,可能絕大多數任務都不能按時完成,因為在軟體開發中不確定因素實在太多了。對於任務的複雜性和難度,對於自己能支配的時間,對於可能的突發事件的幹擾等沒有清楚的認識和估計,即使對自己的時間表作出保證,也可能常常無法按時交貨。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.