敏捷認(rèn)為小團(tuán)隊(duì)的人數(shù)規(guī)模應(yīng)該是在魔法數(shù)字7上加減2。敏捷也推薦完整團(tuán)隊(duì)概念,就是說團(tuán)隊(duì)內(nèi)部要有足夠的技能以完成工作。因此,開發(fā)團(tuán)隊(duì)除了具備核心的開發(fā)技能,還要具有測試技能、數(shù)據(jù)庫技能、用戶界面技能。然而,很多組織仍然糾結(jié)于最佳的團(tuán)隊(duì)規(guī)模和有效的團(tuán)隊(duì)構(gòu)成。
Scott Ambler建議:根據(jù)項(xiàng)目需要,可以有敏捷小團(tuán)隊(duì)和敏捷大團(tuán)隊(duì)。小團(tuán)隊(duì)有標(biāo)準(zhǔn)的Scrum角色,比如scrum master、開發(fā)團(tuán)隊(duì)和產(chǎn)品負(fù)責(zé)人。小團(tuán)隊(duì)還可以使用支持隊(duì)伍,包括DBA、領(lǐng)域?qū)<液蜏y試人員這樣的技術(shù)專家。大型團(tuán)隊(duì)需要“團(tuán)隊(duì)的團(tuán)隊(duì)(team of teams)”這樣的方式。Scott認(rèn)為:
典型策略是:把多個相關(guān)小團(tuán)隊(duì)組織起來,形成更大規(guī)模的團(tuán)隊(duì),最有效的方式是圍繞著系統(tǒng)架構(gòu)的方式組織。每個子團(tuán)隊(duì)?wèi)?yīng)該負(fù)責(zé)一個或幾個子系統(tǒng),讓他們可以像小敏捷團(tuán)隊(duì)那樣,負(fù)責(zé)按時交付可工作的軟件。這個策略常被稱為“Conway法則”,因?yàn)槭荕elvin Conway在二十世紀(jì)六十年代后期提出來的,也是精益開發(fā)管理策略之一。
Steve Miller認(rèn)為:除了Scrum推薦的角色之外,要想讓團(tuán)隊(duì)做好質(zhì)量保證和文檔相關(guān)工作并不現(xiàn)實(shí)。他們改進(jìn)了團(tuán)隊(duì)構(gòu)成,增加了兩個角色。軟件質(zhì)量工程師負(fù)責(zé)一個sprint的產(chǎn)出的質(zhì)量,文檔專家負(fù)責(zé)創(chuàng)建用戶指南、管理員指南和培訓(xùn)材料。
同樣地,Michael F. Dwyer在回應(yīng)Scrum Development討論組中一個有關(guān)團(tuán)隊(duì)大小的討論時指出:
趁著Ron Jeffries還沒說,我先借用他那個著名的話“2+2=5,因?yàn)檫@兩個粗略的‘2’要比數(shù)字2更大一點(diǎn)?!眻F(tuán)隊(duì)規(guī)模可以是1個人這么小,也可以是500人這么大,完全基于你對團(tuán)隊(duì)的定義和成員的投入程度。
因此有一個共識:團(tuán)隊(duì)的規(guī)模和構(gòu)成要根據(jù)各個項(xiàng)目具體情況調(diào)整。然而,我們應(yīng)該如何評價(jià)我們的團(tuán)隊(duì)結(jié)構(gòu)是否最高效呢?
Mike Cohn建議回答下列9個問題,而且都能得到肯定回答,那就是一個結(jié)構(gòu)優(yōu)秀的團(tuán)隊(duì)。問題列表包括:
團(tuán)隊(duì)的結(jié)構(gòu)是否強(qiáng)調(diào)自身的長處,支撐短處,而且支持、激勵團(tuán)隊(duì)成員?團(tuán)隊(duì)某個成員的弱點(diǎn)應(yīng)該可以被其他成員的優(yōu)勢所補(bǔ)足。
團(tuán)隊(duì)結(jié)構(gòu)是否將必須同時屬于兩個團(tuán)隊(duì)的人員數(shù)目降到最低(而且避免有人同時屬于三個團(tuán)隊(duì))?試圖同時著手多個并行項(xiàng)目、或是多個任務(wù),都會損害進(jìn)度。
團(tuán)隊(duì)結(jié)構(gòu)是否能將團(tuán)隊(duì)保持在一起的時間延至最長?應(yīng)該更傾向于讓成員能夠在長期內(nèi)保持在一起的團(tuán)隊(duì)設(shè)計(jì),這能讓團(tuán)隊(duì)的感覺和聯(lián)系保持長久。
組件團(tuán)隊(duì)的結(jié)構(gòu)是不是只在有限而且易于處理的情況下使用?團(tuán)隊(duì)?wèi)?yīng)該是功能團(tuán)隊(duì),圍繞著端到端交付可工作功能的方式構(gòu)建。
是不是兩個pizza這樣的食物數(shù)量足夠多數(shù)團(tuán)隊(duì)食用?大多數(shù)設(shè)計(jì)良好的團(tuán)隊(duì)?wèi)?yīng)該有7±2個人。
團(tuán)隊(duì)結(jié)構(gòu)能夠?qū)F(tuán)隊(duì)之間的溝通路徑數(shù)目最小化?如果在待開發(fā)應(yīng)用中做一個小更改,就會帶來大量團(tuán)隊(duì)之間的溝通,那么就得好好看看團(tuán)隊(duì)結(jié)構(gòu)了。
現(xiàn)有結(jié)構(gòu)是否鼓勵團(tuán)隊(duì)溝通?如果換個結(jié)構(gòu),團(tuán)隊(duì)就不愿意這么做?高效的團(tuán)隊(duì)設(shè)計(jì)鼓勵團(tuán)隊(duì)或個人之間的溝通,可能他們本來不想這么做。
團(tuán)隊(duì)設(shè)計(jì)是否支持對于責(zé)任的明確理解?結(jié)構(gòu)應(yīng)該推進(jìn)共享所有權(quán)和共同成功的理念。
團(tuán)隊(duì)成員是否可以對團(tuán)隊(duì)設(shè)計(jì)提出建議?他們應(yīng)該感到這是他們構(gòu)建起來的團(tuán)隊(duì)。
在回答完上述問題后,您是否相信您有高效的團(tuán)隊(duì)架構(gòu)?為了讓敏捷的做法幫您實(shí)現(xiàn)高效團(tuán)隊(duì)架構(gòu),您過去采取了哪些必要措施?