爲什麼現在開發一款軟件的時間越來越長?

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們經常聽到這樣的問題:爲什麼開發軟件這麼貴?爲什麼我的團隊交付軟件的速度這麼慢?爲什麼我的軟件發佈趕不上計劃?爲什麼開發一個軟件要花這麼長時間?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們之所以一遍又一遍地聽到這類問題,背後是有原因的。爲了保持競爭力,企業每天都需要新的軟件功能,但隨着時間的流逝,我們交付軟件的速度似乎停滯不前,或者更糟,變得更慢了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我想解釋爲什麼會這樣。不過,爲了探討這個話題,需要先了解一個我最關心的話題:本質複雜性和偶發複雜性。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"不同類型的複雜性"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"任何時候,當你在解決一個問題,不僅僅是軟件問題,都有兩種類型的複雜性:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"numberedlist","attrs":{"start":"","normalizeStart":1},"content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":1,"align":null,"origin":null},"content":[{"type":"text","text":"本質複雜性——這是包含在問題中的複雜性。如果不解決這種複雜性,就無法解決問題。它也被稱爲內在複雜性。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":2,"align":null,"origin":null},"content":[{"type":"text","text":"偶發複雜性——這是用來解決問題的方法和工具所帶來的複雜性。這種複雜性不是你要解決的問題的一部分,而是在解決方案中引入的複雜性。它也被稱爲偶然複雜性。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"IBM 360系統之父Fred Brooks在經典論文“沒有銀彈:軟件工程的本質性與附屬性工作”中提出了這個概念。可以這麼想,如果你要解決一個數學問題,本質複雜性就是指對數學的瞭解,因爲只有懂數學才能解題。如果你想解決這個問題,要麼學習所需的數學知識,要麼找個懂數學的人幫忙。如果你想解決這個問題,就無法逃過學習數學這一關。"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/resource\/image\/18\/bf\/18ac8b463e896285357ea3b729aaebbf.png","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"偶發複雜性"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章