想必大家對靈活開發中的結對程式設計都有所了解,可在公司試用推廣時卻很容易遭到大多數同僚的反對,反對理由如下:1.長期的習慣導緻在有個人在旁邊監督你編寫代碼時很别扭;
2.靈活的結對程式設計要求兩個程式員最好能力水準相當?這個不好界定吧,另外每個人都有每個人的編碼習慣,大家也知道,做為程式員的我們往往比較固執,也比較愛布道,是以很容易産生各種實時沖突,影響開發效率;
3.也許兩個人會聊其他話題哦,比如這款智能機怎樣,那遊戲怎麼樣,哈哈,這種情況應該比較少吧。
其實我認為可以引入一種結對程式設計的變種,并不是嚴格按照靈活概念的那種結對。而是對大範圍的一個結對,比如說一個産品(在我們公司常常就有一個人開發一個産品的情況),一個子系統,一個核心功能的結對,不是針對編碼的結對,恰恰,編碼要分開!我覺得這種結對的精髓就是,對核心功能的設計兩個人都去參與研究和設計,然後綜合二人的方案送出給部門一個評審方案,因為一個人研究一個核心功能難免會有思維局限,要麼就是陷入誤區後無法很快找到熟悉此功能的人一起探讨。而結對程式設計在某種程度上規避了此種風險的發生,子系統的設計開發和産品的設計開發同理。注意,有一點,編碼上一定要嚴格分開,兩人不能有功能和代碼上的交叉重疊。代碼完成後,代碼評審也在兩人間進行。
我覺得采用以上結對程式設計,相比傳統的靈活結對程式設計有以下幾個好處:
1.沒人監視程式設計了,很舒服,自主;
2.水準不相當也沒關系,把簡單功能分給水準稍低的;
3.功能的分解由兩個人同時寫代碼完成肯定比隻有一個人寫代碼快;
4.品質?沒關系,有代碼評審呢;
5.沖突,至少實時的沖突沒有了,兩個人可以在代碼評審時互相學習,集中解決沖突。