黃晶晶,陳霞,王娟,劉曉富
(1.中國移動通信集團信息技術有限公司,北京 100044;2.中國移動通信集團江蘇有限公司,江蘇 南京 210029)
對軟件平臺的滿意度[1]評估是軟件改進的重要手段,傳統的問卷調查式滿意度評估方法對于大型軟件的復雜流程環節適用度不高。為了有效評估軟件平臺各個環節的滿意度,提升用戶使用體驗,提出了一種基于累積分布函數[2-3]的滿意度模型對客戶滿意度進行評估,幫助軟件開發組織,提高開發與管理工作的效率與能力。本文以需求開發平臺[4]為例,需求開發平臺功能隨著組織流程不斷增加變得更加復雜,其滿意度也更難評估。本文基于累積分布函數構建滿意度評價模型,通過需求開發平臺各環節采集的基礎數據,分析挖掘評價滿意度所需各項指標及其中的關鍵指標,對數據分析清洗,最終成功分析內部客戶在需求開發處理中的不滿意環節及原因。同時采用回歸[5]、異常點檢測[6-7]等多種算法,與本文模型所得結果進行對比。
傳統滿意度調查還是主要通過問卷調查方式開展,通過被測評對象對需求管理平臺進行打分,但隨著系統日益復雜,籠統的打分無法獲知影響客戶滿意度的主要環節從而進行系統改進。
為了更好地量化滿意度指標,并準確找到不滿意的環節,于是構建滿意度評估模型,并設計出情緒感知值,將業務流轉的環節與整個系統的滿意度進行關聯,從而達到準確定位影響感知的環節。
首先根據平臺業務特性進行環節劃分,針對本項目涉及的需求開發可劃分為需求提出、需求評審、工作量評估、業務部門工作量復核、開發時長和驗收6個環節,每個環節都有若干指標項。根據每個指標的分布函數,計算各指標下不同值所對應的情緒感知得分。且基于業務理解,可以給不同指標設定不同的權重,不同的環節也可以設置不同的權重,權重之和為1。因此最終每個用戶的總情緒感知值EPS(Emotional Perception Score) 則為:
由于需求開發平臺涉及6個環節,因此當前userA的總情緒感知值EPSuserA為6 個環節情緒感知值的加權總和。其中Wlinki為環節i的權重,EPSlinkiuserA為環節i中userA的情緒感知值,具體計算如下:
其中,feajlinki表示環節i下面所對應的第j個指標,Wfeajlinki為該指標的權重,EPSfeajlinkiuserA為userA 在該指標下的情緒感知值。具體地,EPSfeajlinkiuserA基于分布函數計算得到,公式如下:

圖1 feaj的CDF示意圖
特別的,對于某些指標其類別較為離散(類別數≤3) ,這類指標不建議使用上述方法進行情緒感知值計算,而是基于業務邏輯進行情緒感知值轉換。目前針對這類指標,都采用以下方式進行情緒感知值評估:
其中,α為調節系數(0<α<1) ,α越大,不同指標值之間的情緒感知值差距越小,目前可設置為1/2。
為了使最終EPS值的分布更符合實際,需對每個指標的基礎EPS值進行轉換映射,使最終的EPS均值得到提升。具體的,對每個指標的基礎EPS值進行線性+非線性的組合映射,若基礎EPS值在(0,1) 之間的,則按以下方式映射,否則,值不變。映射公式如下:
在滿意度評價模型中,會存在某個重點指標對評價結果有較大影響,例如在需求開發平臺中需求是否為重點需求則對用戶有較大影響,因此對最終的總情緒感知值EPS進行如下調整:
為了驗證滿意度評價模型的準確性,采用對需求管理平臺的按照需求提出、需求評審、工作量評估、業務部門工作量復核、開發時長和驗收這6個環節進行劃分,并分析了各環節下的指標項,各環節對應的指標見表1。

