專案總結 結對程式設計

2021-03-31 11:21:31 字數 3930 閱讀 2299

在專案中,我們實行了結對程式設計,獲得了一定的成功:

1、職業態度有很好的改進。由於缺少了單人獨處的環境,兩個人的合作更專注於工作,職業態度是程式設計人員的首要精神,對**的質量起關鍵作用。員工聊

**的、看新聞的、不務專業的、工作義務式的現象沒有了。取而代之的是工作變的積極,學習也熱情了,並且充滿成就感。如果有很好的企業文化來配合,例如進行一些合作性的運動,足球,籃球等,更能促進職業態度改進,達到以團體帶動個體的效果。 2、

1+

1>2

。結對程式設計,在每一時刻都是乙個程式設計師在程式設計,說效率如何高,也只是

1+1>1

,但是否大於

2呢?答案是肯定的。首先,乙個人的程式設計,平均很難實現

1>80%×1

的工作效力。但是在和同伴一起工作時,必須保持思維一直高度集中,所以平均都可以達到

1>80%×1

的個人效力,同時

有了一遍**評審,使得出錯機率就降低,減少了

bug的產生。也由於兩個人的思想匯集,能創造了很多新程式設計演算法或結構重用等。所以著眼於整個專案來看,這個實踐確實大大提高了效率。

3、軟體質量有明顯的改進。 1)

**的壞味道減少。首先是對編碼的規範的遵守。結對程式設計改掉了一些人的編碼的壞習慣(例如:不注釋),也同時融合了每個人的程式設計優點。其次,**的層次,和語法變得優美了。一些不耐煩的**沒有了,一些重複出現的**沒有了,改重用的**重用了,改重構的**重構了。 2)

程式執行效力提高了。結對程式設計是兩個人的腦力勞動,可以相互學習,相互研究,所以我們在一起,常常會去試驗新的編碼方式,以尋找最好的方法。而且有什麼想法通過交流後兩個人都覺得可行,就可以寫出測試用例,再來寫出實現;所以不論在解決問題的時間和方法上,都比以前做得更快更好。 3)

減少了bug

的產生。

bug的產生首先在於理解上,兩人程式設計,需要兩人去理解,同時兩個人要經過討論,形成一致思想,才可以程式設計,使得在理解錯誤的風險上減少。其次兩人程式設計就等於已經有了一遍**評審,出錯機率降低了很多。所以結對程式設計能有效的減少了

bug的產生。

當然,在結對程式設計的過程中,也遇到了一些困難

1、如何將結對程式設計有效的融合到開發流程中

我們團隊加上專案經理和美工,一共

6人,可以有

2組配對(不包括經理,美工)。開發流程如下:

開發階段

描述需求

蒐集需求,使用者用例建模。

分析功能分析,將系統分解成模組,並定義模組的功能;進行系統用例建模。

設計結構設計,介面設計,資料庫設計

編碼編寫程式。包括了白盒測試**的編寫

測試整合,功能,黑盒測試。

那麼如何進行結對開發呢,在那些流程中結隊開發呢?

1)我們進行以模組為單位,即是一組人負責乙個模組的設計,和編碼 2)

盡量將性格融合的,技術互補的配對。並且在不同階段,有針對性的組合,可以起到很好的作用。比如,乙個嚴謹,謹慎的人,配上乙個喜歡創新的人。 3)

兩人中,地位是平等的,只有經驗多寡之分,沒有地位高低之分 4)

工作時,兩人必須使用一台電腦,一天中必須要有大於

4小時的合作時間,即是要最少共同工作半天。 5)

將專案中的難點

,分配給搭配默契並且經驗豐富的組去負責。 6)

分析設計時,由兩人討論通過並簽名。(在專案討論會上必須由兩人講解) 7)

編碼前,兩人必須有達成共同的思想 8)

編碼時先寫測試,再寫實現 9)

任務出錯或不能完成,應由雙方共同負責,不能相互指責

10)

兩人意見不同時,可由上司幫助解決,最好不要各執己見

11)

每次測試時,從新組合配對人員,但不能由設計編碼的人負責測試自己編寫的模組但可以寫測試文件。

12)

上司多點鼓勵,結對人員相互鼓勵,可以產生共同的榮譽感,責任感。

這是我們專案配對的情況模組1

模組2模組3

……設計

張三,李四

王五,吳六

張三,李四

……

編碼張三,李四

王五,吳六

張三,李四

……

第一次測試

張三,王五

李四,吳六

李四,吳六

……

第二次測試

(回歸測試

)

王五,吳六

張三,李四

王五,吳六

……

專案完成後,統計了結對程式設計與沒有結對程式設計的資料對比。

結對程式設計

沒有使用結對程式設計a專案

b專案

設計

兩人4.28天/模組 (共2組15天7模組)

一人4.17天/模組 (共2人25天12模組)

編碼

