自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

來聊一聊軟件開發(fā)中的同行評審

開發(fā) 開發(fā)工具
對于任何一個軟件公司來說,幾乎在所有的軟件項目中,都需要同行評審。如果能夠讓懂行的同事給參閱一下,并提出他們認(rèn)為正確的意見,那么勢必會彌補(bǔ)單個開發(fā)人員思維的缺陷,并在一定程度上提高程序和產(chǎn)品的質(zhì)量。

在《浪潮之巔》這本書中,吳軍老師描述了在Google早期的工作方式,其中有一段是這么寫的:我一般會在吃完晚飯后把代碼修改的清單發(fā)給克雷格做代碼審核,他一般晚上10點左右會回復(fù)我,給我修改意見,詳細(xì)到某一行多了一個空格。吳軍老師所描述的內(nèi)容,其實就是軟件開發(fā)過程中的同行評審流程。

對于同行評審,我有相當(dāng)?shù)捏w會。之前在某大公司工作的時候,我參與了多個軟件版本的維護(hù)工作,發(fā)現(xiàn)不同版本程序質(zhì)量差別很大。究竟是什么原因造成的?細(xì)究之后才發(fā)現(xiàn),程序質(zhì)量高的項目組在最終提交版本之前,無一例外都做了一件事情,那就是同行評審??磥?,同行評審真的是十分重要。

對于任何一個軟件公司來說,幾乎在所有的軟件項目中,都需要同行評審。一個人不管能力多強(qiáng),看問題的角度總會受到限制,寫出來的程序和文檔等也不會是十全十美的。如果能夠讓懂行的同事給參閱一下,并提出他們認(rèn)為正確的意見,那么勢必會彌補(bǔ)單個開發(fā)人員思維的缺陷,并在一定程度上提高程序和產(chǎn)品的質(zhì)量。

[[195355]]

什么是同行評審?

同行評審(Peer Review)是一種結(jié)構(gòu)化的正式評審,由生產(chǎn)者(作者)的同行,為識別異常和需要修改的部分而對工作產(chǎn)品進(jìn)行的有組織、有計劃的檢查。

同行評審并不是對個人的工作不信任,其目的是盡早有效地消除軟件產(chǎn)品中的異常。

為什么要做同行評審?

在學(xué)校的時候,老師教導(dǎo)我們要獨立完成作業(yè),因此,如果你在那個時候?qū)e人的作業(yè)或在考試過程中進(jìn)行“同行評審”,就是違規(guī)的。但軟件開發(fā)是一項團(tuán)隊性的工作,需要大家協(xié)作來完成,所以,那種不愿意公開自己工作成果接受他人審閱的做法是行不通的。

為什么要做同行評審?

第一,凡是人皆有出錯的時候,要保證你做出的東西錯誤盡量少,就需要他人對其進(jìn)行評審。這就是所謂的“三個臭皮匠,頂個諸葛亮。”

第二,對于軟件產(chǎn)品來說,缺陷發(fā)現(xiàn)得越早,糾正缺陷所需的費用就越少。因此,在軟件的開發(fā)階段,如果嚴(yán)格進(jìn)行同行評審,那么后續(xù)流程中出現(xiàn)的錯誤就會很少,這也可以為公司節(jié)約糾錯的成本。

第三,同行評審過程中發(fā)現(xiàn)的錯誤可作為案例傳承下去,避免開發(fā)人員再次掉進(jìn)同一個陷阱。“前事不忘,后事之師”,別人所犯的錯誤對自己有警示的作用。特別是對于新員工來說,經(jīng)常參與同行評審,可減少試錯的次數(shù),也能夠達(dá)到對新工作及早上手的目的。

同行評審的對象是什么?

在產(chǎn)品開發(fā)的各個階段中,需要參與同行評審的對象包括:

  • 概念階段:產(chǎn)品需求說明書等。
  • 計劃階段:系統(tǒng)方案、項目計劃等。
  • 開發(fā)階段:詳細(xì)設(shè)計、單元測試規(guī)程(方案)、集成測試規(guī)程(方案)、代碼、數(shù)據(jù)庫腳本等。一般而言,在開始編碼之前,先要進(jìn)行詳細(xì)設(shè)計評審,以確保程序流程的正確性,減少后續(xù)修改帶來的不良影響。
  • 驗證階段:系統(tǒng)測試計劃、系統(tǒng)測試規(guī)程(方案)等。

同行評審有哪幾種類型?

同行評審的類型包括:審查、走查、單人復(fù)審和多人復(fù)審等。

什么是審查?審查的角色都有哪些?審查的步驟有哪些?有效評審的原則有哪些?

審查是同行評審的一種,在軟件項目中占有重要地位。

1.審查的定義:審查(Inspection)是一種正規(guī)的同行評審,適用于重要性和重復(fù)性較高的軟件產(chǎn)品。

2.審查的角色:包括主持人、講解員、記錄員、作者和審查員。一般說來,參與審查的有3到7人。各角色的分工如下:

  • 主持人:需要具備領(lǐng)導(dǎo)技巧,負(fù)責(zé)管理審查過程,是審查流程中的關(guān)鍵角色。
  • 作者:提供審查材料,并提供概要介紹;此外,作者也可以充當(dāng)評審員。
  • 記錄員:按照主持人的示意記錄產(chǎn)品和程序等的異常,在記錄的同時要對異常進(jìn)行分類。
  • 講解員:充分理解審查材料,并在講解的同時加以解釋。該角色不能由作者擔(dān)當(dāng)。
  • 審查員:所有參與審查的人員都可以是審查員;主要負(fù)責(zé)理解被審材料、進(jìn)行個人檢查、做好準(zhǔn)備并參加審查會議。

