盧冬冬,吳 潔,劉 鵬,盛永祥,張鵬臣
(江蘇科技大學(xué)經(jīng)濟(jì)管理學(xué)院,江蘇 鎮(zhèn)江 212003)
近年來,開源軟件蓬勃發(fā)展,廣泛運(yùn)用于大數(shù)據(jù)、云計(jì)算、人工智能等諸多領(lǐng)域[1]。這引起了社會(huì)各界的廣泛關(guān)注,國務(wù)院也曾發(fā)文要將開源軟件社區(qū)的建設(shè)納入創(chuàng)新驅(qū)動(dòng)戰(zhàn)略中去。與傳統(tǒng)商業(yè)軟件不同的是,基于web2.0/3.0的在線社區(qū)是推動(dòng)開源軟件形成和發(fā)展的主要平臺(tái)。來自世界各地的開發(fā)者通過開源軟件社區(qū)協(xié)調(diào)合作,完成軟件項(xiàng)目的開發(fā)與迭代[2]。但開源軟件社區(qū)“集市型”的開發(fā)模式使得開發(fā)者能夠自由加入或退出項(xiàng)目的開發(fā)進(jìn)程[3]。一旦出現(xiàn)核心開發(fā)者的流失將會(huì)使開發(fā)進(jìn)程遭受重創(chuàng),并引發(fā)一系列的級(jí)聯(lián)效應(yīng)[4]。因此,從動(dòng)態(tài)視角探究核心開發(fā)者流失對(duì)社區(qū)的影響并對(duì)其采取保護(hù)措施能夠有效提高社區(qū)的創(chuàng)新產(chǎn)出。
目前開源軟件社區(qū)已引起計(jì)算機(jī)、知識(shí)創(chuàng)新、管理等領(lǐng)域?qū)W者們的廣泛研究[5-8]。研究內(nèi)容主要包括了開發(fā)者的協(xié)作模式機(jī)制、開發(fā)者類型劃分等。開發(fā)者協(xié)作模式機(jī)制方面:在Raymond提出的“集市模式”的基礎(chǔ)上[3],一些學(xué)者認(rèn)為開源軟件社區(qū)作為一種典型的開放式創(chuàng)新社區(qū)[9],其開發(fā)過程是一種密集型的知識(shí)創(chuàng)造過程[10],社區(qū)成員間的協(xié)作行為存在偏好連接、同質(zhì)相吸的特征[1,5];在子項(xiàng)目開發(fā)過程和開發(fā)者協(xié)作網(wǎng)絡(luò)的協(xié)同演化過程中,子項(xiàng)目與協(xié)作網(wǎng)絡(luò)中的社區(qū)結(jié)構(gòu)存在顯著的相關(guān)性[6]。
開發(fā)者類型劃分方面:早期的研究中Mockus等人[11]基于簡單統(tǒng)計(jì)計(jì)數(shù)方法,通過代碼提交量區(qū)別開源軟件社區(qū)的核心開發(fā)者和邊緣開發(fā)者。繼而有相關(guān)研究關(guān)注到用戶行為:Nakakoji等[12]依據(jù)項(xiàng)目類型將開發(fā)者劃分為8種類型。Oliva等[13]基于問卷、訪談的結(jié)果來總結(jié)描述核心開發(fā)者行為特點(diǎn),并以此作為識(shí)別標(biāo)準(zhǔn)。近年來,眾多學(xué)者基于復(fù)雜網(wǎng)絡(luò)的視角進(jìn)行了眾多研究[6,14-18],但多是基于度中心性大小、介數(shù)中心性大小或?qū)烧呓Y(jié)合起來綜合考慮區(qū)分核心開發(fā)者和一般開發(fā)者,并在此基礎(chǔ)上通過探究網(wǎng)絡(luò)魯棒性(抗毀性)識(shí)別效果[6,14,17]。
上述研究使我們對(duì)開源軟件社區(qū)中的協(xié)作模式機(jī)制和開發(fā)者類型劃分方法有了更深入的認(rèn)識(shí),但還存在以下幾點(diǎn)有待進(jìn)一步深化。在區(qū)分核心開發(fā)者的過程中,目前的已有研究多是從開發(fā)者節(jié)點(diǎn)在整體網(wǎng)絡(luò)中的拓?fù)浣Y(jié)構(gòu)特征(度、介數(shù))出發(fā)。這些指標(biāo)雖能反映開發(fā)者節(jié)點(diǎn)在網(wǎng)絡(luò)中的影響力,但是卻忽略了節(jié)點(diǎn)的局部特征社團(tuán)結(jié)構(gòu)(社區(qū)中開發(fā)者之間的協(xié)作關(guān)系形成的社團(tuán)結(jié)構(gòu)與項(xiàng)目開發(fā)存在顯著相關(guān)性)。在檢測識(shí)別效果方面,目前的研究中多是從靜態(tài)視角僅考慮節(jié)點(diǎn)流失后對(duì)網(wǎng)絡(luò)魯棒性的影響,尚未從動(dòng)態(tài)視角探討節(jié)點(diǎn)流失對(duì)與其存在協(xié)作關(guān)系的開發(fā)者的影響。
由此,本文將以開源軟件項(xiàng)目AngularJS為例,通過收集開發(fā)者代碼提交記錄,抓取開發(fā)者協(xié)作關(guān)系來構(gòu)建開發(fā)者協(xié)作網(wǎng)絡(luò)。在此基礎(chǔ)上將開發(fā)者社團(tuán)結(jié)構(gòu)考慮進(jìn)來,識(shí)別核心開發(fā)者,并從動(dòng)態(tài)視角探究核心開發(fā)者流失對(duì)社區(qū)內(nèi)其他開發(fā)者造成的級(jí)聯(lián)效應(yīng)。是對(duì)已有開發(fā)者類型區(qū)分方法的一種深化,也為網(wǎng)絡(luò)魯棒性檢測提供了新的視角,同時(shí)也是大型自組織系統(tǒng)研究的進(jìn)一步擴(kuò)充。
本文選擇了GitHub社區(qū)中的AngularJS項(xiàng)目為研究對(duì)象,該項(xiàng)目誕生于2009年,現(xiàn)被Google收購,作為一款優(yōu)秀的開源前端JS框架,已被用于多款Google產(chǎn)品中。GitHub是一個(gè)優(yōu)秀的開源服務(wù)平臺(tái),其Pull Request機(jī)制允許用戶任意參與到項(xiàng)目中去[19],Git版本控制系統(tǒng)也記錄下了不同時(shí)段內(nèi)所有開發(fā)者的代碼提交記錄。
源數(shù)據(jù)使用課題組實(shí)現(xiàn)的爬蟲工具,選取時(shí)間跨度為2010年8月(項(xiàng)目初始期)到2019年1月(本研究數(shù)據(jù)提取截止期),抓取AngularJS代碼提交記錄共計(jì)38 764條,記錄內(nèi)容包含開發(fā)者昵稱、注冊郵箱、代碼提交日期、修改文件數(shù)量、名稱和代碼增減行數(shù)等。
基于源數(shù)據(jù),構(gòu)建開發(fā)者協(xié)作網(wǎng)絡(luò)G=(V,E,W)。社區(qū)開發(fā)者用節(jié)點(diǎn)集合V表示,考慮到開發(fā)者昵稱可能出現(xiàn)重復(fù)的問題,以開發(fā)者注冊郵箱作為網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)識(shí)。開發(fā)者間的協(xié)作關(guān)系用節(jié)點(diǎn)間的關(guān)系集合E表示,通過Python編程抽取開發(fā)者協(xié)作關(guān)系。由于軟件開發(fā)往往是基于舊版本的功能提升或完善,因此,在兩個(gè)版本發(fā)布間隔時(shí)間內(nèi)針對(duì)同一文件進(jìn)行代碼提交的開發(fā)者視為相互存在協(xié)作行為。兩個(gè)開發(fā)者之間的協(xié)作次數(shù)視為連邊的權(quán)重,用邊權(quán)重集合W表示。使用Gephi軟件可視化開發(fā)者協(xié)作網(wǎng)絡(luò),并計(jì)算網(wǎng)絡(luò)基本拓?fù)鋮?shù)(見表1)。網(wǎng)絡(luò)構(gòu)建過程如圖1所示。
表1為構(gòu)建的開發(fā)者協(xié)作網(wǎng)絡(luò)整體拓?fù)涮卣鳎?jié)點(diǎn)數(shù)為3 982,說明截至本研究時(shí)期共計(jì)3 982位來自世界各地的開發(fā)者為AngularJS項(xiàng)目貢獻(xiàn)過自己的智慧。平均聚類系數(shù)為0.66,平均路徑長度為4.135,說明該協(xié)作網(wǎng)絡(luò)擁有小世界特性,社區(qū)中開發(fā)者協(xié)作關(guān)系緊密;模塊度為0.593則說明社區(qū)中存在著明顯的社團(tuán)結(jié)構(gòu)。
表1 開發(fā)者協(xié)作網(wǎng)絡(luò)拓?fù)鋮?shù)
目前的大多數(shù)研究中均是以度或介數(shù)對(duì)節(jié)點(diǎn)的重要性進(jìn)行排序,但社區(qū)內(nèi)開發(fā)者之間相互協(xié)作關(guān)系形成的社團(tuán)結(jié)構(gòu)(小團(tuán)體)與子項(xiàng)目的開發(fā)進(jìn)程存在著顯著相關(guān)性[6],開發(fā)者在團(tuán)體內(nèi)部和團(tuán)體之間的交互行為也能夠影響著開發(fā)者的重要性?;诖?,將開發(fā)者節(jié)點(diǎn)的局部屬性即網(wǎng)絡(luò)的社團(tuán)結(jié)構(gòu)考慮進(jìn)來,參照Guimera等[20]于2005年在生物新陳代謝網(wǎng)絡(luò)的背景下提出的模塊內(nèi)參與度和模塊間參與度進(jìn)行綜合分析。本文提出如下指標(biāo):
1)節(jié)點(diǎn)的度。度(ki)是指網(wǎng)絡(luò)中與節(jié)點(diǎn)i相連的其他節(jié)點(diǎn)數(shù)量。度大小能夠代表開發(fā)者的協(xié)作廣度,即與之存在協(xié)作關(guān)系的開發(fā)者的個(gè)數(shù)。圖2繪制了雙對(duì)數(shù)坐標(biāo)下度的累積分布和冪律擬合函數(shù)。擬合優(yōu)度R2=0.949,擬合效果非常好,說明網(wǎng)絡(luò)中存在著較明顯的核心邊緣結(jié)構(gòu),探究網(wǎng)絡(luò)中的核心開發(fā)者具有重要意義。
圖1 開發(fā)者協(xié)作網(wǎng)絡(luò)構(gòu)建過程
圖2 度分布
2)節(jié)點(diǎn)加權(quán)度。加權(quán)度(Ki)是指網(wǎng)絡(luò)中與節(jié)點(diǎn)i相連的所有連邊權(quán)重總和。開源軟件社區(qū)中邊權(quán)重大小能夠代表相連兩個(gè)開發(fā)者的協(xié)作深度,即相連開發(fā)者之間的協(xié)作次數(shù)。開發(fā)者加權(quán)度則能夠代表開發(fā)者的總協(xié)作次數(shù),加權(quán)度越大能夠表示開發(fā)者參與項(xiàng)目的積極性越高。
(1)
(2)
5)模塊間參與度:模塊間參與度(pi)用于衡量網(wǎng)絡(luò)中節(jié)點(diǎn)i與其他社團(tuán)之間的協(xié)作關(guān)系密切程度[21]。開源軟件社區(qū)中,開發(fā)者的模塊間參與度越高表示該開發(fā)者參與其他小團(tuán)體的數(shù)量越多,所承擔(dān)的小團(tuán)體之間的“橋梁”作用越重要。式(3)為節(jié)點(diǎn)i的模塊間參與度,NM表示整個(gè)網(wǎng)絡(luò)中模塊的個(gè)數(shù),kis表示節(jié)點(diǎn)i在模塊s中的度,ki表示節(jié)點(diǎn)i在整個(gè)網(wǎng)絡(luò)中的度。
(3)
根據(jù)上述各公式計(jì)算網(wǎng)絡(luò)中各節(jié)點(diǎn)的評(píng)價(jià)指標(biāo),計(jì)算結(jié)果如表2所示。
表2 開發(fā)者評(píng)價(jià)指標(biāo)參數(shù)
已有研究中多采用度大小或介數(shù)中心性大小衡量核心開發(fā)者,本文考慮到開發(fā)者的社團(tuán)結(jié)構(gòu)屬性,將采用模塊內(nèi)參與度和模塊間參與度兩個(gè)指標(biāo)進(jìn)行衡量。為了與已有研究形成對(duì)比,首先分別選取度大小排序、加權(quán)度大小排序、介數(shù)中心性大小排序下的前5位作為最重要的核心開發(fā)者,名單如表3所示。
針對(duì)多個(gè)評(píng)價(jià)指標(biāo)組合,如傳統(tǒng)方法中度和介數(shù)中心性的組合、本文提出的模塊內(nèi)參與度和模塊間參與度的指標(biāo)組合方式,本文擬采用基于熵權(quán)法定權(quán)的多屬性決策方法對(duì)社區(qū)中有限的開發(fā)者進(jìn)行重要性排序[22],具體方法如下所述。
社區(qū)中共有3 982個(gè)開發(fā)者,可視為存在3 982個(gè)決策方案,設(shè)為Q={Q1,Q2,…,Q3 982};4個(gè)評(píng)價(jià)指標(biāo)(度、介數(shù)中心性、模塊內(nèi)參與度、模塊間參與度)構(gòu)成評(píng)價(jià)指標(biāo)集S={S1,S2,S3,S4}??蓸?gòu)成3 982×4階原始決策矩陣M=(xij)3 982×4。
對(duì)原始數(shù)據(jù)進(jìn)行歸一化處理形成標(biāo)準(zhǔn)決策矩陣N=(rij)3 982×4,其中:成本型指標(biāo)認(rèn)為指標(biāo)數(shù)值越小越重要,效益型指標(biāo)認(rèn)為越大越重要,固定型指標(biāo)認(rèn)為越靠近某固定值越重要。故本文選取指標(biāo)集中的指標(biāo)均為效益型指標(biāo)。接下來采用熵權(quán)法確定指標(biāo)權(quán)重[22],最終得到?jīng)Q策方案的總評(píng)價(jià)得分:
(4)
由此,可先將指標(biāo)集放在一起計(jì)算,按照度(k)、介數(shù)中心性(b)、模塊內(nèi)參與度(z)、模塊間參與度(p)的順序,計(jì)算得出原始矩陣M和標(biāo)準(zhǔn)化矩陣N如下:
采用熵權(quán)法計(jì)算指標(biāo)權(quán)重,當(dāng)指標(biāo)選取度和介數(shù)中心性時(shí),權(quán)重分別為
wk=0.297,wb=0.703
當(dāng)指標(biāo)選取模塊內(nèi)參與度和模塊間參與度時(shí),權(quán)重分別為
wz=0.571,wp=0.429
基于上述兩種指標(biāo)組合,計(jì)算最終評(píng)價(jià)得分,選取排序前5位作為最重要的核心開發(fā)者,名單如表4所示。
綜上所述,結(jié)合已有研究中的指標(biāo)和本文新提出的指標(biāo),最終識(shí)別出的核心開發(fā)者存在一定的相似性,但在重要性排序上存在著較明顯的差別。因此,本文將上述方法識(shí)別的結(jié)果均視為核心開發(fā)者,節(jié)點(diǎn)編號(hào)分別是:97,632,1 907,2 628,2 756,451,148,2 929,1 905。
表3 度、加權(quán)度、介數(shù)中心性排名前5開發(fā)者
表4 傳統(tǒng)指標(biāo)和考慮社團(tuán)結(jié)構(gòu)指標(biāo)識(shí)別的核心開發(fā)者
借鑒負(fù)載容量模型,探討社區(qū)內(nèi)核心開發(fā)者流失時(shí)造成的級(jí)聯(lián)效應(yīng)。一方面可以從動(dòng)態(tài)視角探究核心開發(fā)者的流失對(duì)開源軟件社區(qū)穩(wěn)定性的影響,另一方面也能夠借此揭示出開源軟件社區(qū)這種大規(guī)模自組織模式下的社區(qū)成員間的協(xié)作關(guān)系形成機(jī)制,更好地為項(xiàng)目管理者提出社區(qū)管理對(duì)策建議、規(guī)劃項(xiàng)目開發(fā)進(jìn)程,促進(jìn)社區(qū)的創(chuàng)新產(chǎn)出。目前的研究中[23-26],學(xué)者們大都假定網(wǎng)絡(luò)中的節(jié)點(diǎn)存在“正?!焙汀笆А眱煞N狀態(tài),即網(wǎng)絡(luò)中各節(jié)點(diǎn)由于其自身屬性問題會(huì)存在著一定的負(fù)載容量,當(dāng)節(jié)點(diǎn)受到的負(fù)載大于其自身負(fù)載容量時(shí),節(jié)點(diǎn)便處于“失效”狀態(tài),反之為“正常”狀態(tài)。
對(duì)于本文而言,開源軟件社區(qū)中的開發(fā)者流動(dòng)性的特點(diǎn)下,核心開發(fā)者的流失不僅僅會(huì)對(duì)網(wǎng)絡(luò)造成靜態(tài)效果下的影響,其所承擔(dān)的項(xiàng)目內(nèi)容也將優(yōu)先疏散到社區(qū)中與其存在協(xié)作關(guān)系的開發(fā)者,即工作負(fù)載會(huì)在社區(qū)開發(fā)者協(xié)作網(wǎng)絡(luò)的連邊中流動(dòng),進(jìn)而可能會(huì)波及更多的開發(fā)者、造成范圍較大的影響,阻礙、延緩項(xiàng)目的開發(fā)進(jìn)行,甚至導(dǎo)致項(xiàng)目的失敗。為了清晰地闡述這種動(dòng)態(tài)的級(jí)聯(lián)影響過程,本文將作相應(yīng)分析。
圖3 開發(fā)者流失的級(jí)聯(lián)效應(yīng)示意
圖3反映了開發(fā)者節(jié)點(diǎn)流失后造成的級(jí)聯(lián)效應(yīng):初始階段(圖3a)網(wǎng)絡(luò)中各節(jié)點(diǎn)均處于正常狀態(tài),社區(qū)工作正常穩(wěn)定進(jìn)行;突然某個(gè)時(shí)刻(圖3b)節(jié)點(diǎn)2出于自身或外界原因,選擇離開社區(qū),處于“失效”狀態(tài)。原本需要開發(fā)者2負(fù)責(zé)的工作內(nèi)容需要分配給與之存在協(xié)作關(guān)系,參與相同子項(xiàng)目的開發(fā)者(1,3,5,6,11,12)。此時(shí)(如圖3c),面對(duì)新分配來的工作內(nèi)容,有些開發(fā)者新的工作負(fù)載會(huì)大于其負(fù)載容量極限,不堪重負(fù)進(jìn)入“失效”狀態(tài)(1,4,12)。而這些新“失效”的開發(fā)者的工作內(nèi)容又會(huì)繼續(xù)分配給相應(yīng)的開發(fā)者,造成更多的“失效”開發(fā)者8和9,如圖3d所示。
經(jīng)典的負(fù)載容量模型的構(gòu)建主要需要解決以下3個(gè)方面的問題:初始負(fù)載的定義、負(fù)載重分配過程和節(jié)點(diǎn)處理負(fù)載的能力[27]。基于此,本文將從節(jié)點(diǎn)開發(fā)者的初始工作負(fù)荷、節(jié)點(diǎn)開發(fā)者的最大工作負(fù)載容量和節(jié)點(diǎn)開發(fā)者流失后如何影響鄰居節(jié)點(diǎn)三個(gè)方面構(gòu)建開源軟件社區(qū)中的負(fù)載容量級(jí)聯(lián)失效模型。
開發(fā)者協(xié)作網(wǎng)絡(luò)中,節(jié)點(diǎn)的度大小代表了開發(fā)者的協(xié)作廣度,即與之存在協(xié)作關(guān)系的開發(fā)者個(gè)數(shù)。網(wǎng)絡(luò)中的邊則代表了開發(fā)者間的協(xié)作關(guān)系,邊權(quán)重則代表了相連兩個(gè)節(jié)點(diǎn)間的協(xié)作深度,即相連兩個(gè)開發(fā)者之間協(xié)作的次數(shù)。節(jié)點(diǎn)的加權(quán)度大小能夠綜合考慮該開發(fā)者的協(xié)作廣度和深度,可以基于度模型[23,28]構(gòu)建改進(jìn)的加權(quán)度負(fù)載容量模型。
1)節(jié)點(diǎn)的初始工作負(fù)荷:加權(quán)度大小能夠代表節(jié)點(diǎn)開發(fā)者的總的協(xié)作次數(shù),加權(quán)度越大節(jié)點(diǎn)的初始工作負(fù)荷也越大,兩者之間存在著一定的關(guān)聯(lián)性。因此,可假設(shè)網(wǎng)絡(luò)中每一節(jié)點(diǎn)的初始工作負(fù)荷為它的加權(quán)度的函數(shù),定義為
(5)
其中,Lj為節(jié)點(diǎn)j的初始工作負(fù)荷大小,Kj為節(jié)點(diǎn)j的加權(quán)度大小,α為可調(diào)參數(shù),控制著不同加權(quán)度節(jié)點(diǎn)上的負(fù)荷差異性。
2)最大負(fù)載容量:通常情況下,節(jié)點(diǎn)處理負(fù)荷的能力均和其初始工作負(fù)荷有關(guān),目前的眾多研究中,節(jié)點(diǎn)的最大負(fù)載容量均和初始工作負(fù)荷存在正比的關(guān)系,定義為
Cj=βLj
(6)
其中,Cj為節(jié)點(diǎn)j的最大負(fù)載容量,β為容量系數(shù),β≥1。
3)負(fù)載重分配原則:當(dāng)節(jié)點(diǎn)開發(fā)者i流失或崩潰后,開發(fā)者i上的工作負(fù)荷則需要重新分配到他的合作伙伴(鄰居節(jié)點(diǎn))上。通常認(rèn)為負(fù)載重分配原則受到開發(fā)者間的合作深度影響,即兩個(gè)開發(fā)者間合作次數(shù)越多,合作關(guān)系越緊密,那么開發(fā)者i流失或崩潰后,開發(fā)者j收到的來自i的工作負(fù)荷越大,定義為
(7)
其中,ΔLji為節(jié)點(diǎn)j收到來自節(jié)點(diǎn)i的額外工作負(fù)荷,wij為節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的連邊權(quán)重。當(dāng)節(jié)點(diǎn)i和節(jié)點(diǎn)j之間連邊權(quán)重占節(jié)點(diǎn)i加權(quán)度的比重越大,節(jié)點(diǎn)j收到來自節(jié)點(diǎn)i的額外工作負(fù)荷也就越大。
當(dāng)開發(fā)者j的鄰居節(jié)點(diǎn)流失或失效后,開發(fā)者j的初始負(fù)荷加上來自失效節(jié)點(diǎn)的額外負(fù)荷大于開發(fā)者j的最大負(fù)載容量時(shí),開發(fā)者j也會(huì)隨之崩潰,處于“失效”狀態(tài),反之“正?!?。因此,開發(fā)者j的工作狀態(tài)sj可以表示為
(8)
其中,ΔLj*為節(jié)點(diǎn)j收到的所有失效鄰居節(jié)點(diǎn)的額外負(fù)荷。
本文探究識(shí)別的核心開發(fā)者流失后對(duì)網(wǎng)絡(luò)的動(dòng)態(tài)影響,需要對(duì)網(wǎng)絡(luò)進(jìn)行蓄意攻擊,模擬核心開發(fā)者流失,進(jìn)行仿真分析。開源軟件社區(qū)中,開發(fā)者均是利用自己的空閑時(shí)間自發(fā)進(jìn)行知識(shí)貢獻(xiàn)行為。因此,開發(fā)者的最大負(fù)載容量會(huì)存在限制。與此同時(shí),開發(fā)者在進(jìn)行代碼提交時(shí),其修改或提交內(nèi)容都需要被項(xiàng)目維護(hù)者進(jìn)行比較和挑選。項(xiàng)目維護(hù)者會(huì)挑選出最優(yōu)的內(nèi)容加入到原有項(xiàng)目庫中。因此,被記錄下來的提交次數(shù)均是具備相應(yīng)的工作量的。而開發(fā)者在每次代碼提交時(shí)涉及到的文件數(shù)有時(shí)并不只是1個(gè),但由于開發(fā)者的空閑時(shí)間有限,每次提交所涉及到的知識(shí)貢獻(xiàn)量以及開發(fā)者所能承受的最大工作量都不會(huì)很大,可對(duì)初始工作負(fù)荷中的可調(diào)參數(shù)取值α=1.1。最大負(fù)載容量通常不會(huì)比初始負(fù)荷大很多,容量系數(shù)越大,級(jí)聯(lián)失效現(xiàn)象越不明顯,擬對(duì)容量系數(shù)取值β=1.3。
仿真結(jié)果:核心開發(fā)者的流失勢必會(huì)嚴(yán)重破壞網(wǎng)絡(luò)的靜態(tài)結(jié)構(gòu),同時(shí)還會(huì)造成眾多開發(fā)者隨之“失效”。根據(jù)圖4一次傳播的級(jí)聯(lián)效應(yīng)仿真結(jié)果,能夠明顯看出:核心開發(fā)者的流失會(huì)導(dǎo)致與之存在協(xié)作關(guān)系的大量開發(fā)者崩潰失效;其中一次傳播失效影響最嚴(yán)重的是編號(hào)2756的開發(fā)者,其流失后會(huì)導(dǎo)致76位開發(fā)者隨之失效,占據(jù)了其所有合作者數(shù)量的58.9%。該名開發(fā)者是本文所提出的模塊內(nèi)參與度和模塊間參與度指標(biāo)下識(shí)別出重要性排序第1的核心開發(fā)者;度排序第1的開發(fā)者97流失后導(dǎo)致54人失效;介數(shù)中心性排序第1,同時(shí)也是度和介數(shù)中心性綜合考慮排序第1的開發(fā)者1907,其流失后導(dǎo)致59人失效;加權(quán)度排序第1的開發(fā)者148流失后導(dǎo)致失效的開發(fā)者人數(shù)相對(duì)較少,僅有41人,這也是所有核心開發(fā)者中除了451之外導(dǎo)致失效開發(fā)者最少的開發(fā)者,但失效節(jié)點(diǎn)占比卻高達(dá)40.6%。
上述結(jié)果可以看出:節(jié)點(diǎn)的加權(quán)度決定了節(jié)點(diǎn)的初始工作負(fù)荷,當(dāng)開發(fā)者節(jié)點(diǎn)加權(quán)度越大時(shí),所承擔(dān)的初始工作負(fù)荷也越大,若該開發(fā)者流失理應(yīng)導(dǎo)致網(wǎng)絡(luò)中多數(shù)的開發(fā)者隨之“崩潰失效”。但是仿真結(jié)果卻可以看出,網(wǎng)絡(luò)中初始工作負(fù)荷最大的開發(fā)者148流失后卻沒有導(dǎo)致最多人數(shù)、最大占比的開發(fā)者隨之“崩潰失效”。究其原因:開發(fā)者148僅少部分存在與之協(xié)作關(guān)系十分緊密的開發(fā)者,這部分的開發(fā)者在148流失后的負(fù)載重分配原則中收到了更多的來自148的額外工作負(fù)荷。而其余與148存在協(xié)作關(guān)系的開發(fā)者可能因其關(guān)系不緊密,收到的額外工作負(fù)荷相對(duì)較少。當(dāng)我們考慮了開發(fā)者的社團(tuán)結(jié)構(gòu)特征后,最重要的開發(fā)者2756流失后造成的最多人數(shù)、最大占比的開發(fā)者隨之崩潰失效??梢郧宄乜闯觯罕M管需要重新分配的工作負(fù)荷沒有最大,但因其與協(xié)作者之間均能夠保持著相對(duì)平均的協(xié)作密切程度,所以負(fù)載重分配過程中影響了更多的合作者隨之崩潰失效。
圖4 一次傳播下的級(jí)聯(lián)效應(yīng)
圖5 二次傳播下的級(jí)聯(lián)效應(yīng)
考慮二次傳播的級(jí)聯(lián)效應(yīng)時(shí)(見圖5),可以發(fā)現(xiàn)在第二次傳播過程中隨之“崩潰失效”的開發(fā)者人數(shù)較多的分別是編號(hào)148導(dǎo)致119人失效,編號(hào)2628導(dǎo)致89人失效,編號(hào)1905導(dǎo)致88人失效。雖然考慮社團(tuán)結(jié)構(gòu)的編號(hào)2756開發(fā)者在第二次傳播過程中僅導(dǎo)致79人隨之“崩潰失效”,但失效占比中卻是所有核心開發(fā)者中最高的。當(dāng)考慮總失效人數(shù)時(shí),最多的分別是編號(hào)148導(dǎo)致160人失效,編號(hào)2756導(dǎo)致155人失效,編號(hào)2929和2628均導(dǎo)致137人失效,編號(hào)1905導(dǎo)致134人失效,但失效人數(shù)總占比最高的仍然是開發(fā)者2756。
可以清晰地看出加權(quán)度大小排序下的核心開發(fā)者在二次傳播中也能夠影響較多的開發(fā)者隨之失效,但占比卻不是最高的。究其原因:一些度大的開發(fā)者之間會(huì)存在著相互協(xié)作關(guān)系,當(dāng)發(fā)生二次傳播時(shí)波及到的開發(fā)者人數(shù)較多,影響范圍較廣,失效的開發(fā)者也會(huì)隨之增多,但是開發(fā)者間的協(xié)作關(guān)系并不緊密,導(dǎo)致失效人數(shù)占比不高。這也說明了社區(qū)知識(shí)創(chuàng)造過程中的“同質(zhì)相吸”現(xiàn)象,度大的開發(fā)者之間存在緊密協(xié)作關(guān)系。當(dāng)考慮社團(tuán)結(jié)構(gòu)所識(shí)別出的核心開發(fā)者,即那些既活躍在社團(tuán)內(nèi)部又游走于其他社團(tuán)間的開發(fā)者,盡管他們的工作負(fù)荷并不是最大的,但由于與眾多開發(fā)者間均存在緊密協(xié)作關(guān)系,能夠造成極為嚴(yán)重的級(jí)聯(lián)失效現(xiàn)象。
綜上所述:擁有較大的工作負(fù)荷、占據(jù)網(wǎng)絡(luò)中重要位置的核心開發(fā)者,如度、介數(shù)較大的開發(fā)者流失后會(huì)造成社區(qū)中眾多開發(fā)者隨之“崩潰失效”。核心開發(fā)者間的緊密協(xié)作關(guān)系也導(dǎo)致初始工作負(fù)荷較大的開發(fā)者在二次傳播過程中造成了影響范圍更廣、更深遠(yuǎn)的級(jí)聯(lián)失效現(xiàn)象??紤]社團(tuán)結(jié)構(gòu)識(shí)別出的核心開發(fā)者,既能占據(jù)其社團(tuán)內(nèi)部的核心位置,又是其他社團(tuán)之間的“橋梁、要塞”,這類開發(fā)者盡管沒有承擔(dān)最強(qiáng)的工作負(fù)荷,卻因其相對(duì)平均的協(xié)作關(guān)系密切程度,造成了極為嚴(yán)重的級(jí)聯(lián)失效現(xiàn)象。
可見,開源軟件社區(qū)自組織演化過程中的“同質(zhì)相吸”現(xiàn)象會(huì)導(dǎo)致核心開發(fā)者間存在緊密協(xié)作關(guān)系,倘若出現(xiàn)核心開發(fā)者的流失將會(huì)導(dǎo)致極為嚴(yán)重的級(jí)聯(lián)失效現(xiàn)象。在社區(qū)發(fā)展過程中,管理者有必要進(jìn)行相應(yīng)的人為干預(yù)。
為了探究核心開發(fā)者流失造成的級(jí)聯(lián)失效現(xiàn)象,本文基于已有指標(biāo)提出了考慮開發(fā)者節(jié)點(diǎn)局部屬性的指標(biāo)體系,基于多屬性決策的方法識(shí)別出來核心開發(fā)者,并在此基礎(chǔ)上構(gòu)建了改進(jìn)的負(fù)載容量模型,仿真模擬了一次傳播和二次傳播下核心開發(fā)者流失造成的級(jí)聯(lián)效應(yīng)。得到幾點(diǎn)結(jié)論:1)開源軟件社區(qū)網(wǎng)絡(luò)中存在較明顯的核心邊緣結(jié)構(gòu),核心開發(fā)者之間也存在著緊密協(xié)作關(guān)系,這導(dǎo)致社區(qū)在面對(duì)核心開發(fā)者流失時(shí)會(huì)存在著較為明顯的級(jí)聯(lián)失效現(xiàn)象,會(huì)嚴(yán)重影響開源軟件社區(qū)的創(chuàng)新產(chǎn)出。2)基于社團(tuán)結(jié)構(gòu)提出的模塊內(nèi)參與度和模塊間參與度所識(shí)別出的核心開發(fā)者不管是在一次傳播還是二次傳播的級(jí)聯(lián)效應(yīng)下導(dǎo)致失效的開發(fā)者數(shù)量都相對(duì)較多。因此,在往后的研究中,有必要將開發(fā)者的局部屬性考慮進(jìn)去識(shí)別核心開發(fā)者。3)開源軟件社區(qū)中,開發(fā)者的初始工作負(fù)荷和負(fù)載重分配原則對(duì)于級(jí)聯(lián)效應(yīng)影響較大,特別是二次傳播情況下,初始工作負(fù)荷較大開發(fā)者會(huì)造成影響范圍更廣、更深遠(yuǎn)的級(jí)聯(lián)失效現(xiàn)象。因此,有必要及時(shí)制止網(wǎng)絡(luò)中級(jí)聯(lián)失效現(xiàn)象的產(chǎn)生,杜絕二次傳播的風(fēng)險(xiǎn)。
由此,對(duì)社區(qū)在管理運(yùn)營過程中提出以下幾點(diǎn)建議:在核心開發(fā)者識(shí)別上,不能再僅僅依靠傳統(tǒng)指標(biāo)如度、介數(shù)等,有必要將社區(qū)中的社團(tuán)結(jié)構(gòu)考慮進(jìn)來。在項(xiàng)目開發(fā)過程中,要重點(diǎn)關(guān)注核心開發(fā)者,特別是那些既能活躍在其社團(tuán)內(nèi)部又能活躍于其他社團(tuán)間的開發(fā)者的動(dòng)態(tài)。當(dāng)出現(xiàn)核心開發(fā)者流失的情況時(shí),應(yīng)及時(shí)填補(bǔ)空缺,遏制風(fēng)險(xiǎn)的二次傳播。在工作內(nèi)容發(fā)布時(shí),應(yīng)注重各子項(xiàng)目工作量的劃分,時(shí)刻關(guān)注社區(qū)內(nèi)部開發(fā)者的工作負(fù)荷分配情況,不能使少數(shù)開發(fā)者承擔(dān)繁重的開發(fā)任務(wù)。管理者也應(yīng)積極推廣項(xiàng)目,吸引更多的新開發(fā)者加入進(jìn)來,積極鼓勵(lì)更多的開發(fā)者參與到核心技術(shù)的開發(fā)過程中去,使社區(qū)形成多核的局面,以此減少核心開發(fā)者之間的協(xié)作關(guān)系,降低級(jí)聯(lián)失效的風(fēng)險(xiǎn)。
基于上述結(jié)論不難看出:借鑒負(fù)載容量模型,探討社區(qū)內(nèi)核心開發(fā)者流失時(shí)造成的級(jí)聯(lián)效應(yīng)具有一定的理論意義;將考慮了開發(fā)者局部屬性的社團(tuán)結(jié)構(gòu)指標(biāo)加入進(jìn)來識(shí)別的核心開發(fā)者相對(duì)傳統(tǒng)指標(biāo)也具有更優(yōu)的識(shí)別效果。一方面創(chuàng)新性地從動(dòng)態(tài)視角探討了核心開發(fā)者流失造成的影響,另一方面也是對(duì)開源軟件社區(qū)這種大規(guī)模自組織工作模式研究的推進(jìn),也有利于項(xiàng)目管理者更好地規(guī)劃項(xiàng)目開發(fā)進(jìn)程,促進(jìn)社區(qū)的集體智慧。
然而,本文目前仍然存在著一些不足。在構(gòu)建負(fù)載容量模型時(shí)僅僅基于當(dāng)前較為簡單的度模型進(jìn)行了簡單的改進(jìn)。仿真分析時(shí),為了簡化討論過程網(wǎng)絡(luò)中所有節(jié)點(diǎn)的容量系數(shù)均取β=1.3,這些都是理想化的,真實(shí)系統(tǒng)中每個(gè)開發(fā)者節(jié)點(diǎn)的容量系數(shù)并不一定完全相同。因此,模型復(fù)雜化、開發(fā)者流失和容量系數(shù)多樣化這些均是本文后續(xù)研究的深化。
復(fù)雜系統(tǒng)與復(fù)雜性科學(xué)2021年2期