表1 需求環節及各環節對應的指標
分析每個環節分別有不同的指標數據,表1 中業務部門指需求提出部門,IT指信息技術部門及需求開發部門。經分析是否緊急需求、IT 需求響應時長、是否延期、是否提前、是否延遲、需求bug數、需求負責人需求驗收時長這7個指標數據無法直接獲取,實際獲取指標數據時應剔除。
根據日常業務判斷,工作量、需求開發時長、需求完成周期這三個指標耦合性強,而其單個指標的值不足以直接影響滿意度,因此對其進行特征衍生,生成與滿意度強相關的指標,分別衍生出需求完成飽和度和需求開發飽和度,其中需求完成飽和度對應在驗收環節,需求開發飽和度對應在流轉開發工單環節。
需求完成飽和度 = 需求完成周期/工作量
需求開發飽和度 = 需求開發時長/工作量
將工作量、需求開發時長、需求完成周期這三個指標絕對值對滿意度無影響的特征刪除。且是否重點需求單指標評估滿意度意義不大,因此僅將其作為權重指標調節最終的情緒感知值,而不單獨計算該指標的情緒感知值。
針對以上指標,共采集2021 年10 月—2022 年4月共3 440條評估數據,排除掉無法獲取數據的7個指標,包括需求編號、需求名稱以及滿意度打分等共包含字段27 個。針對以上數據進行預處理,采取措施如下:
1) “是否重點需求”字段重編碼,1 代表是重點需求,0代表不是。
2) 將字段中小于0的值作為異常值,并用缺失值替換,各字段最終缺失情況如表2所示。

表2 獲取字段及缺失情況
3) 刪除有缺失值的行,剩余數據2 910條。
4) 刪除工作量為0 的異常數據,最終剩余數據2 908條。
基于業務層面的分析,目前各環節權重設置如表3所示,各指標權重不做調整、均相同。

表3 各環節權重設置
計算得到各指標CDF圖如圖2。

圖2 各指標的CDF圖

圖 3 各指標情緒感知值分布圖

圖4 各環節情緒感知值分布圖

圖5 總情緒感知值分布
最終每個指標、每個環節以及總情緒感知值分布如圖3所示。
為了進一步增加模型可解釋性,對總EPS值較低的用戶,需對其不滿意原因進行溯源分析。首先找到用戶最不滿意的環節,其次在該環節中找到用戶最不滿意的指標。由于各環節的權重不同,因此不能根據各環節絕對EPS 值最低的環節作為用戶最不滿意的環節。而是根據用戶在各環節上的EPS值得分,用各環節滿分-各環節實際得分,得到用戶各環節滿意度扣分值。其中,扣分值最高的環節則為用戶最不滿意的環節。進一步地,通過比對該環節中用戶的各指標EPS 值,其中值最低的則為影響用戶滿意度的關鍵因子。
根據以上2 908 個數據,發現情緒感知值幾乎均大于0.7,最終EPS值小于0.7的數據有12條。因此可以認為小于0.7 為感知不滿意,分析其中的不滿意環節如表4所示。

表4 不滿意環節分布
為驗證上文所列算法的有效性,分別采用回歸模型和異常點檢測模型進行效果對比。
在回歸模型中,基于各用戶最終滿意度打分,構建回歸模型,來獲知各指標對用戶滿意度的重要性權重。運算結果見圖6,分析發現,各指標與最終滿意度打分之間相關性較弱,無論是構建回歸模型或是分類模型效果均很差,因此說明用戶的最終滿意度較為主觀,目前所羅列的指標對其影響較小,不能通過此種方式來確定各指標的重要性權重。

圖6 回歸模型各指標與滿意度的相關性圖
對于異常點檢測模型,理論認為異常點為偏離于絕大多數數據的點,因此可將其認為是情緒較差的點,正常點認為是情緒較好的點。分別采用孤立森林和LOF算法進行分析,如圖7所示,分析中發現,模型識別出的部分異常點和業務角度認為的異常點相悖。下圖為需求提出環節和市場部增評環節基于孤立森林算法識別出的異常點,但結果中部分點與實際業務理解的異常點不太一致,且此種方式只能將情緒劃分為滿意和不滿意兩類,無法進行更細粒度的劃分。LOF效果與孤立森林方法類似,如圖8 所示。

圖7 孤立森林算法效果

圖8 LOF算法效果
本文提出了一種基于累積分布函數的滿意度測算模型,針對需求開發平臺的流程特性,將全流程進行環節劃分,在每個環節下獲取若干指標項,根據每個指標的分布函數,計算各指標下不同值所對應的情緒感知得分。對其中一些類別較為離散的指標,基于業務邏輯通過設置調節系數進行情緒感知值轉換。最后通過實驗證明了算法的有效性,成功地找到了系統中的不滿意環節,并與其他模型進行了對比,成功驗證了本文所提出模型的合理性和有效性。由此可推廣至其他系統,通過結合業務的環節劃分和相應的指標采集以及特征處理,可以用于尋找其系統和流程上不滿意的環節,并為系統改進找到方向。