傳統的開發團隊通常按角色就行分工, 開發人員只管開發, 測試人員只管測試, 在自己的職責之外的事, 要麼是看不見, 要麼是覺得不是我的活,我不用去管,做好做壞和我沒有關係。
而敏捷軟體開發恰恰相反, 更加強調「whole team」, 即整個團隊對外做出承諾, 團隊中的所有人對所有的開發,測試,文件等任務附有責任。
如果不能按時交付高質量的軟體, 就是整個團隊的責任, 某乙個developer/tester做的再好也不行。
這就要求團隊中的人能互相幫助, 正像華為公司說的「敗則拼死相救, 勝則舉杯相慶」。 所以團隊中的人員最好具備多種技能,developer能幫助測試,tester能幫助寫點**, 寫點文件...
這樣大量的任務就不會擠壓在某乙個人身上,導致專案失敗。
這樣問題就來了: 團隊中每乙個人都必須成為通才嗎? 能成為通才嗎。
mike cohn 用不同型別餐館的例子來表明了他的看法:
meconi』s 是一家熟食店, 它有乙個訂餐員(order taker)和很多三明治廚師(sandwich-maker), 你要去吃午飯的話你覺得體驗如何? 我們會看到門外排了很長的隊伍 -- 因為只有乙個負責訂餐的, 她非常繁忙的記錄下所有這些訂單。 但是一旦下了訂單,老兄你估計很快就能吃到了,因為會有9個人衝過來做三明治。 但是我可不想在門外排這麼長的隊伍, 等這麼久, 我們還是去 bruno 家去看看吧
bruno 恰恰想法, 它僱傭了9個訂餐員,而只有乙個三明治廚師, 你的訂單很快會被處理, 很明顯你不得不等巨長的時間才能吃到。
ferentino 家似乎有些獨特,四個訂餐員,四個廚師, 還有五個機動人員(floater) ---- 即會訂餐,也會做三明治。當三明治訂單太多的時候, 他們會到後廚去幫忙---也許他們做的不能和廚師一樣快, 一樣好。 當顧客太多的時候,他們也會衝到前台去幫忙處理訂單 -- 他們也許不能做的很完美, 但足夠好就行了。
很多餐廳都會明白了這一點: 保留機動人員是個好主意, 但是不是每個人都必須成為floater.
回到軟體行業, 為什麼我們的敏捷團隊不這樣做呢: 讓一些專才具備多種技能, 不一定具備團隊所要求的所有技能, 只要這些人能平衡好workload 就夠了。
堅信每個人都能成為品牌
注 本文是 挨踢人物傳 第五期的撰稿 我在 駕馭你的 職場布朗運動 一文中就自己的學習方法和過去的職場故事做了階段性介紹,並總結了二十五條職場感悟。由於每個人都有屬於自己獨特的學習方法和成長故事,林林總總加起來使得我們能看到很多有異卻相似的內容。類似內容看多了,難免讓我們變得麻木,會覺得這些方法和成...
PDB檔案 每個開發人員都必須知道的
大部分的開發人員應該都知道pdb檔案是用來幫助軟體的除錯的。但是他究竟是如何工作的呢,我們可能並不熟悉。本文描述了pdb檔案的儲存和內容。同時還描 述了debugger如何找到binay相應的pdb檔案,以及debugger如何找到與binay對應的源 檔案。本文適用於所有的native和 mana...
PDB檔案 每個開發人員都必須知道的
pdb files what every developer must know pdb檔案 每個開發人員都必須知道的 一 什麼是pdb檔案 大部分的開發人員應該都知道pdb檔案是用來幫助軟體的除錯的。但是他究竟是如何工作的呢,我們可能並不熟悉。本文描述了pdb檔案的儲存和內容。同時還描 述了deb...