999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

羅盤研發效能評估系統設計與實現

2021-03-11 03:34:10鄭喆穎王歡唐飛程必偉申力
電子技術與軟件工程 2021年21期
關鍵詞:質量設計

鄭喆穎 王歡 唐飛 程必偉 申力

(1.東方證券股份有限公司 上海市 200010 2.南京航天數智科技有限公司 江蘇省南京市 210012)

科學技術的不斷進步和經濟的不斷發展促使全球化市場競爭日趨激烈,組織敏捷化成為企業最新發展方向。

軟件維護的不透明,我們軟件代碼當中存在很多質量問題;項目完成質量參差不齊;開發過程不透明,一個團隊和開發人員實際開發的效能,程序員的工作難以評價;軟件資產沒有得到有效的記錄,很多代碼難以理解,無法準確把握代碼意圖。如何度量一個研發組織的產品質量,一個項目的研發效能,如何客觀評價研發人員的工作完成質量,如何運用考核指標促成員工成長,達到考核的管理目標。

真正實現數據驅動的研發效能提升,不是對效能指標進行簡單的統計,更需要對研發活動建模,進而改進研發活動過程。

如上分析,以某公司信息技術研發部門為例,組織敏捷化進程可能使用的場景有:

(1)數字化實施:如何衡量各個二級部門、項目在研發數建設以及主航道工具的使用情況?

(2)橫向效能比較:如何跨二級部門、跨項目進行橫比較?衡量研發效能產出、資源投入?

(3)人員效能評估:如何跨項目、跨角色、跨編程語言,衡量研發人員效能?以及對優質供應商的評估?

(4)研發效能看板:如何實時度量當前研發現狀,包括人力、需求、缺陷、代碼、用例數據,通過數據指導改進?

1 效能評估模型設計

1.1 效能評估的意義

互聯網時代,軟件行業爆發式發展,用戶需求頻繁變更,企業組織成員協同更復雜,敏捷項目管理也越來越盛行,快速反應,鼓勵試錯和不停迭代,適應變化的輕量級敏捷開發管理日益被接受。敏捷組織中,知識工作的不確定性更高、組織成員相互協同更復雜。組織的效能評估和度量也更有挑戰和難度。這是一項有意義的工作:首先,讓目標更明確,對目標有共同的認識。其次,讓現狀更清晰,度量可以告訴我們現狀如何、效率如何、質量如何、流程如何以及問題所在。第三,讓改進更精準。

1.2 評估指標設計原則

評估度量系統中,指標是主觀事件客觀呈現的效果。數據指標是評估系統最直接的支撐,也是數字化的底層結構。總計業界經驗,我們認為進行指標設計時應遵從以下幾個原則:

(1)全局性。在敏捷交付過程中,包含很多關鍵路徑,項目管理、資源管理、研發管理、測試管理,交付管理、項目后評價,全局指標可以進行過程管理也可以進行結果回溯。

(2)細分性。以交付為例,項目經理負責管控整個交付流程,開發經理關注代碼提交質量,而部門負責人關注人力投入效率。整個交付階段的全局性指標應該分解到需求、開發、測試、發布、運維各個關鍵節點中。將主指標切成若干塊,這樣可以避免平均數陷阱和團隊的虛榮指標。如空間維度,區分部門、項目和個人不同考察指標,再如,通過年,季度和月長期時間維度度量組織的健康度。

(3)制衡性。需要用多個指標來互相制約以求得平衡。

(4)演進性。績效指標應該隨著組織的發展不斷調整。

1.3 康威定理

效能評估模型的設計,依據康威定律而來。

馬爾文·康威在1967年的論文中闡述了系統設計與組織架構的內在聯系,“設計系統的架構受制于產生這些設計的組織的溝通結構”。通俗的來講,產品必然是其(人員)組織溝通結構的縮影。溝通問題會帶來系統設計問題,進而影響整個研發組織的開發效率及最終產品結果。基于康威定理,設計組織的效能評估基準以推動組織的改進。

2 羅盤效能評估系統設計

2.1 評估模型設計

研發效能的模型設計,基于輸入、輸出、質量進行抽取,選擇最最關鍵指標:產出及質量作為核心指標,計算效能公式,如圖1所示。

圖1:研發效能模型設計

接著,模型設計從兩個維度出發,空間維度和時間維度。空間包括完成部門、項目、個人,三個層級顆粒度的效能評估模型,以支撐系統研發總部的管理顆粒度;時間維度包括年、季度、月的維度,查看各個空間維度的數據,較長時間段進行跟蹤。

第三步,進行模型設計。以項目評估為例,效能E=產出*產出權重R1+質量*質量權重R2。最終,針對項目維度細化后,其評估模型為,E =(I1*R1/B1+I2*R2/B2+I3*R3/B3+I4*R4/B4+I5*R5/B5 +(I6_MA3-I6)*R6/B6)/項目研發人力

同樣,按照角色,設計本系統的開發人員,測試人員及UED等人員的績效模型。

