關(guān)于軟件架構(gòu)的一些反思
我最近看了一個紀錄片《無節(jié)制消費的元兇》。其中,生產(chǎn)廠商在產(chǎn)品設(shè)計和生產(chǎn)過程中,本身就會設(shè)計大量的生產(chǎn)缺陷,即計劃報廢期,從而導致消費者不斷地購買,避免有些人的“一勞永逸”。
我在想軟件設(shè)計中是否也存在這樣的缺陷設(shè)計,從而使客戶不斷地為其服務買單。常見的一種方法是根據(jù)用戶數(shù)量、業(yè)務規(guī)模來設(shè)計軟件,推出所謂的SAAS化。但這些從真實意圖來看,都是表面的,或者應用層的。
中國具有全球最完善的供應鏈體系,擁有最龐大的業(yè)務場景和應用數(shù)據(jù)。這是很大的特點,絕無僅有,因此誕生了很多互聯(lián)網(wǎng)公司。但是真正的軟件公司,卻乏善可陳。很多軟件公司都是以項目定制為主,便是所謂的“解決方案”。軟件的生命周期便是項目的生命周期,因此,很多公司的信息化建設(shè)都是隨著項目一次又一次地推倒重來,就好像種地,還沒有長出果實了,結(jié)果又翻新了一遍。當然,國內(nèi)的很多軟件廠商,也得益于此。這種“計劃報廢期”并非來自于軟件廠商精湛的軟件設(shè)計和開發(fā)能力,而是來源于生產(chǎn)企業(yè)的對信息化智能化這些新一代技術(shù)的錯誤認識。
對于中國的軟件廠商,我并不確定是否有廠商真正地把軟件架構(gòu)這東西研究明白。是否能像SAP那樣隨著業(yè)務和規(guī)模的變化而不斷完善更新。曾經(jīng)有一個非常有意思的故事,說德國某地的下水道工程,幾百年了,仍然運行正常。真正的軟件工程也是一個如此的非常龐雜的系統(tǒng)工程和項目工程,而不單單是功能性的,實現(xiàn)某些功能而已。這種單單滿足功能需求而開發(fā)的,不能稱之為“產(chǎn)品”,存在巨大的應用性風險、可靠性風險和安全風險。我覺得這是TO G/B 軟件項目交付,甲方經(jīng)常抱怨“用不起來”的關(guān)鍵因素。
為什么iPhone、打印機這類硬件產(chǎn)品會設(shè)計計劃報廢期,從而促進客戶反復不斷消費,而在軟件工程領(lǐng)域卻缺乏這樣的設(shè)置,關(guān)鍵還是無法把握軟件架構(gòu)??隙ú皇鞘忻嫔铣R姷腎aaS、PaaS、SaaS三層工業(yè)互聯(lián)網(wǎng)應用架構(gòu)。我認識很多架構(gòu)師,也面試過一些架構(gòu)師。我覺得他們大多都不具備真正的架構(gòu)能力,只是有此頭銜的“高級開發(fā)工程師”。軟件架構(gòu)這條路還是路漫漫,需要更多同道之人,上下求索。