敏捷項目的參與者一般可分為兩類角色:Pigs 角色與 Chickens 角色。其中:
- Pigs: 項目的實際參與者,必須直接對 Story 負責,必須在站立會中發言,說明完成的工作,將要的工作,遇到的困難等,即一般意義上的 Scrum 團隊;
- Chickens: 項目的外圍及外部成員,包括組織內各方面的領導、最終用戶以及項目的其他利益相關者,也包括某些參與項目實施但不用對 Story 負責任的外圍成員。
簡而言之,Pigs 必須直接對 Story 的進展、成敗、得失負責,Chickens 基本不用負責但卻可以對項目施加或造成影響。據說這樣命名的靈感來源于一個故事:
一只豬和一只雞走在路上。雞看著豬,說:“嘿,我們何不開一家餐館?” 豬回過頭來看著雞,說:“好主意,你要給它取個什么名字了?”雞想了想,說:“我們叫它‘火腿和雞蛋’吧。” “我認為不好,”豬說,“我得出命(豬肉做火腿),你只出蛋(雞下蛋)。”
2.1. Scrum 團隊(Pigs)
一個Scrum 團隊內一般包含三個角色:Scrum Master(SM,開發經理/實施經理)、Product Owner(PO,產品負責人)、Scrum Team(團隊)。
Scrum團隊是跨職能的自組織團隊。跨職能團隊擁有完成項目全部工作所需的全部技能,不需要依賴于團隊之外的人。自組織團隊通過內部的決策機制來自我選擇如何以最好的方式完成工作,而不是由團隊之外的人來指導。
Scrum 團隊迭代、增量式地交付已完成的產品,借此最大化地從用戶獲得需求范圍內的反饋,從而進行滾動式的需求細化,并努力避免后期返工。“已完成的產品”表明每次交付給用戶的產品必須是潛在可工作的,可以不完善、不細致但是至少必須是可以讓用戶上手體驗的。
2.1.1 Product Owner(產品負責人/產品經理)
產品負責人是負責管理產品需求,并將團隊開發的產品價值最大化的人。
產品的需求從始至終體現在待辦事項列表里,產品負責人是待辦事項列表的唯一負責人。產品負責人對代辦事項列表的管理包括:
- 清晰地表述產品待辦列表項;
- 對產品待辦列表項進行排序,使其最好地體現工作優先級、目標和使命;
- 優化開發團隊所執行工作的價值;
- 確保產品待辦列表對所有人是可見、透明和清晰的,同時顯示 Scrum 團隊下一步要做的工作;
- 確保開發團隊對產品待辦列表項有足夠深的了解。
產品負責人可以自行完成上述工作、與 Scrum Master 一起完成上述工作,甚或與整個開發團隊共同完成對 Product Backlog 的梳理,但是 PO 必須是 Product Backlog 的最終負責人。任何人想要修改Product Backlog,包括改變需求或優先級,必須經過 PO 來執行。沒有人可以強迫團隊按照另一套需求來工作。
2.1.2 Team(開發團隊)
開發團隊包含完成產品開發所需的各類專業人員,負責在每個Sprint 結束時交付潛在可發布并且“完成”的產品增量。開發團隊由組織組建并獲得授權,通過內部的敏捷決策機制(各種不同功能的會議)自己組織和管理開發工作。開發團隊具有以下特點:
- 他們是自組織的。沒有人(即使是 Scrum Master)有權告訴開發團隊應該如何把產品待辦列表變成潛在可發布的功能增量;
- 開發團隊是跨職能的團隊,團隊作為一個整體,擁有創建產品增量所需的全部技能;
- Scrum 不認可開發團隊成員的任何頭銜,不管其承擔何種工作,他們都叫開發人員;
- Scrum 不認可開發團隊中所謂的“子團隊”,無論其需要處理的領域是諸如測試、架構、運維或業務分析;
- 開發團隊中的每個成員也許有特長和專注的領域,但是責任屬于整個開發團隊。
開發團隊最佳規模是足夠小以保持敏捷性,同時足夠大可以在 Sprint 內完成重要的工作。少于 3 個人的開發團隊,成員之間沒有足夠的互動,因而生產力的增長不會很大。過小的團隊在 Sprint 中可能會遭遇到技能上的約束,進而導致開發團隊無法交付潛在可發布的產品增量。超過 9 人的團隊則需要過多的協調溝通工作。對經驗過程而言,大型開發團隊會產生太多的復雜性而變得無用。
產品負責人和 Scrum Master 角色不包含在開發團隊人數中。當然,Scrum Master 和 Product Owner 本身也可以從事開發工作,這個時候他們也是開發團隊的一員,就要處理好自己的角色關系 - 除了相應的 Scrum Master 或 Product Owner 的職責外,他們是團隊的普通一員,而非團隊的領導。
2.1.3 Scrum Master(開發經理/敏捷教練)
Scrum Master 負責保證所有人都能正確地理解并實施 Scrum,確保 Scrum 團隊遵循 Scrum 的理論、實踐和規則。SM 一般由組織任命,一名優秀的 SM 能夠同時受到團隊內成員(Pigs)的支持和外部利益攸關方(Chickens)的信任。對內,SM 充當團隊的服務型領導者和敏捷教練員;對外,SM 充當團隊與利益攸關者溝通的橋梁,幫助他們了解、理解與支持團隊工作,從而為團隊屏蔽外部干擾并消除障礙。
2.1.3.1 Scrum Master 服務于產品負責人
Scrum Master 以各種方式服務于產品負責人,包括:
- 確保 Scrum 團隊中的每個人都盡可能地理解目標、范圍和產品域;
- 找到有效管理產品待辦列表的技巧;
- 幫助 Scrum 團隊理解為何需要清晰且簡明的產品待辦列表項;
- 理解在經驗主義的環境中的產品規劃;
- 確保產品負責人懂得如何來安排產品待辦列表使其達到最大化價值;
- 理解并實踐敏捷性;
- 當被請求或需要時,引導 Scrum 事件。
2.1.3.2 Scrum Master 服務于開發團隊
Scrum Master 以各種方式服務于開發團隊,包括:
- 作為教練在自組織和跨職能方面給予開發團隊以指導;
- 幫助開發團隊創造高價值的產品;
- 移除開發團隊工作進展中的障礙;
- 按被請求或需要時,引導 Scrum 事件;以及,
- 在 Scrum 還未完全采納和理解的組織環境中,作為教練指導開發團隊。
2.1.3.3 Scrum Master 服務于組織
Scrum Master 以各種方式服務于組織,包括:
- 帶領并作為教練指導組織采納 Scrum;
- 在組織范圍內規劃 Scrum 的實施;
- 幫助員工和利益攸關者理解并實施 Scrum 和經驗導向的產品開發;
- 引發能夠提升 Scrum 團隊生產率的改變;
- 與其他 Scrum Master 一起工作,增強組織中 Scrum 應用的有效性。