2015年1月15日 星期四

[Business]同儕檢查在開源環境中究竟有多強大

原文網址: http://opensource.com/business/14/12/importance-peer-review-code

程式碼檢查在專利軟體開發公司是非常常見的,而開源軟體則因為它的本身的特性使得將程式碼評估標準化變成一件很難以達到的事。因此,在開源社群中成功的產業領導者或專案經理常常使用同儕檢查的方法作為標準,藉以在開發循環中做到品質控管。
一個標準的開源同儕檢查過程從軟體作者將其程式碼和文件提交至他們的專案郵件列開始,接著其他貢獻者和專案管理者會開始檢查;在修改被接受或捨棄之前,潛在的問題和可以改進的地方會在社群中被提出來與作者討論。GitHub使用版本控制軟體Git來提供一個有效率的系統讓專案管理者可以監督原始碼同時依舊可以進行程式碼檢查。因為容易使用,GitHub已經變成了大家常用來進行版本控制和程式碼檢查的龍頭,2011年超過2,000,000儲存庫被上傳至該網站。
雖然有工具可以幫助開發者進行品管控制,但針對較小的專案的程式碼檢查技術則常常被忽略,導致混亂且未經檢查的修補程式被釋出,比較成熟開源專案比較不會有這種困擾,因為他們會提供開發者明確的準則。即使比較小的開發小組確實實施了軟體同儕檢查,其結果也很難統一,就像Peter Rigby在他的論文裡講到的,「開源軟體的同儕檢查: 參數、數據模型和理論」「我們發現開源軟體的同儕檢查是非同步進行的,那些被授權的專家只專注在那些在他們擅長領域中所發生的改變,檢查者針對那些小改變提供、定期的回饋,這些描述性的數據清楚地顯示出開源軟體的同儕檢查與傳統的檢查有著極大不同。」
證據顯示出,同儕檢查可能是最有效的找出軟體中缺陷的方式。在"Code Complete"這本書中,作者Steve McConnell說道,程式碼檢查在找出軟體缺陷的效率比起標準單位測試有效30%~35%,開源軟體開發提供給新加入專案的人們最大的好處就在於,對於還不太熟悉的開發者來說,程式碼檢查是一個可以讓開發者變得很有產力,同時也可以很快的讓自己融入這個社群的文化的簡單方法。這也讓一整組的工程師都可以很了解整個專案,但也不會讓社群的優先權減弱。
開源開發小組需要專注在增進他們同儕程式碼檢查的方法上或是開始將軟體評定程式公式化。幸運的是,我們可以取得很多文件來做這件事。內容跟軟體同儕檢查的重要性及改良有關的文章就是很好的資源,SmartBear Softwar寫的11 Best Practices for Peer Code Review就是一例,裡面簡單地介紹了軟體同儕檢查的基本原則,雖然裡面並沒有特別深入地去探討一些關於程式碼鑑定準則的細節,他確實列出了一些經驗法則,教導開發者如何朝向更簡潔而有用的程式碼檢查技巧邁進。
隨著開源軟體變得越來越可以成為專利軟體外的另一種選擇,我們更要去改良產品的開發熟練度,如此才能增加社群的可靠度。由採取更充足和標準化的同儕程式碼檢查技巧的團隊所做出來的軟體,可以得到對使用者更友善並且可靠的程式,花在確立一個標準化品管計畫的時間是值得的,因為它可以為我們帶來更精煉優美的產品。


沒有留言:

張貼留言