軟件開發(fā)呼喚新的范式
軟件開發(fā)是人類當代獨特的群體智力活動。在計算技術發(fā)展的歷史進程中觀察軟件開發(fā)技術的發(fā)展,不斷出現(xiàn)的軟件危機推動軟件開發(fā)理念、方法和技術的深刻變革。
軟件復雜度的增大導致“軟件危機”開始爆發(fā),IBM OS/360通用操作系統(tǒng)研發(fā)過程的失敗經(jīng)驗促使了“軟件工程”概念的提出,我們將軟件工程遵循的軟件開發(fā)理念和方法稱為軟件開發(fā)的工程范式。軟件工程潛移默化地繼承了機械的世界觀或科學觀,即世界是一部確定不變的、可被理解表述的、可被線性分解還原的“機器”,由此派生出軟件生產(chǎn)的基本原則和方法:自上而下,逐步求精。軟件開發(fā)的工程范式取得了歷史性成功,形成了軟件產(chǎn)業(yè),但在互聯(lián)網(wǎng)產(chǎn)業(yè)蓬勃發(fā)展的趨勢下,面臨著軟件開發(fā)過程管理群體協(xié)同效率瓶頸和軟件自動化工具能行可表達理論極限瓶頸。
在軟件開發(fā)工程范式面臨巨大發(fā)展瓶頸之際,發(fā)端于自由軟件運動的開源軟件蓬勃發(fā)展,產(chǎn)出了一系列高水平的軟件,我們將其所遵循的軟件開發(fā)理念和方法統(tǒng)稱為開源范式。作為脫胎于互聯(lián)網(wǎng)環(huán)境的軟件開發(fā)范式,開源范式看似無序狀態(tài)背后的邏輯是演化的世界觀和科學觀,即遵循自然演化兩個基本原則:一是遺傳變異,二是適者生存。這種基于達爾文“演化論”科學觀下的開源范式是軟件工程歷史上的又一次重要覺醒,適應了互聯(lián)網(wǎng)時代軟件發(fā)展趨勢。但是,置身于自然演化生態(tài)中,開源范式難逃“物競天擇、適者生存”的自然規(guī)律,任何一個開源項目能否成功無法給出確定性的承諾。
在人機物三元融合智能互聯(lián)泛在計算時代,計算平臺的泛在化驅使軟件應用的泛在化,應用場景的多樣化帶來軟件演化的不確定性,軟件從相對獨立的產(chǎn)品演變?yōu)槎喾N元素相互依賴、持續(xù)演化的生態(tài),“人在回路”的持續(xù)成長演化成為軟件系統(tǒng)的一個基本特征,軟件開發(fā)呼喚新的范式。
群智范式核心理念:
宏觀演化,微觀求精
軟件開發(fā)是一個大規(guī)模群體通過群智激發(fā)和匯聚來解決復雜任務的活動,其本質(zhì)在于“群體智能”。不論是工程范式還是開源范式,都是面向特定問題實現(xiàn)群智激發(fā)和匯聚的一種方式,差別在于:工程范式聚焦線性確定性問題的軟件開發(fā),通過強組織模式實現(xiàn)高效群智“匯聚”,幾乎放棄對不確定性問題的關注;開源范式則全面擁抱不確定性,通過開放共享實現(xiàn)高效的群智“激發(fā)”,但對結果不做確定性承諾。群智范式關注的核心問題是:面對不確定的世界,如何高效激發(fā)和匯聚群體智能,以實現(xiàn)軟件的持續(xù)演化,主動適應變化的世界。
群智范式強調(diào)群智的激發(fā)與匯聚,其核心理念可以簡單概括為:宏觀演化,微觀求精。在宏觀(長期)尺度上接受世界的不確定性,以演化論為指導,自覺將軟件核心開發(fā)者、外圍軟件涉眾,以及軟件所處的社區(qū)生態(tài)視為有機整體,持續(xù)激發(fā)各類群體圍繞軟件項目進行自由創(chuàng)作;在微觀(短期)尺度上,即在軟件長期演化進程的具體階段,堅持機械論原則,明確階段性里程碑任務的需求規(guī)范(以下簡稱“里程碑”),以軟件開發(fā)小規(guī)模核心團隊為主力軍,采用逐步求精的思路組織任務規(guī)劃實施。
在“宏觀演化,微觀求精”的核心理念下,群智軟件的開發(fā)方法可以概括為“兩個連接,一個轉化”,即連接核心團隊與外圍群體,連接自由創(chuàng)作與規(guī)范生產(chǎn),實現(xiàn)原型作品與原型版本之間的轉化。
“核心團隊”和“外圍群體”代表了軟件開發(fā)生態(tài)中兩類典型軟件參與群體,核心團隊通常是軟件項目的創(chuàng)始團隊、管理團隊和核心參與者,主要是初始創(chuàng)新作品的發(fā)起者、里程碑和原型版本的發(fā)布者;外圍群體則是參與軟件項目的其他大規(guī)模利益相關者群體,在軟件迭代演化過程中貢獻需求和代碼等。隨著軟件的迭代演化,核心團隊負責軟件演化過程中的里程碑規(guī)劃決策、核心功能開發(fā)、吸納匯聚“外圍群體”貢獻的疑修(Issue)或代碼、發(fā)布新的原型版本。
創(chuàng)作與生產(chǎn)是群智范式下軟件開發(fā)活動中兩個相互交織快速迭代的過程。在需求不清晰、任務不明確時,核心團隊通過發(fā)布原型版本吸引并激發(fā)“外圍群體”的靈感,收獲并評估外圍群體的貢獻,參與軟件集體創(chuàng)意;在階段性里程碑明確后,核心團隊采用規(guī)范化的組織模式快速推進研發(fā)任務,基于集成部署和自動化測試等機制生成高質(zhì)量的軟件原型版本。
原型作品和原型版本是群智范式下軟件開發(fā)活動中兩類典型的軟件制品。原型作品通常是靈感驅動下的創(chuàng)意捕獲和表達,具有不可預期性和多樣性;原型版本則通常是在階段性里程碑驅動下,按照工程范式開發(fā)產(chǎn)生的軟件原型版本,具有確定性和明確的評判標準。群智范式關注在連接“外圍群體”創(chuàng)作活動與“核心團隊”生產(chǎn)活動的基礎上實現(xiàn)這兩類軟件制品的“轉化”。
群智范式下的軟件項目及其社區(qū)生態(tài)是大規(guī)模軟件涉眾通過“兩個連接、一個轉化”的群智協(xié)作不斷形成滿足階段性里程碑的原型版本,然后在大范圍應用中獲取新需求進而迭代演進形成持續(xù)循環(huán),其開發(fā)過程遵循“持續(xù)需求獲取、持續(xù)協(xié)同開發(fā)、持續(xù)在線演化”的持續(xù)迭代演進模型。
在需求獲取環(huán)節(jié),外圍群體使用軟件服務新版本,發(fā)現(xiàn)軟件問題、特征需求等并報告給軟件的核心團隊,核心團隊對疑修有效性進行確認并將相關的疑修加入對應的里程碑中;在協(xié)同開發(fā)環(huán)節(jié),外圍群體通過復刻(fork)獲得派生倉庫并進行代碼創(chuàng)作,并通過合并請求(pull request)將作品提交給核心團隊進行審查,核心團隊對作品進行評審并將符合標準的代碼合并進項目的主版本庫;在持續(xù)在線演化環(huán)節(jié),核心團隊將軟件的最新代碼進行持續(xù)部署并適時發(fā)布具有里程碑意義的原型版本,外圍群體自由下載使用并對軟件進行反饋評價,驅動軟件項目的進一步迭代演進。
工程范式、開源范式與群智范式這3種范式的產(chǎn)生和發(fā)展雖有時間先后順序,但在實踐中三者不是完全替代關系,工程范式與開源范式在很多場景下行之有效并被廣泛實踐。群智范式不是對前面兩個開發(fā)范式的否定,而是希望在工程范式與開源范式之間找到平衡點,結合時代特點與應用場景指導我們的軟件開發(fā)實踐。
共同推進群智范式落地
實踐群智范式是一個軟件開發(fā)的新范式、新理念、新方法和新模型,試圖為人機物融合泛在計算時代軟件開發(fā)提供新的認知和方法指導。但群智范式不止于此,還將進一步沉淀形成支持群智范式理念、方法和模型物化落地的面向群智范式的軟件開發(fā)平臺,并且其本身也采用群智范式的理念和方法來推進平臺項目的建設,力圖聯(lián)合多方力量合力打造支持群智軟件開發(fā)的新型基礎設施。
自2006年以來,我們立足于工程范式和開源范式,持續(xù)深入地研究群智范式,在國家持續(xù)支持下形成了“Trusite確實”技術體系,并建設運營了“Trusite確實”系列工具平臺,開展面向群智范式的軟件開發(fā)平臺探索與實踐。2023年6月,中國計算機學會聯(lián)合開放原子開源基金會、開源中國等學術界、開源組織及產(chǎn)業(yè)界的力量共同發(fā)起“群智范式”平臺項目,希望將群智范式的核心理念、開發(fā)方法等物化為基礎平臺的機制和能力,共同建設面向群智軟件開發(fā)的新型基礎設施,力圖為我國群智生態(tài)構建與發(fā)展提供支撐。
群智范式項目的總體建設思路是,合力建設開放可擴展的高性能共性能力基礎內(nèi)核,圍繞共性能力基礎內(nèi)核拓展形成項目群,進而支持多領域服務平臺的建設和運營。在能力建設方面,群智范式平臺項目將重點圍繞基礎服務、生產(chǎn)關系重構、組織模式重構和生產(chǎn)力工具研發(fā)4個方面進行推進。
我們借鑒市場經(jīng)濟中股權激勵思想,運用區(qū)塊鏈技術設計基于知識產(chǎn)權共享的群智持續(xù)激勵機制,實現(xiàn)對群智范式下外圍群體與核心團隊間的生成關系重構,實現(xiàn)對大規(guī)模群智的激發(fā)與匯聚;圍繞外圍群體與核心團隊的連接、軟件創(chuàng)作與規(guī)范生產(chǎn)的連接、軟件作品與原型版本的轉化研發(fā)相應支撐工具和服務,從而實現(xiàn)對連接協(xié)作組織模式的重構;關注AI驅動的智能化軟件開發(fā)工具/服務,以及云原生開發(fā)運維一體化工具/服務等工具研發(fā),從而提升群智軟件開發(fā)的生產(chǎn)力。
群智范式為我們應對未來不確定性世界的軟件開發(fā)提供了理論和方法指導,我們希望聯(lián)合國內(nèi)學術界和產(chǎn)業(yè)界力量一起合作,共同推動這樣一種新范式的落地實踐。
(文章轉載自《中國電子報》2023-12-15 第5版)
專家簡介
王懷民,1962年4月出生于江蘇省南京市,分布計算領域專家,中國科學院院士,國防科技大學原副校長兼教育長。長期從事面向網(wǎng)絡的分布計算研究,在分布計算模型、技術與平臺方面取得系統(tǒng)性和創(chuàng)造性成果,是我國分布計算領域的領軍人物,先后獲得國家科技進步獎特等獎、二等獎,國家技術發(fā)明獎二等獎,以及國家教學成果獎二等獎等榮譽。