雙披薩團隊
2023 年 7 月 25 日
雙披薩團隊是一個小型團隊,完全支援特定業務功能的軟體。這個術語之所以流行,是因為它用來描述亞馬遜如何組織他們的軟體人員。
這個名稱暗示了這種團隊最明顯的特徵,那就是規模。這個名稱來自於一個原則,即團隊規模不應超過兩張披薩所能餵飽的人數。(不過我們這裡討論的是美式披薩,當我第一次在這裡遇到它們時,它們看起來大得驚人。)保持團隊規模小巧可以讓團隊保持凝聚力,形成緊密的合作關係。我通常聽說這意味著這樣的團隊大約有 5-8 人,儘管我的經驗表明上限大約在 15 人左右。
儘管這個名稱只關注規模,但團隊的重點同樣重要。雙披薩團隊應該具備向其使用者交付有價值軟體所需的所有能力,並將與其他團隊的交接和依賴降至最低。他們可以找出客戶的需求,並迅速將其轉化為可用的軟體,並隨著客戶需求的變化對軟體進行試驗和演進。
雙披薩團隊是 成果導向的,而不是 活動導向的。他們不是按照技能(資料庫、測試、運作)來組織的,而是承擔支援客戶所需的所有責任。這將客戶功能流動中的團隊間交接降至最低,讓他們能夠縮短週期時間(將功能構想轉化為在生產環境中執行的程式碼所需的時間)。這種成果導向也意味著他們會將程式碼部署到生產環境並在那裡監控其使用情況,並對任何生產中斷負責(通常意味著他們要負責下班時間的支援)——這是一個稱為「你建置它,你執行它」的原則。
專注於客戶需求意味著團隊是長期的,以業務能力為中心的團隊,只要該能力仍然有效,他們就會支援該能力。與專案導向團隊(在軟體「完成」時解散)不同,他們認為自己是 長壽產品的促成者和提升者。這個面向通常導致他們被稱為產品團隊。
雙披薩團隊支援其產品所需的廣泛技能和責任意味著,儘管這樣的團隊可以作為團隊組織的主要方法,但他們需要一個結構良好的軟體平台的支援。對於小型組織來說,這可以是一個商業平台,例如現代的雲端服務。較大的組織將建立自己的內部平台,讓他們的雙披薩團隊更容易合作,而不會造成困難的交接。團隊拓撲提供了一個很好的方法來思考支援雙披薩團隊所需的不同類型的團隊和互動(團隊拓撲稱它們為串流對齊團隊)。
對於以業務能力為中心的團隊來說,要發揮效用,他們需要善用彼此的能力。因此,團隊需要透過經過周密設計的 API,向同儕提供其能力。此類團隊提供服務給同儕的責任常常被忽略,如果沒有做到,將會導致僵化的資訊孤島。
像這樣以業務能力組織人員,會對組織軟體結構的方式產生深遠的影響,這是因為康威定律的影響。由雙披薩團隊建置的軟體元件需要與同儕有良好控制的互動,並在它們之間有明確的 API。這種思考方式導致了微服務的發展,但這並非唯一的方法,在單體執行時間中結構良好的元件通常是更好的途徑。