敏捷開發: 每個人都必須成爲通才嗎?

傳統的開發團隊通常按角色就行分工, 開發人員只管開發, 測試人員只管測試, 在自己的職責之外的事, 要麼是看不見, 要麼是覺得不是我的活,我不用去管,做好做壞和我沒有關係。

而敏捷軟件開發恰恰相反, 更加強調“Whole Team”, 即整個團隊對外做出承諾, 團隊中的所有人對所有的開發,測試,文檔等任務附有責任。

如果不能按時交付高質量的軟件, 就是整個團隊的責任, 某一個Developer/Tester做的再好也不行。

這就要求團隊中的人能互相幫助, 正像華爲公司說的“敗則拼死相救, 勝則舉杯相慶”。 所以團隊中的人員最好具備多種技能,Developer能幫助測試,Tester能幫助寫點代碼, 寫點文檔...

這樣大量的任務就不會擠壓在某一個人身上,導致項目失敗。

這樣問題就來了: 團隊中每一個人都必須成爲通才嗎? 能成爲通才嗎。

最近看了Mike Cohn的一個ppt,其中的一個例子回答了這個問題, 覺得很精彩, 拿出來和大家分享:


Mike Cohn 用不同類型餐館的例子來表明了他的看法:

Meconi’s 是一家熟食店, 它有一個訂餐員(Order Taker)和很多三明治廚師(Sandwich-maker),  你要去吃午飯的話你覺得體驗如何? 我們會看到門外排了很長的隊伍 -- 因爲只有一個負責訂餐的, 她非常繁忙的記錄下所有這些訂單。 但是一旦下了訂單,老兄你估計很快就能吃到了,因爲會有9個人衝過來做三明治。  但是我可不想在門外排這麼長的隊伍, 等這麼久, 我們還是去 Bruno 家去看看吧

Bruno 恰恰想法, 它僱傭了9個訂餐員,而只有一個三明治廚師, 你的訂單很快會被處理, 很明顯你不得不等巨長的時間才能吃到。

Ferentino 家似乎有些獨特,四個訂餐員,四個廚師, 還有五個機動人員(Floater) ---- 即會訂餐,也會做三明治。當三明治訂單太多的時候, 他們會到後廚去幫忙---也許他們做的不能和廚師一樣快, 一樣好。 當顧客太多的時候,他們也會衝到前臺去幫忙處理訂單 -- 他們也許不能做的很完美, 但足夠好就行了。

很多餐廳都會明白了這一點: 保留機動人員是個好主意, 但是不是每個人都必須成爲Floater.

回到軟件行業, 爲什麼我們的敏捷團隊不這樣做呢: 讓一些專才具備多種技能, 不一定具備團隊所要求的所有技能, 只要這些人能平衡好Workload 就夠了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章