2008年9月12日 星期五

[Agile Method] Pair-Programming

Pair-programming 顧名思義就是 pair-thinking 或是 pair-doing something

在台灣的公司,幾乎看不到這樣的情形,因為台灣的文化與思想都是一個人獨立思考、獨立作業。

但是,pair-programming 確實是有他的好處,當自己真的去實踐才會有體會!

在我的碩士生涯中,雖然只有短短的兩年,不過我已經自己接下兩個 CASE,一方面是為了賺取生活費,但是目的卻是在於學習。

CASE 通常都是一個人在自行開發的,我也不例外。我在實驗室中被分配到開發工業研究技術院(Industrial Technology Research Institute of Taiwan,以下簡稱 ITRI)的計畫,不過很特別的是我的指導教授 - 陳振炎教授,他特別提到說,我與我的開發夥伴 - Brian 必須一起作同一件事,也就是實行 pair-programming。

所謂的 pair-programming 就是我跟 Brian 要一起寫同一支程式,但不是各寫各的,是要一起寫,所以就是一個人負責 key-in codes 而另一個人負責檢查邏輯。現在市面的不論是付費或是免費的 IDE 都已經具備有程式 syntax 的檢查,但是邏輯的檢查卻是只能靠 programmer 自己去解決,而 pair-programming 就是在解決一個思考漏洞的問題。

實際上這很有趣,因為我們從來沒有這樣的經驗,不過我卻也深深地體會到,一個人的能力真的很有限!因為我跟 Brian 之間的實力在伯仲之間,所以我們的思考與想法都很接近,但是人與人之間一定會存有衝突!那怎麼辦?好在我們兩在進入碩士前就彼此認識,所以在溝通上我們都盡量以雙方意見的結合為最終的結果,所以一直到現在我們都很順利的在開發。

反觀我所接的 CASE,因為只有我一個人開發一個部份,所以所有的問題我只能自己想辦法自己解決,除非我真的想不出來,我才會去請教朋友。

但是問題出現在實際面上,一個企業不可能僱用兩個人去作同一件事,這對於台灣的企業來說是不符合成本的,所以現階段要讓 pair-programming 在台灣實現事很有困難的!

2 則留言:

涼鳥 提到...

沒人回ㄟ~~我回一下
我大學老闆跟我說大同公司有試過,不過玩不起來XD
我覺得還是各寫各的,但是每兩個人一起寫同質性程式,重點就是有問題有能討論,然後他懂你問題點在哪,不然我做eclipse plugin,沒人完全懂eclispe plugin就會有你說的問題~

剛好路過,進來虛心學習順便訂閱啦...期待更多好文,我是google我自己才發現的..囧

Silver Su 提到...

Pair-programming 不是隨便兩個人就可以去執行的,因為要彼此對同一個專案要有差不多的 domain knowledge 才行,不然就會造成雞同鴨講的情形!
所以要實現 pair-programming 必須是兩個人對同一個 domain 實力相當會比較可行。
目前就以我跟 Brian 就是最好的例子。