IT餐館—第二十五回 結對

weixin_34377065發表於2009-11-16

    週五開會時,有人提出在團隊中採用結對開發的Agile實踐。 

    當然團隊裡有人說,如果讓新手與水平高的人結對,基本上就是知識的單向傳遞了,對於新手來說的確是個不錯的學習機會,但對於水平高的開發者,就未必不樂意了。不過雨辰心裡想,這樣還有一方受益,就是公司,因為公司巴不得每個新人都能在最短的時間內變成‘高手’,這樣就可以用比高手低的多的工資來獲取高質量的程式碼。 

    會後,雨辰在MSN上遇到了老杜,說了這樣開會的事,並把自己的想法告之了老杜。

    老杜在MSN上發了個笑臉,回覆:“結對無外乎如下幾種情況” 

    雨辰說:“洗耳恭聽:)” 

    老杜回覆:“情況1就是你之前說的那種老手帶新手的情況, 對於那些願意將自己所學所知分享給別人的高手,是不太在乎自己的知識被學去的,必定幹這一行,不管新人老人都要不斷學習充電,老人雖然把知識傳授了出去,但也在不斷學習新的知識。所以就應該讓知識像血液一樣不斷迴圈。同時老人還可以通過結對,梳理並鞏固自己的知識基礎,同時鍛鍊表達能力。” 

    雨辰回覆:“這一點我倒是滿贊同的,的確與水平低的結對,成為了一種灌輸。雖然感覺沒有了那種思想激盪的刺激,但可以藉此來條理一下自己的思維,鍛鍊一下表達能力。稍待腳給公司培訓一下人才。不過這個要建立在老手和新手溝通的情況,如果新手是個滿不在乎或頭腦犯暈的‘絕緣體’,那就鬱悶了。有時對於高手來說,與水平低的人結對,與其說是合作,還不如就是一種干擾,因為開發是一個腦力高度集中的工作,當開發者全力解決問題時,即使是一個電話或一些旁邊同事的笑聲都會打斷自己的思維,等接完電話或周圍同事安靜下來時,靈光一閃的IDEA可能早已不知去向了,當然這種情況一般發生的概率不是很高,但一旦與水平低又總愛嘮叨的人結對之後,其發生的概率會大大增加,特別是你正在思考解決方案時,他連珠炮似的問題或突發奇想,會讓你正高速運轉著的大腦‘短路’,等你與他解釋完之後,要找到剛被打斷的思路很是費神。 有時真想直接對他說‘你先閉嘴,你的話對我的思路是一種干擾。一會我讓你問時,你再問’。” 

    老杜又發了個笑臉,接著回覆:“看來你也被這樣的人搞過了,不過除了上面的高手與新手結對,還有水平相當的開發者結對,可能是一個不錯的選擇,而且兩個人的溝通可能進一步加深對業務和設計的理解。不過也有一些意外情況,就是如果兩個或其中一個人剛愎自用,聽不進去對方的話,那就熱鬧了,吵來吵去,吵個大西瓜呀。最後還要上面發話來拍板!” 

    老杜接著回覆:“另外還有就是太熟悉的人結對,這種情況有時是好事也是壞事。好事是溝通起來比較方便,必定大家都熟悉,有時幾個字就可以把要表達的說明,必定大家知根知底,誰會什麼都心知肚名。但問題可能也就出在了這裡,結對開發可以避免讓個體思想走私兒,或做與工作無關的事情時會有所顧及。但兩個人過於熟悉時,這種結對的好處就要降低了。我之前就看過兩個結對的開發者表面上結對,卻在加班時結對上網去看好玩的新聞和大片,呵呵。到那時就成了‘av集體研討會’了。不過這就帶出了另一種情況,就是加班時適不適合搞‘結對’。我個人認為加班只有在需要的時候才加班,絕不能為了加班而加班,否則即便是通過結對,也只是讓兩個人一起看與工作無關的話題,除了浪費公司的電和機器就真沒什麼了。所以這時我一段是給他們的工作新增了工作程式中,限定他們加班時要解決的問題,基本上與正常上班時沒什麼區別!” 

    雨辰回覆:“如果兩個人不熟悉的話,結對是什麼樣子呢!” 

    老杜接著回覆:“那就根不熟悉的大齡男女談戀愛一樣,相敬如賓。其實這時公司就成了一個婚姻介紹所一樣,讓不熟悉的員工通過結對變的熟悉。結對的雙方通過開發互相瞭解,雙方的工作效率就會從低到高,成為好友(就像夫妻那樣),呵呵。” 

    雨辰回覆:“你都想到婚姻這回事了,也夠俗的了,呵呵。” 

    老杜接著回覆:“也這也叫俗,呵呵。好吧,就算俗吧,不過郭德綱說的好‘人不三俗枉少年’!” 

    一向不怎麼聽郭德綱的段子的人忽然冒出了這一句,讓雨辰哈哈一笑,心領神會的回覆了個笑臉,開玩笑回覆說:“你這還少年吧,都快年紀一大把了吧,呵呵”。 

    老杜話風一轉,回覆:“其時有時候水平低的兩人結對開發,比水平高的討論還熱鬧。因為他們涉世未深,更容易自以為是。稍有積累就對自己的想法和經驗深信不疑,不過這時倒不用經理出面,只要找個老手應該就能擺平。所以有時還要找一個水平更高的開發者在關鍵時候加入流程。” 

    雨辰看之後,倒是部分贊同老杜的觀點,只不過雨辰倒是看過兩個水平高的開發者討論時不歡而散的,不過雨辰又回覆:“兩個結對,至少要有人懂業務。否則當業務複雜時,很容易走火入魔。所以結對多數應該是‘新老配’,讓熟悉技術和業務的老手指點新手一同工作。” 

    老杜在那頭髮了個笑臉表情,回覆:“最好的情況就是當兩個人水平高又理解行業業務的話,其效率會最高,也越不易出錯。不過基本上我這邊還真沒出現過這種情況,有時水平高的開發者更容易被現有的知識框架體系所左右。所以無論什麼樣的人結對,都要有open的觀念,善於消化吸收別人的觀點。我關注結對是看重結對時兩人的討論過程,其討論甚至爭論無非就是對業務深入理解的過程。同時對顯示器裡一行一行的程式碼加深理解、調優,提升可讀性可擴充套件性健壯性的過程。另外就是這也是確保了CodeReview的質量。必定這是兩個人共同稽核的結果!” 

    雨辰笑著回覆:“其實我們們說來說去,結對應該是個對大家都有好處的,開發者之前互相熟悉學習,對於公司來言,也避免了重要的知識只放在一個人的頭腦子,如同雞蛋放入一個藍子中一樣。” 

    老杜會意的回覆:“必定這年月除了錢之外,信得過的東西越來越少了。” 

    因為是肺腑之言,雨辰倒也不便多說了,無奈地回覆:“你看你說的這叫什麼話,哎” 

    由於工作比較忙,沒多聊幾句之後就此下線了......

相關文章