17.00k/兩人/天(1088k/2組/32天)

8.16

k/人/天(1372k/4人/42天)

bug數13個

61個

測試天數

6天 19天

回歸次數

2次 3次

合計

53天 86天

注:a

專案與b

專案在規模上和複雜度上相差不大。

對上表進行分析得到以下結論

1)設計階段,結對程式設計比沒有使用結對程式設計慢。因為,兩人的討論更多,想法更多,方案也更多,設計的也更加全面。儘管慢,但是效果和質量明顯比沒有使用結對程式設計的***。 2)

編碼階段,

結對程式設計比沒有使用結對程式設計快。我想主要體現在兩人可以保持思維一直高度集中,和對遇到問題解決的速度上。並且是乙個逐漸融合的過程,兩人融合的快,編碼的速度也快。

3)測試階段,

結對程式設計比沒有使用結對程式設計快。從

bug數可以肯定,結對程式設計對軟體質量有所提高。在測試時間上也縮短,得益於

bug數的減少,修改時間減少和回歸的次數減少。 2、

結對程式設計中兩人不合作問題。

在開始運作結對程式設計上,這個問題特別煩人。在新人中倒是很好解決,在公司呆的久的員工反成了問題。習慣了單打獨鬥的,旁邊有乙個人總是顯的不習慣。還有,在性格上不是問題,大家都是一定文化層次的人,很容易融合。但是在生活上,反成了問題,比如一些壞習慣,個性等。我進行如下的解決方法

1)營造團結,和諧,活躍的環境,讓大家多點自我表現的機會,使大家充滿自信,勇於發言,勇於表達自己的意見。 2)

多進行團體活動,下班打籃球,週末有空去一起喝茶聊天(從來沒有加班)。做集體運動,使其有共同目標,還相互理解,拉進距離。聊天可以輕鬆玩笑的指出一些人的壞習慣。 3)

多多對小組鼓勵獎勵,使他們有共同榮譽感,責任心。 4)

實在不行,就趕人吧!(我沒有用過)。 3、

結對程式設計中兩人程式設計水平問題。

這是很多人提問最多的問題,我很牛,也要結對嗎?又或者我是新手,可以結對嗎?其實結對程式設計的內涵為一種共享;一種技術,經驗,知識的共享。通過共同商討、解決問題,來提高溝通,交流,來降低誤解和疏遠。所以這不是問題,問題的本身在於共享精神,要求大家沒有私心,要求大家互相幫助。不管菜鳥與菜鳥,或者老鳥與菜鳥,老鳥與老鳥的結對,都不會有問題。儘管兩人程式設計水平問題有所差異,那也是工作的方式不同罷了,專家級的兩個人,更多的是創新,一老一小,更多的是教育,兩個菜鳥那就是更多是在唱歌,就像過河的小馬。

最後,談談公司文化對結對程式設計的影響。首先要明白,不是什麼公司都可以進行結對程式設計。結對程式設計是

xp的核心實踐之一,

但很多人執懷疑態度和觀望態度。我覺得軟體

公司的企業文化對是否能成功執行結對程式設計是乙個關鍵因素。如果下面三個問題都回答是,你可以試試實施結對程式設計。 1、

是否有乙個可以能暢所欲言的,和諧平等的,相對民主的環境? 2、

是否有一種相互交流,相互研究,共享**,共享知識的氛圍? 3、

是否致力於一種共同成長,開放共享的學習型組織?

結對程式設計專案總結

結對程式設計的優點 最直接的一點 在結對程式設計中,由於有另乙個人在你身邊和你配合完成同樣一件事情的,所以相對來說你不好意思糊弄,不好意思開小差,更加自覺。結對程式設計的時候兩個人互相審查對方程式設計時的小錯誤,相當於隨時隨地地審查 減少錯誤出現的機率。結對程式設計的缺點 結對程式設計成員並不總在一...

結對 結對程式設計專案作業名稱 結對專案總結

這個學期的軟體工程的結對是做乙個專案,因為自己對於其他程式語言對h5稍稍有些自信,所以選擇了五子棋遊戲來開發,經歷了有歡笑又謎團,這個 簡易 對我和金鵬而言並不簡單 的五子棋終於開發完成。開發過程中,居然其他顏色的棋子能覆蓋上!這個就想了一周。由於我自己的能力有限,反覆翻了很多網頁去學習,所以我和金...

《結對 結對程式設計專案作業名稱 結對專案總結》

結對人員 張鴻程,喻正博 需求分析 通過遊戲開發,益智遊戲屬於休閒類遊戲,具有上手快 遊戲時間短的特點,更利於使用者進行 放鬆休閒,為人們所喜愛,特別是益智類遊戲,方便 快捷 操作簡單,在休閒娛樂中佔主要 位置。貪吃蛇作為中國自古以來的經典小遊戲之一,一直都是人之間的較量,將貪吃蛇製作成遊戲,可以實...