l

2015年7月14日 星期二

童子軍原則

July 13 14:40~15:30
螢幕截圖 2015-07-13 15.27.43

 

Bob大叔在《Clean Code》提到美國童子軍有一條簡單的規則:「離開營地前,讓營地比使用前更加乾淨。」應用在軟體開發上,每位開發人員應該讓程式碼每次check-in到版控系統之前,都比上次的品質要來的好。

Teddy沒有參加童子軍,原本對於這條原則並沒有特別的共鳴。前一陣子讀了《群的智慧》,書中提到智群的原則之一就是間接協同合作,並以非洲白蟻為例子,說明白蟻如何透過間接協同合作來建構與維持一個結構相當複雜的蟻窩。這讓Teddy想到XP的一條實務做法—Shared Code,再加上童子軍原則,可以讓敏捷開發團隊變成一個「智群(有智慧的群體)」。

***

套用Shared Code的概念,整個專案的codebase(程式碼)由團隊共同擁有,每個人只要看到不爽的地方都可以修改,讓它變得更好。就好像白蟻感受到蟻窩如果被破壞,基於簡單的規則,蟻群可以各自獨立但卻又很協調地一起修復蟻窩。如果所有團隊成員都遵守童子軍原則這個簡單的規則,可以確保codebase的品質不會隨著時間而衰敗,至少不會衰敗太快,甚至應該會變的越來越好。

聽起來好像很簡單,但難就難在白蟻的間接協同合作模式與能力,是經由演化而內建於DNA之中。但人類的團隊卻是後天組成,而且團隊成員的背景、程度、經驗、與認知各不相同。如果想要學習白蟻高效率地協同合作,需要團隊成員對於工作模式有共識,然後培養與訓練團隊成員具備撰寫clean code的能力,讓這種能力成為開發人員的DNA。如此一來,很多軟體開發所遭遇的問題,像是軟體變成硬體(沒人知道怎麼修改系統)、修改造成意料之外的錯誤、人員異動造成交接問題等,都可以大幅度的解決。

***

友藏內心獨白:好好的人為什麼要學白蟻哩XD。

沒有留言:

張貼留言