2.2 系統模塊設計

羅盤系研發效能評估系統按照DaaS 結構設計,平滑支持演進。其架構設計如圖2所示。

圖2:羅盤系統架構

2.2.1 配置管理模塊

建立部門、項目、人員的歸屬關系,建立項目與需求、代碼(分支)、用例、缺陷的對應關系,完成整個關系的建模及填報系統;

2.2.2 數據采集模塊

此模塊主要功能,建立JIRA、Git、ALM、人力投入等系統,完成量化數據的采集。

2.2.3 數據關聯及計算模塊

此模塊根據對應關系數據、工作產出數據,根據模型進行計算;

采集和計算模塊每天定時對組織代碼進行掃描,并采集前一天最新提交代碼,進行計算分析,繪制上升和下降趨勢圖形,對組織中某時間段內代碼質量進行統計,對開發人員每月增量代碼質量進行標準量化考核。支持C/C++ (works with C++14),Java,C# (C Sharp),JavaScript (With ES6 and JSX)等多種語言。

2.2.4 效能服務及展示模塊

此模塊根據業務場景及研發管理訴求,建立研發系統總部量化指標,從時間維度支持不同月份、多個月份的數據展示,從空間維度支持部門、項目層層下鉆展示;

(1)可以通過本模塊,由至上而下視角,分析哪個部門效能數據做得好還是待改進,然后下鉆到部門下面所有項目進行進一步分析,最終再到項目下各個研發人員效能進一步確認原因;

(2)按照研發人員角色建模,根據各個階段的產出及質量反饋綜合評分,給出排名;各角色按月度打分,客觀數據和主觀數據相結合,根據長期得分情況綜合確定該人員績效是否合格,可用于供應商人員考核、簽約、加薪等場景;

(3)根據人員角色定義職能;通過最新人力填報查詢,人員與業務線關聯關系,分析統計部門人員編程語言使用分布及提交情況,形象展示部門的人力報表,學歷、歲數分段、職能、代碼,服務的業務線等數據。

3 關鍵技術

3.1 代碼行計算

代碼行數需要比較兩次提交的增量代碼,變動場景判定:增加行,刪除行,修改行,新增文件,刪除文件,修改文件名,移動文件目錄,代碼中包含空行,注釋等非有效代碼,計算時會根據不同代碼語言進行過濾統計,考慮每種語言的特性,進行代碼行計算后,會通過語言比例因子換算,計算出標準代碼行。

執行過程

cloc gcc-5.2.0/gcc/c

3.2 圈復雜度計算

圈復雜度可以用來判斷軟件的復雜度,它可以用來衡量一個模塊判定結構的復雜程度,數量上表現為獨立現行路徑條數,也可理解為覆蓋所有的可能情況最少使用的測試用例數。圈復雜度大說明程序代碼的判斷邏輯復雜,可能質量低且難于測試和維護。程序的可能錯誤和高的圈復雜度有著很大關系。

3.2.1 評估項目圈復雜度

對于整個項目的代碼圈復雜度,我們建議使用函數平均圈復雜度,用于確定項目的整體復雜度。

示例:項目A 和項目B 均是Java 開發業務系統,項目A 的平均圈復雜度為2.3,項目B 的平均圈復雜度為6.1,則從數值上我們認為項目A 的代碼狀況相對較好一些。

3.2.2 評估個人圈復雜度

對于項目中的成員,我們就不能再將他的代碼質量用函數圈復雜度來衡量了,因為其可以增加一個函數、修改一個函數、刪除一個函數,因此我們更喜歡用每次提交的變動代碼的圈復雜度來衡量其代碼質量。

示例:某項目成員A,通過重構,將某文件的累計圈復雜度從100 降低為80,變動代碼為500 行,則本次代碼提交圈復雜度為-20,我們認為表現優良。

3.2.3 評估方法

工具lizard。

命令執行示例:

$ lizard -C 10000 -L 10000 -X /path/source

3.2.4 執行過程

執行圈復雜度掃描工具,結果保存為文件,文件名為“gerrit提交標識.ccn.xml”;

掃描xml 文件,將信息寫入數據庫。

3.3 重復度計算

重復度是一種代碼復雜度的衡量標準,用來表示程序的復雜度,它可以用來衡量一個模塊判定結構的復雜程度,數量上表現為獨立現行路徑條數,也可理解為覆蓋所有的可能情況最少使用的測試用例數。重復度大說明程序代碼的判斷邏輯復雜,可能質量低且難于測試和維護。程序的可能錯誤和高的重復度有著很大關系。

3.3.1 評估項目重復度

對于整個項目的代碼重復度,我們建議使用函數平均重復度,用于確定項目的整體復雜度。

示例:項目A 和項目B 均是Java 開發業務系統,項目A 的平均重復度為2.3,項目B 的平均重復度為6.1,則從數值上我們認為項目A 的代碼狀況相對較好一些。

3.3.2 評估個人重復度

