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