劉曄暉,趙海燕,曹 健,陳慶奎
1(上海市現(xiàn)代光學(xué)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,光學(xué)儀器與系統(tǒng)教育部工程研究中心,上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
2(上海交通大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,上海 200030)
E-mail:1092778656@qq.com
問(wèn)題追蹤器已成為現(xiàn)代軟件開(kāi)發(fā)項(xiàng)目中必不可少的協(xié)作工具[1],它們可以用于注冊(cè)和跟蹤新功能請(qǐng)求、開(kāi)發(fā)任務(wù)和錯(cuò)誤等.在開(kāi)源項(xiàng)目如Github中,每個(gè)人都可以在項(xiàng)目的問(wèn)題跟蹤器上打開(kāi)一個(gè)新問(wèn)題,關(guān)注該項(xiàng)目的開(kāi)發(fā)人員看到該問(wèn)題時(shí)可能會(huì)進(jìn)行回答,問(wèn)題被解決后提問(wèn)者會(huì)關(guān)閉該問(wèn)題,之后也有可能會(huì)重新開(kāi)啟.
問(wèn)題的回答者可能直接來(lái)自于項(xiàng)目的核心團(tuán)隊(duì)成員或者是對(duì)該項(xiàng)目感興趣的外部貢獻(xiàn)者.等待相應(yīng)的開(kāi)發(fā)人員分析回答問(wèn)題的過(guò)程并不總是迅速的,這將導(dǎo)致問(wèn)題處理不夠及時(shí)甚至長(zhǎng)久得不到解決,因此出現(xiàn)了一系列研究[2-6]旨在推薦能夠回答該問(wèn)題的專(zhuān)家.一般來(lái)說(shuō),這些方法將過(guò)去類(lèi)似問(wèn)題的回答者作為推薦對(duì)象,因此,其推薦的質(zhì)量依賴(lài)于所選擇的衡量問(wèn)題相似性或者相關(guān)性的屬性.這種依據(jù)過(guò)去的直觀(guān)經(jīng)驗(yàn)進(jìn)行推薦的方法在新問(wèn)題上是無(wú)法奏效的.
顯然,了解哪些因素影響開(kāi)發(fā)人員參與問(wèn)題解決過(guò)程的積極性具有重要的意義.基于這些因素進(jìn)行更為有效的人員分配,也可以設(shè)計(jì)更好的參與者推薦系統(tǒng),避免無(wú)效的、不合理的推薦,從而導(dǎo)致問(wèn)題長(zhǎng)久得不到解決、延緩了項(xiàng)目的開(kāi)發(fā)進(jìn)度.
為了確定影響開(kāi)發(fā)人員回答問(wèn)題積極性的因素,我們圍繞以下兩個(gè)方面的問(wèn)題進(jìn)行了研究:
1)問(wèn)題的特征如何影響開(kāi)發(fā)人員回答問(wèn)題的積極性?
2)開(kāi)發(fā)人員的特性如何影響其回答問(wèn)題的積極性?
本文的研究依托于開(kāi)源軟件平臺(tái)Github產(chǎn)生的數(shù)據(jù),從中獲取了開(kāi)發(fā)人員角色、開(kāi)發(fā)人員社交關(guān)系、問(wèn)題難度、文本長(zhǎng)度、是否包含代碼塊、問(wèn)題種類(lèi)、開(kāi)發(fā)人員之間的配對(duì)關(guān)系等多種影響因素,并對(duì)這些因素的作用進(jìn)行了深入分析.
本文組織如下:第2節(jié)介紹了開(kāi)源軟件中問(wèn)題解決過(guò)程的相關(guān)研究;第3節(jié)詳細(xì)闡述了我們的研究使用的數(shù)據(jù)和具體的方法;第4節(jié)對(duì)結(jié)果進(jìn)行了詳細(xì)的量化分析和討論,最后進(jìn)行總結(jié)并對(duì)后續(xù)工作進(jìn)行展望.
Github上,開(kāi)源軟件的開(kāi)發(fā)過(guò)程由5個(gè)步驟組成的工作流[7]組成:
1)討論問(wèn)題:討論項(xiàng)目的一個(gè)新功能,商定需要做什么,主要是許多開(kāi)發(fā)人員就一個(gè)新的功能或需要修改的功能進(jìn)行溝通,并最終確定要增加或修改什么樣的功能;
2)指定事務(wù):為討論出的功能創(chuàng)建一個(gè)分支;
3)執(zhí)行事務(wù):在指定事務(wù)工作流中創(chuàng)建的分支上建立一個(gè)功能分支以使其工作;
4)審查事務(wù):功能完成后推送到遠(yuǎn)程端,通過(guò)pull request進(jìn)行代碼審查;
5)問(wèn)題解決后迭代:在審查中發(fā)現(xiàn)問(wèn)題,進(jìn)行問(wèn)題討論,直到問(wèn)題被解決.代碼合并到主分支.可以看出,問(wèn)題討論和解決在其中具有重要作用.
Github中項(xiàng)目開(kāi)發(fā)人員的角色分為內(nèi)部人員和外部人員,其中,內(nèi)部人員(inner)指真正參與到項(xiàng)目的開(kāi)發(fā)人員,包括項(xiàng)目的成員(Member)、協(xié)作者(Collaborator)以及貢獻(xiàn)者(Contributor),其他人則為外部人員(outer).而Member指的是成員,組織分組內(nèi)權(quán)限最低的角色,按照不同的組織設(shè)置,有些Member只限于對(duì)某些子庫(kù)具備查看或?qū)懙臋?quán)限;Collaborator指的是合作開(kāi)發(fā)者,被庫(kù)的所有者邀請(qǐng)共同開(kāi)發(fā)某一項(xiàng)目,擁有對(duì)庫(kù)的讀寫(xiě)權(quán)限;Contributor指的是貢獻(xiàn)者,對(duì)項(xiàng)目有所貢獻(xiàn)(如提交代碼,修復(fù)bug等)的開(kāi)發(fā)者,但不具備合作開(kāi)發(fā)者的訪(fǎng)問(wèn)權(quán)限.
最近針對(duì)開(kāi)源軟件中的問(wèn)題解決過(guò)程,很多學(xué)者進(jìn)行了研究.對(duì)于發(fā)布的問(wèn)題的文本內(nèi)容是否足以將問(wèn)題分類(lèi),Antoniol等人進(jìn)行了研究分析[8].Assar等人通過(guò)對(duì)問(wèn)題文本進(jìn)行聚類(lèi)來(lái)預(yù)測(cè)問(wèn)題解決時(shí)間[9].Bhattacharya等人基于Eclipse、Chrome、Firefox、 Seamonkey和Thunderbird這5個(gè)開(kāi)源項(xiàng)目的512474個(gè)問(wèn)題對(duì)問(wèn)題解決時(shí)間的影響因素進(jìn)行了分析,結(jié)果表明bug的修復(fù)時(shí)間與其修復(fù)的可能性和bug的提交者沒(méi)有相關(guān)性[10].為了找出影響問(wèn)題修復(fù)的因素,Guo等人重點(diǎn)對(duì)Windows Vista和Windows 7中的問(wèn)題相關(guān)的因素以及參與處理問(wèn)題的開(kāi)發(fā)人員之間的關(guān)系進(jìn)行了分析,研究結(jié)果表明聲譽(yù)好的開(kāi)發(fā)人員提交的問(wèn)題更容易被解決,且開(kāi)發(fā)人員間的人際關(guān)系對(duì)問(wèn)題解決也有重要影響[11].Murgia對(duì)Github中34個(gè)開(kāi)源項(xiàng)目的14000多個(gè)問(wèn)題進(jìn)行分析,發(fā)現(xiàn)問(wèn)題解決時(shí)間取決于維護(hù)類(lèi)型[12].Tian等人提出了一種基于機(jī)器學(xué)習(xí)的自動(dòng)化方法,將問(wèn)題的時(shí)間、文本、提交者和嚴(yán)重性等元素考慮進(jìn)去,從而確定問(wèn)題的優(yōu)先級(jí)[13].
上述研究主要關(guān)注了影響問(wèn)題解決過(guò)程速度的因素,還缺少對(duì)人員參與問(wèn)題解決過(guò)程的積極性的影響因素的研究.本文的主要研究目的是旨在找出影響開(kāi)發(fā)人員加入問(wèn)題討論的因素,通過(guò)調(diào)整這些因素可以使得問(wèn)題解決的人員積極性更高.
在這項(xiàng)工作中,我們采用了關(guān)聯(lián)規(guī)則挖掘技術(shù),以揭示數(shù)據(jù)中的隱含信息.具體而言,我們的研究采用了知識(shí)發(fā)現(xiàn)(Konwledge Discovery in Database,KDD)過(guò)程[14],即:1)數(shù)據(jù)選擇;2)預(yù)處理;3)數(shù)據(jù)轉(zhuǎn)換和填充;4)關(guān)聯(lián)規(guī)則提取;5)結(jié)果解釋與評(píng)價(jià).在數(shù)據(jù)選擇中,我們使用GHTorrent[15]、Github API(1)https://developer.github.com/v3/以及直接從Github(2)https://github.com/爬取相關(guān)數(shù)據(jù);在數(shù)據(jù)預(yù)處理過(guò)程中,我們對(duì)數(shù)據(jù)進(jìn)行清洗和屬性選擇,以刪除缺少、不正確或不一致的數(shù)據(jù)項(xiàng);在數(shù)據(jù)轉(zhuǎn)化和填充中,我們對(duì)一些數(shù)值屬性進(jìn)行了離散化,以提高結(jié)果的語(yǔ)義;我們使用Apriori算法實(shí)現(xiàn)關(guān)聯(lián)規(guī)則提取[16];最后,對(duì)于結(jié)果解釋和評(píng)價(jià),我們對(duì)每個(gè)研究問(wèn)題所得結(jié)果都進(jìn)行了具體分析.
為回答第一方面的問(wèn)題,我們通過(guò)對(duì)問(wèn)題的難易度、文本長(zhǎng)度、是否含有代碼以及問(wèn)題的類(lèi)別進(jìn)行關(guān)聯(lián)規(guī)則挖掘,我們總結(jié)分析了問(wèn)題特征對(duì)開(kāi)發(fā)人員回答問(wèn)題的影響程度.結(jié)果將在第4.1節(jié)中討論.
為回答第二方面的問(wèn)題,我們挖掘了包含問(wèn)題提出者以及回答者角色屬性的關(guān)聯(lián)規(guī)則,比如開(kāi)發(fā)人員對(duì)項(xiàng)目有沒(méi)有貢獻(xiàn)、有貢獻(xiàn)的開(kāi)發(fā)人員是Member還是Contributor、問(wèn)題提出者與回答者是否是熟人以及開(kāi)發(fā)人員是否經(jīng)常一起回答問(wèn)題.除了對(duì)一些關(guān)聯(lián)規(guī)則進(jìn)行置信度分析外,我們還進(jìn)行了定性分析,以便更好地理解結(jié)果.第4.2節(jié)給出了分析結(jié)果.
我們從Github中選擇了23個(gè)項(xiàng)目共57,244個(gè)問(wèn)題進(jìn)行了研究,其中流行的項(xiàng)目有10個(gè),有效標(biāo)簽多的項(xiàng)目有13個(gè).為了從整體上提問(wèn)者角色對(duì)開(kāi)發(fā)人員積極性的影響,我們根據(jù)Github上的star數(shù)選取了最流行的10個(gè)項(xiàng)目;我們從這10個(gè)流行項(xiàng)目中隨機(jī)選取了5個(gè)流行項(xiàng)目(即jasmine、istio、realm-cocoa、elixir和metabase)研究開(kāi)發(fā)人員角色、開(kāi)發(fā)人員社交關(guān)系、問(wèn)題難度、文本長(zhǎng)度、是否含有代碼塊、開(kāi)發(fā)人員之間的配對(duì)關(guān)系等影響因素.在研究問(wèn)題類(lèi)型對(duì)開(kāi)發(fā)人員積極性的影響這一問(wèn)題時(shí),我們挑選了13個(gè)有效標(biāo)簽較多的項(xiàng)目進(jìn)行研究.
我們研究的項(xiàng)目包含了很多開(kāi)發(fā)人員提交的問(wèn)題,考慮到不同的開(kāi)發(fā)人員提交的問(wèn)題數(shù)量,我們使用了不同維度的屬性去試圖理解可能影響開(kāi)發(fā)人員去回答問(wèn)題的不同因素.涉及的屬性如表1所示.
在屬性預(yù)處理過(guò)程中,判斷開(kāi)發(fā)人員是否是熟人首先需要先建立開(kāi)發(fā)人員歷史交互信息表,通過(guò)統(tǒng)計(jì)分析,50%以上的開(kāi)發(fā)人員只有一次交互信息,因此我們假設(shè)問(wèn)題提問(wèn)者與回答者交互次數(shù)大于1次為熟人.
表1 本文使用到的屬性
Table 1 Attributes used in this study
屬 性 描 述repoter_type提交問(wèn)題的開(kāi)發(fā)人員類(lèi)型,其中inner指Member、Contributor或Collaborator,outer指除inner意外的其他人user_type對(duì)問(wèn)題進(jìn)行回答的開(kāi)發(fā)人員類(lèi)型,類(lèi)型同repoter_typeacquaintance開(kāi)發(fā)人員是否是熟人degree_type問(wèn)題的難度等級(jí),具體劃分為easy、normal和toughissueCleanedBodyLen去除停用詞、標(biāo)點(diǎn)后的問(wèn)題標(biāo)題與內(nèi)容總文本長(zhǎng)度,共四個(gè)等級(jí):short、medium、long以及l(fā)ongercode問(wèn)題文本中是否有代碼issue_category問(wèn)題類(lèi)別,分為:adaptive、corrective、perfective以及preventive
考慮到一個(gè)簡(jiǎn)單問(wèn)題可能會(huì)被很多用戶(hù)回答,而一個(gè)困難問(wèn)題可能只有幾個(gè)人回答,參與回答問(wèn)題的人數(shù)可以成為表征問(wèn)題難易程度的因素之一;此外,將問(wèn)題解決的時(shí)間間隔作為問(wèn)題難易程度影響的因素之一,考慮到衡量問(wèn)題難度的計(jì)算中,問(wèn)題耗費(fèi)的時(shí)間越長(zhǎng)表示該問(wèn)題越難,反之則問(wèn)題越容易.這里,當(dāng)問(wèn)題狀態(tài)為closed則認(rèn)為問(wèn)題被解決.我們使用公式(1)和公式(2)來(lái)計(jì)算問(wèn)題qid的難度值qdqidqdqid.
(1)
(2)
其中,Aqid是問(wèn)題qid的答案,|Aqid|表示答案集合的大小(也就是對(duì)問(wèn)題qid進(jìn)行回復(fù)的答案?jìng)€(gè)數(shù));Tavg是問(wèn)題qid的平均耗費(fèi)時(shí)間,單位是分鐘,Tai是問(wèn)題qid關(guān)閉的時(shí)間,Tqid則是問(wèn)題qid發(fā)布的時(shí)間;τ是一個(gè)調(diào)節(jié)參數(shù),為避免計(jì)算時(shí)結(jié)果下降太快在這里被設(shè)置為1/3600.
在將問(wèn)題映射上到維護(hù)類(lèi)型的時(shí)候,我們根據(jù)Github開(kāi)發(fā)人員為問(wèn)題打的標(biāo)簽,采用Murgia等人的方法對(duì)問(wèn)題的維護(hù)類(lèi)型進(jìn)行劃分[12].我們沒(méi)有映射任何不清楚或不屬于維護(hù)類(lèi)型的標(biāo)簽,例如,標(biāo)簽GUI和Mobile是通用標(biāo)簽,不提供關(guān)于所執(zhí)行的維護(hù)類(lèi)型的提示,因此不會(huì)劃分到四大維護(hù)類(lèi)型中.出于同樣的原因,我們沒(méi)有考慮使用不同維護(hù)類(lèi)型的標(biāo)簽,將這些標(biāo)簽映射為糾正性、完善性、適應(yīng)性和預(yù)防性維護(hù)都會(huì)對(duì)我們的分析的有效性造成影響.由于大部分問(wèn)題有效標(biāo)簽較少,我們從眾多流行項(xiàng)目中挑選了13個(gè)項(xiàng)目,因?yàn)樗鼈冎辽儆幸粋€(gè)問(wèn)題含有與維護(hù)類(lèi)型相關(guān)的標(biāo)簽.
關(guān)聯(lián)規(guī)則的提取是數(shù)據(jù)挖掘中的一項(xiàng)重要任務(wù),其目的是找出數(shù)據(jù)庫(kù)中屬性之間的關(guān)系[17],關(guān)聯(lián)規(guī)則表示應(yīng)用程序領(lǐng)域中以特定頻率發(fā)生的數(shù)據(jù)項(xiàng)之間的關(guān)系模式.
本文運(yùn)用的方法采用了多維關(guān)聯(lián)規(guī)則的概念[17]:給定一個(gè)關(guān)系數(shù)據(jù)庫(kù)D,多維關(guān)聯(lián)規(guī)則X→Y表示為:X1∩X2∩…∩Xn→Y1∩Y2∩…∩Ym,其中n≥1,m≥1,而Xi(1≤i≤n)和Yj(1≤j≤m)是D不同屬性的條件定義.
關(guān)聯(lián)規(guī)則X→Y在一定程度上表明:先導(dǎo)X的出現(xiàn)意味著后繼Y的出現(xiàn).關(guān)聯(lián)規(guī)則的相關(guān)性主要通過(guò)兩個(gè)度量指標(biāo)來(lái)評(píng)估:支持度和置信度[18].支持度由滿(mǎn)足先導(dǎo)條件和后繼條件的實(shí)例的百分比定義,計(jì)算如下:Sup(X→Y)=TX∩Y/T,其中TX∩Y表示滿(mǎn)足條件X和Y的實(shí)例的數(shù)量,T是D中實(shí)例數(shù)量;置信度表示在先導(dǎo)發(fā)生的條件下后繼發(fā)生的概率,計(jì)算公式如下:Conf(X→Y)=TX∩Y/TX,其中TX表示滿(mǎn)足先導(dǎo)X發(fā)生的實(shí)例數(shù)量.支持度和置信度在關(guān)聯(lián)規(guī)則挖掘中充當(dāng)過(guò)濾器的作用,即只有滿(mǎn)足最小支持度閾值和置信度閾值的規(guī)則才會(huì)被提取.
另一個(gè)度量指標(biāo)是規(guī)則X→Y的Lift,它表示給定X條件發(fā)生的概率,Y條件發(fā)生的概率會(huì)怎樣變化.Lift是由規(guī)則的置信度以及其結(jié)果的支持度的比值,即:Lift(X→Y)=Conf(X→Y)/Sup(Y),其中Sup(Y)表示滿(mǎn)足Y條件的數(shù)據(jù)集中的實(shí)例數(shù).當(dāng)Lift=1時(shí),X和Y之間條件獨(dú)立,也就是說(shuō),先導(dǎo)的出現(xiàn)并不會(huì)影響后繼的出現(xiàn).另一方面,Lift>1表示先導(dǎo)和后繼之間存在正相關(guān),這意味著X的出現(xiàn)增加了Y發(fā)生的幾率.相反,當(dāng)Lift<1時(shí),先導(dǎo)和后繼之間存在負(fù)相關(guān),這表明X的出現(xiàn)會(huì)降低Y發(fā)生的幾率.
為了說(shuō)明支持度和置信度度量的作用,我們假設(shè)規(guī)則為D中的Sup(user_type=″Memer″)=50%(對(duì)結(jié)果的支持度滿(mǎn)足條件user_type=″Memer″的實(shí)例數(shù)量).根據(jù)這條規(guī)則得到的Lift=1.5,因?yàn)長(zhǎng)ift(R)=75/50=1.5,其中75%是規(guī)則的置信度.在本例中,結(jié)果表明當(dāng)提交問(wèn)題的人是″Memer″時(shí),被″Memer″的開(kāi)發(fā)人員回答的幾率增加50%.
我們還對(duì)一些規(guī)則進(jìn)行了置信度分析,以確定是先導(dǎo)影響后繼還是后繼影響先導(dǎo),當(dāng)規(guī)則在方向(X→Y)上的置信度顯著高于在方向(Y→X)上的置信度時(shí),我們說(shuō)X影響Y而不是Y反過(guò)來(lái)影響X.
我們使用Apriori算法來(lái)提取關(guān)聯(lián)規(guī)則[16].考慮到數(shù)據(jù)中的大量實(shí)例和回答問(wèn)題的開(kāi)發(fā)人員較少,我們使用0.1%的最低支持度挖掘規(guī)則.因此我們從jasmine、istio、realm-cocoa、elixir和metabase項(xiàng)目中分別獲得了2,5,4,4,6項(xiàng).考慮到只有2個(gè)issue提供的證明較弱,我們?cè)诒疚闹兄徽故?個(gè)項(xiàng)目中至少有4個(gè)問(wèn)題支持的關(guān)聯(lián)規(guī)則,這一決定能確保它們不是隨機(jī)發(fā)生的.
在本小節(jié)中,我們討論問(wèn)題的特征對(duì)回答者的影響,這些特征包括問(wèn)題的難度、文本長(zhǎng)度、是否含有代碼以及問(wèn)題的類(lèi)別.此外,在某些情況下,我們還對(duì)一些特殊模式進(jìn)行了定性分析.
4.1.1 問(wèn)題的難易程度是否影響回答者的積極性?
表2顯示了簡(jiǎn)單問(wèn)題對(duì)回答者的影響.結(jié)果表明,簡(jiǎn)單的問(wèn)題會(huì)激勵(lì)某些開(kāi)發(fā)人員去討論.例如規(guī)則1中,如果是一個(gè)簡(jiǎn)單的問(wèn)題,那么被”cwbeck”回答的機(jī)會(huì)增加357%.由于(Y→X)方向的置信度遠(yuǎn)遠(yuǎn)大于(X→Y)方向的置信度,說(shuō)明開(kāi)發(fā)人員對(duì)問(wèn)題難度等級(jí)有明顯偏好.在項(xiàng)目elixir中開(kāi)發(fā)人員”mguimas”回答的問(wèn)題有90.91%是簡(jiǎn)單問(wèn)題.
表2degree_type=easy→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 2 Association rules of typedegree_type=easy→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1metabasecwbeck0.10.58804.572metabasezaiddabaeen0.150.8666.673.813metabaseMarcGJA0.10.5866.673.814realm-cocoabryan1anderson0.10.3481.822.75jasminejoshuacc0.231.01602.696istionmnellis0.110.8629.632.427istioymesika0.534.3125.482.088istiogyliu5130.322.5924.742.029realm-cocoaGreatApe0.240.856.761.8710elixirmguimas0.130.2790.911.8611realm-cocoawebmagnets0.10.3452.941.7512jasminejaapz0.190.8438.461.7213elixirNobbZ0.330.6875.761.5514elixirwojtekmach0.450.9375.561.5415jasmineamavisca0.190.8433.331.49
當(dāng)分析以degree_type=easy為前提的規(guī)則時(shí),我們還驗(yàn)證了其他程度的問(wèn)題與回答者之間是否存在關(guān)聯(lián).圖1和圖2說(shuō)明了這種模式,其中標(biāo)識(shí)符(#1、#2和#3)表示每個(gè)項(xiàng)目具有最高Lift值的規(guī)則.degree_type=normal和degree_type=tough對(duì)開(kāi)發(fā)人員的影響與degree_type=easy的影響結(jié)果類(lèi)似.值得注意的是,盡管istio項(xiàng)目中存在Lift>1的規(guī)則,但是當(dāng)問(wèn)題degree_type=normal和degree_type=tough發(fā)生時(shí),開(kāi)發(fā)人員回答問(wèn)題的幾率并沒(méi)有顯著增加.
圖1 degree_type=normal→user類(lèi)型的Lift
我們的結(jié)果表明,開(kāi)發(fā)人員喜歡挑戰(zhàn)問(wèn)題的難易程度不同,這可能與其專(zhuān)業(yè)知識(shí)、技能水平有關(guān).
4.1.2 問(wèn)題的長(zhǎng)度對(duì)回答者的積極性有影響嗎?
Github中的Issue通常包含標(biāo)題和內(nèi)容,其文本長(zhǎng)度也許會(huì)影響開(kāi)發(fā)人員閱讀興趣,太長(zhǎng)的問(wèn)題可能會(huì)讓開(kāi)發(fā)人員喪失閱讀耐心,我們假設(shè)問(wèn)題的文本長(zhǎng)度對(duì)回答者有影響,通過(guò)將問(wèn)題的標(biāo)題和內(nèi)容合并到一個(gè)文本中,計(jì)算其純文本長(zhǎng)度,從而將問(wèn)題長(zhǎng)度分成4個(gè)范圍.表3顯示了短文本問(wèn)題對(duì)開(kāi)發(fā)人員的影響.
圖3、圖4和圖5分別顯示了文本長(zhǎng)度變化時(shí)項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase中的規(guī)則Lift值.標(biāo)識(shí)符(#1、#2和#3)表示項(xiàng)目中Lift值最高的規(guī)則.值得注意的是,當(dāng)文本長(zhǎng)度變得特別長(zhǎng)時(shí),特定的開(kāi)發(fā)人員回答該問(wèn)題的機(jī)會(huì)顯著增加,這表明有些人對(duì)長(zhǎng)文本有著較強(qiáng)偏好.
圖2 degree_type=tough→user類(lèi)型的Lift
結(jié)果表明,不同的文本長(zhǎng)度對(duì)開(kāi)發(fā)人員回答的積極性有影響.一些開(kāi)發(fā)人員傾向于回答簡(jiǎn)潔明了的問(wèn)題,而有些開(kāi)發(fā)人員喜歡回答內(nèi)容詳實(shí)的問(wèn)題.
圖3 issueCleanedBodyLen=medium→user類(lèi)型的Lift
4.1.3 問(wèn)題中含有代碼是否影響回答者的積極性?
開(kāi)源社區(qū)的存在是為了加快項(xiàng)目的開(kāi)發(fā)進(jìn)程,往往涉及到編程技術(shù)問(wèn)題,因此很多問(wèn)題會(huì)含有代碼塊,對(duì)編程感興趣的專(zhuān)業(yè)開(kāi)發(fā)人員可能會(huì)傾向于回答含有代碼的問(wèn)題.因此我們對(duì)問(wèn)題中是否含有代碼與開(kāi)發(fā)人員之間進(jìn)行關(guān)聯(lián)規(guī)則挖掘.表4顯示了挖掘結(jié)果,結(jié)果表明,一些開(kāi)發(fā)人員回答含有代碼的問(wèn)題的機(jī)會(huì)更高.例如在項(xiàng)目elixir中,開(kāi)發(fā)人員” ianrumford”、”c0b”和”lau”回答含有代碼的問(wèn)題的機(jī)會(huì)增加了79%(Lift=1.79)、70%(Lift=1.7)和68%(Lift=1.68).在項(xiàng)目jasmine、istio、realm-cocoa和metabase上可以推算出類(lèi)似的模式.此外,我們還對(duì)這個(gè)場(chǎng)景進(jìn)行了規(guī)則置信度分析.從表4可以看出,在每種情況下,(Y→X)方向的置信度遠(yuǎn)遠(yuǎn)大于(X→Y)方向的置信度,這表明這些開(kāi)發(fā)人員傾向于選擇評(píng)論含有代碼的問(wèn)題.
表3issueCleanedBodyLen=short→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 3 Association rules of typeissueCleanedBodyLen=short→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1jasminemightyiam0.140.651004.672jasminedwt0.140.6585.7143jasminefetis0.120.5483.333.894elixironeeman0.140.861.113.525realm-cocoashmidt0.130.6461.113.096istiosakshigoel120.321.7754.963.057istiosebastienvas0.341.8754.293.018realm-cocoawebmagnets0.130.6754.762.779elixirdevinus0.432.4747.552.7410metabasekdoh1.397.0751.422.6211elixirorenbenkiki0.150.8741.382.3912realm-cocoabigfish240.190.9540.242.0413Istioldemailly1.659.1536.682.0414metabasemazameli1.598.126.051.3315metabasetlrobinson1.638.3223.321.19
圖4 issueCleanedBodyLen=long→user類(lèi)型的Lift
圖5 issueCleanedBodyLen=longer→user類(lèi)型的Lift
我們的結(jié)果指出,部分開(kāi)發(fā)人員對(duì)回答含有代碼的問(wèn)題有明顯偏好.在問(wèn)答者推薦系統(tǒng)中,根據(jù)問(wèn)題中是否含有代碼將其推薦給相應(yīng)的開(kāi)發(fā)人員可以提高用戶(hù)對(duì)問(wèn)題的積極性.
4.1.4 問(wèn)題的類(lèi)別對(duì)回答者的積極性有影響嗎?
軟件維護(hù)是任何成功的軟件項(xiàng)目的關(guān)鍵組成部分,在強(qiáng)調(diào)迭代和增量開(kāi)發(fā)的現(xiàn)代開(kāi)發(fā)過(guò)程中也是如此.本節(jié)我們研究了維護(hù)活動(dòng)類(lèi)型與開(kāi)發(fā)人員之間的關(guān)系.在我們的實(shí)證研究中,Github存儲(chǔ)的問(wèn)題可歸為糾正、適應(yīng)、完善或預(yù)防性維護(hù)問(wèn)題.表5顯示了各種維護(hù)問(wèn)題與開(kāi)發(fā)人員之間的規(guī)則.從這些規(guī)則可以得出這樣的結(jié)論:一些開(kāi)發(fā)人員傾向于回答預(yù)防性的問(wèn)題,如規(guī)則1、規(guī)則3和規(guī)則4顯示,當(dāng)問(wèn)題為預(yù)防性問(wèn)題時(shí),開(kāi)發(fā)人員” SimonVT”、” ezequiel”和” madrobby”回答該類(lèi)問(wèn)題的可能性分別提高17.55倍(Lift=18.55)、14.28倍(Lift=15.28)和11.15倍(Lift=12.15).其他類(lèi)型的問(wèn)題對(duì)開(kāi)發(fā)人員的影響也可以從表中推斷出.
結(jié)果表明,問(wèn)題的類(lèi)型對(duì)開(kāi)發(fā)人員的參與有明顯影響,這可能和開(kāi)發(fā)人員擅長(zhǎng)的領(lǐng)域有關(guān).我們的問(wèn)題分類(lèi)基于Murgia等人的工作進(jìn)行的,其分類(lèi)并不全面,如果通過(guò)人工打標(biāo)簽或者通過(guò)半監(jiān)督學(xué)習(xí)將問(wèn)題分類(lèi),結(jié)果可能更明顯.
本節(jié)中,我們討論了開(kāi)發(fā)人員的特征(如:是否為貢獻(xiàn)者、是否是熟人等)對(duì)其回答問(wèn)題的影響.
4.2.1 問(wèn)題提出者的角色是否影響回答者的積極性?
開(kāi)發(fā)人員的一些特征在提交問(wèn)題以及回答問(wèn)題時(shí)就已經(jīng)知道了,例如是否為”Member”或者是”Contributor”.我們的結(jié)果表明提出問(wèn)題的人的角色可能會(huì)影響開(kāi)發(fā)人員的回答.首先我們從項(xiàng)目整體出發(fā),判斷問(wèn)題提問(wèn)者的角色是否會(huì)對(duì)回答者有影響.表6顯示當(dāng)問(wèn)題提問(wèn)者是inner時(shí)被inner回答的關(guān)聯(lián)規(guī)則(升序遞減).例如,規(guī)則1中顯示在uikit項(xiàng)目中,如果inner提出一個(gè)問(wèn)題,被inner回答的概率增加17%.規(guī)則證明,從整體上看在所有被調(diào)查的項(xiàng)目中inner回答inner的可能性更高.但是這并不意味著所有inner都傾向于回答inner提出的問(wèn)題,規(guī)則1顯示uikit項(xiàng)目中inner回答的問(wèn)題只有2.13%是inner提出的.類(lèi)似的信息可以從其余規(guī)則中推斷出來(lái).
同時(shí),我們挖掘了當(dāng)問(wèn)題提問(wèn)者是inner時(shí)被outer回答的關(guān)聯(lián)規(guī)則.整體上inner提出的問(wèn)題對(duì)outer有負(fù)影響,即inner提問(wèn)會(huì)降低outer回答的概率.
我們同樣挖掘了當(dāng)問(wèn)題提問(wèn)者是outer時(shí)被inner回答的關(guān)聯(lián)規(guī)則.整體上outer提出的問(wèn)題對(duì)inner有負(fù)影響,但這種負(fù)影響非常小,幾乎可以忽略不計(jì).
表4code=true→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 4 Association rules of typecode=true→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1elixirianrumford0.130.221001.792elixirc0b0.120.21951.73elixirlau0.310.5694.341.684realm-cocoamarlowcharite0.140.221001.635realm-cocoaArEnSc0.250.411001.636realm-cocoaadomanico0.10.161001.637istioyutongz0.310.598.591.618istiolichuqiang0.20.3297.831.599istioloewenstein0.180.391.111.4810jasmineUziTech0.260.381001.4811jasmineljwall0.190.281001.4812jasminejoezimjs0.280.421001.4813metabasepratapsingh0.10.121001.1814metabaseMixMe0.10.121001.1815metabaseHelenMertes0.10.121001.18
表5issue_category→user類(lèi)型的關(guān)聯(lián)規(guī)則
Table 5 Association rules of typeissue_category→user
#Antecedent(X)Consequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1preventiveSimonVT0.14.7440.4818.552perfectiveredaxmedia0.6420.4752.2416.763preventiveezequiel0.14.7433.3315.284preventivemadrobby0.136.1326.5112.155perfectivemadrobby0.165.2632.5310.446perfectivemislav0.154.8729.419.437correctiveDhilan0070.10.171001.768correctivedumganhar0.180.3293.751.659correctiveandyque0.150.2692.311.6310adaptivejdragojevic0.180.4648.331.2711adaptivebtford0.671.7746.251.2212adaptiveStevenPuttemans0.290.7546.081.21
表6 10大流行項(xiàng)目repoter_type=inner→user_type=inner類(lèi)型的關(guān)聯(lián)規(guī)則
Table 6 Association rules of typerepoter_type=inner→user_type=innerin top 10 popular projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1uikitinner1.7696.942.131.172swagger-uiinner26.2295.2730.311.13pandocinner31.3796.0634.861.074react-navigationinner17.1897.2218.711.065seleniuminner45.4994.5349.631.036istioinner79.0396.4983.331.027realm-cocoainner61.8594.6466.641.028elixirinner79.1995.9583.691.019metabaseinner56.7998.3358.271.0110servoinner83.3299.1184.31.00
表7顯示當(dāng)問(wèn)題提問(wèn)者是outer時(shí)被outer回答的關(guān)聯(lián)規(guī)則.可以看出整體上outer提出的問(wèn)題會(huì)促進(jìn)outer回答的概率,且大部分outer傾向于回答outer提出的問(wèn)題,如規(guī)則4中項(xiàng)目realm-cocoa中的outer回答的問(wèn)題中有51.31%是outer提出的問(wèn)題.
為了更直觀(guān)地看出提問(wèn)者的角色對(duì)回答者角色的影響,我們將上述表格轉(zhuǎn)化為圖的形式,如圖6所示.從上述表格可以看出,大部分規(guī)則在方向(Y→X)上的置信度顯著高于在方向(X→Y)上的置信度,所以我們從個(gè)體出發(fā)研究了問(wèn)題提出者與回答者之間的關(guān)聯(lián)規(guī)則.
表7 10大流行項(xiàng)目repoter_type=outer→user_type=outer類(lèi)型的關(guān)聯(lián)規(guī)則
Table 7 Association rules of typerepoter_type=outer→user_type=outerin top 10 popular projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1istioouter2.2812.6244.252.452servoouter0.412.5935.482.233elixirouter2.0411.6937.942.174realm-cocoaouter3.6910.6551.311.485metabaseouter1.573.7161.981.476pandocouter8.2112.8285.081.337seleniumouter5.7111.0168.451.328swagger-uiouter12.1716.890.351.259react-navigationouter7.659.393.971.1410uikitouter17.4417.7699.681.02
圖6 repoter_type→user_type類(lèi)型的Lift
表8顯示了從jasmine、istio、realm-cocoa、elixir以及metabase中抽取的repoter_type=Member→user類(lèi)型的關(guān)聯(lián)規(guī)則(升序遞減).例如,規(guī)則1表示當(dāng)提出問(wèn)題的人是Member時(shí),讓”sabino”回答該問(wèn)題的概率增加621%.規(guī)則證明,在所有被調(diào)查的項(xiàng)目中,某些開(kāi)發(fā)人員回答Member提出的問(wèn)題的可能性更高.但這并不意味著在所有的開(kāi)發(fā)人員中,只有他們?cè)u(píng)論Member提出的問(wèn)題,只是這些實(shí)例的機(jī)會(huì)更高.當(dāng)我們分析每個(gè)規(guī)則(Y→X)的置信度時(shí),發(fā)現(xiàn)除了規(guī)則8、9、10意外,其他規(guī)則明顯大于(X→Y)上的置信度.例如,規(guī)則5意味著” sandeshsoni”回答的問(wèn)題94.44%是Member提出的問(wèn)題.類(lèi)似的知識(shí)可以從其余規(guī)則的分析中推斷出來(lái).
盡管一些規(guī)則的支持度較低,但是考慮到開(kāi)發(fā)人員回答的問(wèn)題的絕對(duì)數(shù)量,所揭示的行為非常重要.例如,表8中的規(guī)則2只提供了0.11%的支持度,這表示” gbaufake”回答了5個(gè)由Member提出的問(wèn)題,但是開(kāi)發(fā)人員” gbaufake”總共回答的問(wèn)題只有6個(gè),所以(Y→X)的置信度為80.77%,這表明他/她傾向于回答由Member提出的問(wèn)題.盡管該規(guī)則并不代表所有開(kāi)發(fā)人員的模式,但它顯示了一些特定開(kāi)發(fā)人員的模式.如果在推薦系統(tǒng)中想要為Github上的issue推薦相應(yīng)的開(kāi)發(fā)人員,那么應(yīng)該充分利用這種模式.
表8repoter_type=Member→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 8 Association rules of typerepoter_type=Member→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1metabasesabino0.112.4733.337.212istiogbaufake0.110.5180.773.643istiorosenhouse0.110.5180.773.644istiotheganyo0.261.1974.243.345elixirsandeshsoni0.110.3594.443.016elixirrafaelfranca0.160.5186.212.747elixirlackac0.120.3785.712.738metabasecamsaul1.6736.0811.952.599metabasesenior0.36.610.062.1810jasmineslackersoft0.3746.881.41.76
當(dāng)我們分析以repoter_type=Member為前提的規(guī)則時(shí),我們還驗(yàn)證了其他身份的提問(wèn)者與回答者之間是否存在關(guān)聯(lián).表9和表10說(shuō)明了這種模式.可以看出,當(dāng)問(wèn)題提問(wèn)者是Contributor或者其他非貢獻(xiàn)者時(shí),被某些開(kāi)發(fā)人員回答問(wèn)題的機(jī)會(huì)大大增加,而且很多開(kāi)發(fā)人員傾向于回答這類(lèi)人提出的問(wèn)題.例如在表9中所研究的開(kāi)發(fā)人員幾乎回答的全部問(wèn)題都是非貢獻(xiàn)者提出的問(wèn)題.
表9repoter_type=Contributor→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 9 Association rules of typerepoter_type=Contributor→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1jasminedeckar010.12210016.122jasminekevinoid0.12210016.123jasmineUziTech0.25490.9114.654realm-cocoadismory0.131.1185.197.155realm-cocoaSandyChapman0.10.8781.826.876realm-cocoaJadenGeller0.544.5759.014.957metabaseVikramTiwari0.844.2273.333.698metabasejoebordes0.261.2967.53.49metabaseVarunram0.281.3967.443.3910elixirianrumford0.120.36952.7911elixirKronicDeth0.10.394.122.7712elixirPragTob0.110.3294.442.7713istiojnativio0.220.4695.35214istiojmuk0.440.9193.11.9515istiorobertpanzer0.140.2992.861.95
表10repoter_type=others→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 10 Association rules of typerepoter_type=others→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1istiovinayvenkat0.110.381003.332istiojanevalleye2e0.150.51003.333istiojohnzheng19750.170.5794.123.134elixirmguimas0.270.781002.95elixirericbmerritt0.210.61002.96elixirmartin-langhoff0.160.471002.97metabaseLeen150.10.131001.328metabasegajus0.10.141001.329metabasezaiddabaeen0.180.241001.3210realm-cocoagithub2016a0.140.161001.1411realm-cocoaAndrewBarba0.140.161001.1412realm-cocoastaticdreams0.110.131001.1413jasminejoelmccracken0.120.131001.0814jasminemgol0.10.111001.0815jasminefloverdevel0.10.111001.08
表11acquaintance=true→user類(lèi)型在項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase的關(guān)聯(lián)規(guī)則
Table 11 Association rules of typeacquaintance=true→userin jasmine,istio,realm-cocoa,elixir and metabase projects
#ProjectConsequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1istioStono0.365.4383.9612.582istioprune9980.131.9375.411.33elixirslashmili3.51251007.124elixircdegroot1.7512.51007.125metabasepratapsingh0.120.611005.126istiogyliu5130.233.430.644.597realm-cocoaArEnSc0.190.821004.348realm-cocoamhergon0.120.511004.349metabasethat0n3guy0.120.6184.384.3210metabaseanki-code0.63.0683.334.2711realm-cocoagithub2016a0.10.44964.1612elixirriverrun5.2637.533.332.38
我們的結(jié)果表明,提問(wèn)者的身份不同會(huì)對(duì)開(kāi)發(fā)人員回答問(wèn)題有影響.一些開(kāi)發(fā)人員傾向于回答對(duì)項(xiàng)目有貢獻(xiàn)的人提出的問(wèn)題,而其他人傾向于回答非貢獻(xiàn)者提出的問(wèn)題.在問(wèn)答者推薦系統(tǒng)中,我們可以根據(jù)問(wèn)題提問(wèn)者的角色推薦相應(yīng)的開(kāi)發(fā)人員去回答該問(wèn)題.
4.2.2 問(wèn)題提出者與回答者之間的關(guān)系是否影響回答者的積極性?
在本節(jié)中,我們將討論開(kāi)發(fā)人員之間的顯式關(guān)系,更具體地說(shuō),是提問(wèn)者和回答者之間的關(guān)系.Github提供了社交網(wǎng)絡(luò)資源,允許開(kāi)發(fā)人員之間有彼此的社交關(guān)系,我們認(rèn)為社會(huì)關(guān)系反映了提問(wèn)者和回答者之間的顯式關(guān)系,因此我們研究這些因素對(duì)回答者的影響.
表12repoter→user類(lèi)型的關(guān)聯(lián)規(guī)則
Table 12 Association rules of typerepoter→user
#ProjectAntecedent(X)Consequent(Y)Sup X->Y(%)Conf X->Y(%)Conf Y->X(%)Lift1jasmineragaskardwt3.392.0266.6719.692elixiralcoknewter3.032.9858.3319.223istioldemaillymattdelco3.874.7161.1115.784istiorshriramprune9983.472.3941.6712.025realm-cocoatgoyneanlaital5.32.8762.511.796jasmineinfewswyuenho8.931.1510011.27realm-cocoabdashliuxuan306.351.7664.7110.28metabasetlrobinsontomkanjam7.041.1862.58.889elixirericmjtony6126.040.85508.2710istiostalejohn-a-joyce9.531.0466.67711realm-cocoajpsimpeterpaulis15.410.721006.4912metabasecamsaulLukeAbell11.81.0671.436.0513metabasesalsakranhugocar11.090.8357.895.2214jasmineslackersoftmyitcv22.570.451004.4315elixirjosevalimKabie33.540.311002.98
我們從acquaintance=true→user中提取規(guī)則,即當(dāng)回答者與提問(wèn)者是熟人時(shí),回答者回答該問(wèn)題的機(jī)會(huì)大大增加.表11顯示了istio、realm-cocoa、elixir和metabase項(xiàng)目的規(guī)則及其度量.結(jié)果表明,這種模式不僅存在,還非常顯著.此表僅說(shuō)明每個(gè)項(xiàng)目排名前三的最重要規(guī)則,例如規(guī)則1顯示,在項(xiàng)目istio中,當(dāng)” Stono”與提問(wèn)者是熟人時(shí),他回答該熟人提出的問(wèn)題的機(jī)會(huì)增加了11.58倍(Lift=12.58).規(guī)則2到12表示相同的模式,但Lift相對(duì)較小.
可以得出結(jié)論,當(dāng)由熟人提交問(wèn)題時(shí),被一些開(kāi)發(fā)人員回答的機(jī)會(huì)會(huì)增加(最多11.58倍).對(duì)于給定提問(wèn)者,部分開(kāi)發(fā)人員可能會(huì)與其存在利益沖突,挖掘這個(gè)規(guī)則可以幫助我們替換提問(wèn)者和回答者的配對(duì)來(lái)緩解這種沖突.
4.2.3 回答者之間是否經(jīng)常以配對(duì)的形式出現(xiàn)去回答問(wèn)題?
開(kāi)發(fā)人員之間的關(guān)系可能由于在項(xiàng)目中沒(méi)有明確建立而被隱藏,例如技術(shù)能力或共有興趣等,我們認(rèn)為這些關(guān)系是隱式的,但對(duì)分析提問(wèn)者對(duì)回答者的影響同樣重要.
如上所述,有些關(guān)系可能是隱式的,為了得到這樣的關(guān)系,我們尋找由一個(gè)給定開(kāi)發(fā)人員回答的問(wèn)題,這些問(wèn)題被其他開(kāi)發(fā)人員回答的幾率,即某些開(kāi)發(fā)人員是否經(jīng)常一起回答同一個(gè)問(wèn)題.我們從項(xiàng)目jasmine、istio、realm-cocoa、elixir和metabase中挖掘了repoter→user類(lèi)型的規(guī)則.表12顯示了挖掘的規(guī)則及其興趣度量,其中repoter是先導(dǎo),user是后繼.結(jié)果表明,回答者經(jīng)常以配對(duì)的形式出現(xiàn)在問(wèn)題討論中.
我們的分析表明,開(kāi)發(fā)人員經(jīng)常成對(duì)出現(xiàn)在問(wèn)題討論中,這對(duì)問(wèn)答者推薦具有重要指導(dǎo)意義.如果已知某問(wèn)題的部分回答者,可以根據(jù)其配對(duì)情況推薦其他開(kāi)發(fā)人員回答問(wèn)題.
在本文中我們進(jìn)行了一個(gè)關(guān)于影響開(kāi)發(fā)人員回答問(wèn)題因素的研究,以便加速開(kāi)源項(xiàng)目的開(kāi)發(fā)進(jìn)程.我們的結(jié)果可能為日后推薦相關(guān)開(kāi)發(fā)人員回答問(wèn)題提供依據(jù),這些結(jié)果有助于解釋不同的開(kāi)發(fā)人員對(duì)問(wèn)題積極性為什么不同.
根據(jù)我們的研究結(jié)果,可以得出以下七個(gè)結(jié)論.首先,提出問(wèn)題的人是否對(duì)項(xiàng)目有過(guò)貢獻(xiàn)會(huì)影響開(kāi)發(fā)人員回答的積極性.例如,一些開(kāi)發(fā)人員偏好Contributor提出的問(wèn)題,置信度從52%到100%不等.其次,提問(wèn)者和回答者之間的社會(huì)關(guān)系可能會(huì)影響開(kāi)發(fā)人員的回答,一些開(kāi)發(fā)人員經(jīng)常(多達(dá)11.58倍)評(píng)論熟人提出的問(wèn)題.第三,問(wèn)題的難易程度對(duì)開(kāi)發(fā)人員會(huì)產(chǎn)生影響,根據(jù)問(wèn)題的難易程度,當(dāng)問(wèn)題比較簡(jiǎn)單時(shí)特定的開(kāi)發(fā)人員去回答該問(wèn)題的可能性最多可增加4倍.第四,問(wèn)題的純文本長(zhǎng)度是影響開(kāi)發(fā)人員回答問(wèn)題的重要因素之一,我們發(fā)現(xiàn)某些開(kāi)發(fā)人員傾向于回答長(zhǎng)度較短的問(wèn)題(置信度最高達(dá)100%).第五,問(wèn)題中是否含有代碼是衡量開(kāi)發(fā)人員技術(shù)偏好的因素之一,含有代碼的問(wèn)題被部分開(kāi)發(fā)人員回答的概率最多可增加79%.第六,問(wèn)題的維護(hù)類(lèi)型對(duì)開(kāi)發(fā)人員積極性同樣有影響,當(dāng)開(kāi)發(fā)人員看到自己偏好的維護(hù)類(lèi)型的問(wèn)題時(shí),他評(píng)論此類(lèi)問(wèn)題的可能性會(huì)大大增加.第七,我們發(fā)現(xiàn)回答者之間經(jīng)常一起評(píng)論問(wèn)題,即開(kāi)發(fā)人員以配對(duì)的形式出現(xiàn)在問(wèn)題的討論中,我們可以根據(jù)當(dāng)前已回答該問(wèn)題的開(kāi)發(fā)人員尋找其配對(duì)人員,從而完成推薦.
此外,我們指出,除了確定與開(kāi)發(fā)人員回答問(wèn)題相關(guān)的影響因素外,采用的方法還允許我們量化這種影響程度.我們的研究還考慮了定性因素,例如整個(gè)項(xiàng)目歷史中提交的問(wèn)題數(shù)量和開(kāi)發(fā)人員的技術(shù)領(lǐng)域,用于描述觀(guān)察到的模式.
在未來(lái)的研究中,我們打算根據(jù)研究的影響因素對(duì)問(wèn)題進(jìn)行回答者推薦,此外我們打算分析特征組合是否會(huì)增加問(wèn)題回答者的回答幾率,并將其用到推薦系統(tǒng)中.