軟體同行評審

軟體開發裡的同行評審是評審工作產品(文件、程式碼等)的過程,是由作者的同事來進行評審,屬於軟體審查英语software review之一,其目的是要評估工作產品的技術內容以及品質。

目的

依照能力成熟度模型(CMM)所述,軟體同行評審的目的是提供「有紀律的工程實踐,在軟體製品中偵測並修正錯誤,並且避免這些疏漏進入實務產品的運作」。

若是配合软件开发过程活動進行,軟體同行評審可以識別一些在產品生命週期初期即可修正的問題[1]。也就是說,若是在需求分析活動時就識別到需求的問題,其修正成本會比在軟體架構或是軟體測試活動時才修正要來的低。

美國軟體品質實驗[2]評估同行評審的有效性,發現「花時間軟體檢查的回報很大,將成本減到原來的四分之一。」換句話說,若之後才識別問題並且修正問題,所花的時間會是此方式的四倍。

和其他軟體審查的差異

同行評審和軟體管理審查英语Software management review不同,後者由管理者進行,而且是為了管理以及控管的考量,不是為了技術上的評估。同行評審也和軟體稽核審查英语software audit review不同,後者是由專案外的成員進行,評估是否符合規格、標準、合約協議等。

審查流程

同行評審有許多不同的形式,有可能是非正式的活動,或是類似Walkthrough技術同行評審英语technical peer review軟體檢查的作法。針對後面三種,IEEE有定義正式的結構、角色以及流程[3]

一般來說,主管不會參與軟體同行評審,除非主管本身有相關的技術經驗,或者要評審的就是管理層級的文件,主管才會參與。

正式同行評審的程序(像是軟體檢查)會定義參與者特定的角色,進入評審及離開評審的品質準則,在同行評審程序中要確認的軟體度量

開源評審

自由软件社群中,在電腦軟體的發展及演進中,也有進行同行評審。此處的評審就像林纳斯定律所述的:「足夠多的眼睛,就可讓所有問題浮現」,也就是說「若有夠多的評審者,所有問題都很容易解決。」。埃里克·雷蒙所寫有關軟體開發同行評審的文章,很有影響力[4]

參考資料

  1. ^ Kolawa, Adam; Huizinga, Dorota. Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. 2007: 261 [2023-10-31]. ISBN 978-0-470-04212-0. (原始内容存档于2012-04-25). 
  2. ^ National Software Quality Experiment Resources and Results (PDF). [2023-11-01]. (原始内容存档 (PDF)于2012-08-03). 
  3. ^ IEEE Std. 1028-2008, "IEEE Standard for Software Reviews and Audits"
  4. ^ Eric S. Raymond. The Cathedral and the Bazaar.