3.審查活動的步驟有7個,如下圖所示:

4.有效評審的原則包括:

  • 第一,在預(yù)審期間要使用檢查單,檢查單用以記錄發(fā)現(xiàn)的缺陷。
  • 第二,避免過度依賴檢查單。
  • 第三,審查會議要限制在2小時之內(nèi),以避免長時間討論而偏離了審查會議的主題。
  • 第四,審查的對象是產(chǎn)品而非生產(chǎn)者(作者),因此要避免對作者本人進(jìn)行人身攻擊。
  • 第五,“磨刀不誤砍柴工”,要給評審員提供足夠的預(yù)審時間,一般以提前兩天為佳。
  • 第六,如果有與會人員未準(zhǔn)備好,則將會議延期;如果有人確實抽不出時間,則取消評審。

當(dāng)然,以上有效評審的原則很難同時滿足,各項目組要根據(jù)實際的情況來組織評審。

什么是代碼評審?其目的是什么?

對于軟件開發(fā)工程師來說,代碼評審是不可缺少的一個環(huán)節(jié),也是提高代碼質(zhì)量的一種有效的手段。

1.代碼評審的定義:代碼評審是一種正式的針對程序發(fā)起的一項同行評審活動,它由一組職責(zé)明確的主持人、作者、記錄員、審查員等人員通過一系列明確定義的過程對代碼進(jìn)行靜態(tài)檢查來發(fā)現(xiàn)代碼中的異常。

2.代碼評審的目的:提早發(fā)現(xiàn)代碼缺陷、去除缺陷,以降低開發(fā)成本并提高產(chǎn)品質(zhì)量。

如何徹底地執(zhí)行同行評審?

同行評審流程固然重要,但要徹底地執(zhí)行下去,需要做到以下幾點:

第一,公司要明確規(guī)定所有的軟件開發(fā)項目必須走同行評審的流程,并定期抽查同行評審的執(zhí)行情況。

第二,作者本人要持有開放心態(tài),愿意分享自己的工作成果,并勇于承認(rèn)自身的不足而加以改進(jìn)。很多人都不大樂意被別人指出自身的問題,而同行評審的目的就是要發(fā)現(xiàn)問題,因此,這在一定程度上是對作者心態(tài)的考驗。作者本人要明白是產(chǎn)品有缺陷,要對產(chǎn)品中的問題進(jìn)行完善。

第三,評審人員要對事不對人,要懂得同行評審是為了發(fā)現(xiàn)產(chǎn)品的缺陷,而非人自身的問題。不要將同行評審活動變性為針對作者本人的人身攻擊,這就有傷整個團(tuán)隊的凝聚力。同行評審的一個宗旨就是大家在一起學(xué)習(xí),取長補(bǔ)短,共同提高。

第四,公司要對同行評審的結(jié)果進(jìn)行總結(jié),并以文檔的形式保存起來,方便后期查閱。很多軟件產(chǎn)品出現(xiàn)的問題都是相似的。在著手開發(fā)產(chǎn)品之前,如果能夠了解前期類似產(chǎn)品中出現(xiàn)的問題,那么大家就可以少走很多彎路,工作效率和產(chǎn)品質(zhì)量也在無形中得到了提高。

總結(jié)

 

不管是成熟團(tuán)隊也好,創(chuàng)業(yè)團(tuán)隊也罷,為了確保軟件產(chǎn)品的質(zhì)量,所有的工作成果(包括程序、文檔、圖形等)都應(yīng)該接受同行評審。“三人行,則必有我?guī)?rdquo;,不管是老員工,還是新員工,都能夠從同行評審中受益。

【本文是51CTO專欄作者周兆熊的原創(chuàng)文章,作者微信公眾號:周氏邏輯(logiczhou)】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2021-06-30 07:19:35

微服務(wù)業(yè)務(wù)MySQL

2020-08-12 08:34:16

開發(fā)安全We

2021-04-28 08:35:52

區(qū)塊鏈技術(shù)開發(fā)

2023-03-03 12:37:50

JavaJVM內(nèi)存溢出

2019-12-02 16:23:03

Python編程語言“垃圾”回收

2022-08-30 07:39:57

C++namespace隔離

2020-12-11 11:11:44

原子類JavaCAS

2021-08-04 10:15:14

Go路徑語言

2023-07-25 15:06:39

2021-01-04 08:09:07

Linux內(nèi)核Watchdog

2024-10-16 15:11:58

消息隊列系統(tǒng)設(shè)計

2022-03-06 20:35:41

并發(fā)串行CAP

2023-07-06 13:56:14

微軟Skype

2022-11-09 08:05:15

JavaScriptsuper()

2019-12-12 14:52:10

數(shù)據(jù)庫腳本

2020-09-08 06:54:29

Java Gradle語言

2020-10-30 10:36:15

軟件系統(tǒng)熱力學(xué)

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON
點贊
收藏

51CTO技術(shù)棧公眾號