對于項目中的成員,我們就不能再將他的代碼質量用函數重復度來衡量了,因為其可以增加一個函數、修改一個函數、刪除一個函數,因此我們更喜歡用每次提交的變動代碼的重復度來衡量其代碼質量。

示例:某項目成員A,通過重構,將某文件的累計重復度從100 降低為80,變動代碼為500 行,則本次代碼提交重復度為-20,我們認為表現優良。

3.3.3 評估方法

目前業界普遍使用的重復度評估工具是CPD。

命令執行示例:

$ ./run.sh cpd --minimum-tokens 100 --files /path/to/c/source

--language cpp --skip-duplicate-files --skip-lexical-errors --format xml

3.3.4 執行過程

針對每次提交,根據代碼掃描結果,確定新增代碼類型;

根據新增代碼類型,分別執行重復度掃描工具,結果保存為文件,文件名為“gerrit 提交標識.language.xml”;

掃描xml 文件,根據以下公式,將信息寫入數據庫;

重復代碼次數 = (duplication.lines>=10) && (COUNT(duplication/file) - 1)

4 結語

研發效能作為數字化企業的核心競爭力日益凸顯,真正實現數據驅動的研發效能提升,具有理論和實踐的雙重意義。發展和完善軟件系統評價技術具有廣闊前景。

本文所設計的羅盤效能評估系統在某公司研發部門上線后,運行良好。開發一部在用例、代碼、需求、缺陷等維度都表現優秀且均衡;開發五部目前用例數據沒有體現,其余部分都表現良好;開發六部和開發七部各項指標很均衡,長期視角看,其余部門數據應向六部和七部靠攏。

本文所設計的羅盤效能評估系統,以科學的度量模型,再運用高效率的呈現手段,從時間維度支持不同月份、多個月份的數據展示,從空間維度支持部門、項目展示。數據充實,跨項目、跨角色、跨編程語言,實現衡量不同角色的效能。以研發數據為基準,分析各研發部門的目標差距,以準確的研發度量數據,促進開發過程改進,優化產品質量管理。實施以來,羅盤系統為軟件組織提供持續改進方案方面取得了亮眼的成績。

猜你喜歡
質量設計
“質量”知識鞏固
質量守恒定律考什么
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
做夢導致睡眠質量差嗎
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
關于質量的快速Q&A
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
質量投訴超六成
汽車觀察(2016年3期)2016-02-28 13:16:26
主站蜘蛛池模板: 欧美精品在线视频观看| 久久九九热视频| 夜夜操狠狠操| 国产91小视频在线观看| 日本国产精品| vvvv98国产成人综合青青| 在线观看亚洲精品福利片| 欧美天天干| 日本精品一在线观看视频| 国产欧美日韩在线在线不卡视频| 在线视频一区二区三区不卡| 免费一看一级毛片| 国产三级a| 欧美色视频网站| 看国产毛片| 91成人免费观看| 亚洲人网站| 麻豆精品在线视频| 天堂网亚洲系列亚洲系列| 伊人福利视频| www欧美在线观看| 欧美在线天堂| 亚洲精品无码久久毛片波多野吉| 亚洲综合色婷婷中文字幕| 91久久偷偷做嫩草影院| 最新国产成人剧情在线播放| 成·人免费午夜无码视频在线观看 | 国产精品短篇二区| 亚洲中文字幕久久精品无码一区| 久久无码av三级| 亚洲制服丝袜第一页| 狼友视频一区二区三区| 亚洲激情99| 毛片在线播放网址| 日韩欧美中文| 国产91蝌蚪窝| 国产精品美女自慰喷水| 亚洲成肉网| 日韩欧美国产精品| 在线免费看黄的网站| 99久久免费精品特色大片| 啦啦啦网站在线观看a毛片| 99精品国产自在现线观看| 国产又粗又猛又爽| 欧美a级在线| 激情综合图区| 国产精品刺激对白在线| 久久久久中文字幕精品视频| 日本一区二区三区精品国产| 国产精品微拍| 五月综合色婷婷| www.99在线观看| 久久精品女人天堂aaa| 热九九精品| 亚洲国产欧美中日韩成人综合视频| 久久人午夜亚洲精品无码区| 亚洲永久色| 日韩国产欧美精品在线| 99在线观看视频免费| 波多野结衣中文字幕久久| 91久久精品日日躁夜夜躁欧美| 久久a级片| 国产成人精品视频一区二区电影| 日韩在线欧美在线| 亚洲浓毛av| 亚洲福利视频网址| 伊人久热这里只有精品视频99| 亚洲一区无码在线| jizz在线观看| 91久久国产综合精品女同我| 四虎国产永久在线观看| 国产精品国产三级国产专业不| 国产乱人伦偷精品视频AAA| 呦女亚洲一区精品| 99久久性生片| 国产91高清视频| 亚洲第一极品精品无码| 日韩人妻少妇一区二区| 91精品亚洲| 久久久久无码精品| 免费一看一级毛片| 日本在线欧美在线|