軟體開發究竟是簡單的還是複雜的

2022-07-04 14:48:12 字數 1109 閱讀 8359

軟體開發是個奇妙的行業。

你可以說它複雜,但與此同時,隨便有個人,只要接受點培訓就可以做軟體開發。

你也可以說它簡單,但據統計世界上一半以上的軟體專案會以失敗收場。

強調軟體複雜的最有代表性的觀點來自《人月神話》:

brooks認為複雜性是軟體的根本特質,而非偶然特質。

強調軟體簡單性的觀點則時見於國內某些mis

開發公司以及外包公司:

他們大多時候會把需求分析(業務分析)的權重抬的很高,而把設計編碼的位置壓的很低。

這種迷思其實不難打破,但在此之前要對軟體的特質做一點考察。

軟體自身是一種固化的思維,其必同時具有思維的特質以及思維承載之物的特質。

這話有點搞,但並不難理解:

思維由概念和邏輯組成,所以軟體必然由概念和邏輯組成---

這是思維的特質。

當思維同數學結合時,思維具有數學的特質;當思維與商業邏輯結合時,思維具有商業邏輯的特質---

這就是思維承載之物的特質。

這段很搞的話,可以讓我們理解:

很多時候,很多人談及簡單或複雜的時候過度關注「深淺」這一維度,而忽略「多少」這一維度。

比如說:圖形演算法,tts

演算法,優化效能,優化可靠性這類東西,很少有人認為其簡單。但即使是很大規模的專案管理軟體,很多人仍然認為它比較簡單

---因為這可以通過簡單拼湊剛入行的程式設計師的工作而獲得。

從結果上看,這種認識是災難性的。

典型表現是:一群人對這一堆垃圾**沒人敢動,非修不可的時候,只能祈禱不要出問題。

就像城牆如果足夠堅固,古代時攻城只能用人命來填一樣。搞定牽涉商業利益的垃圾**也只能用人月去填。這時候垃圾**就像黑洞,吞噬人力的同時,也吞噬利潤空間。

結局可以形容為:程式設計師沒希望,公司沒未來。

這是把業務分析抬得過高,把設計編碼壓得過低的必然結果。

所以,「認為上了規模的軟體(暫定20

萬行吧)是簡單的」是好像有道理,但其實十分危險的想法。

理想流 + 軟體 = 《完美軟體開發:方法與邏輯》

理想流 + 人生 = ??

理想流 + 管理 = ??

理想流 = 以概念和邏輯推演本質,追求真理。

爬蟲究竟是合法還是違法的?

據說網際網路上 50 以上的流量都是爬蟲創造的,也許你看到很多熱門資料都是爬蟲所創造的,所以可以說無爬蟲就無網際網路的繁榮。這個話題涉及到我們很多程式設計師的日常工作,所以有必要和大家細聊一下。在今年國家頒布 中華人民共和國網路安全法 之後,很多以前處於灰色地帶的業務都不能做了。2014年12月20...

蛋糕究竟是怎樣做大的

可能是太窮了吧,不是有個段子說月薪 10w 的在思考如何讓公司變得更好 效率更高 方向不偏,而月薪兩千的在思考敘利亞中東的局勢及其地緣政治。有時候總是會想,我們現在社會很多東西比如計算機 航天 遊戲 網購等等都沒必要啊,吃飯才是最底層的需求,其它的感覺都比較虛的樣子,那吃飯的需求就這麼多,究竟是怎麼...

Docker這個新軟體究竟是用來幹嘛的???

嘗試新軟體 對開發者而言,每天會催生出的各式各樣的新技術都需要嘗試,然而開發者卻不太可能為他們一一搭建好環境並進行測試。時間非常寶貴,正是得益於 docker,讓我們有可能在一條或者幾條命令內就搭建完環境。docker 有乙個傻瓜化的獲取軟體的方法,docker 後台會自動獲得環境映象並且執行環境。...