iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0

在團體變得很大時, 很多時間會發現彼此之間常常會有很多相依性. 很多人在想, 如果要進行大規模敏捷時, 是否能夠讓我們相依性變小, 這樣才能每個 Scrum 團隊能夠專心開發, 而不是浪費時間去和其他團隊討論.

首先, 讓我們來看看一個觀念: 反脆弱. 脆弱, 大家應該知道他是什麼意思, 就是不堅固. 那反脆弱呢? 有些人認為是堅固. 並不是, 堅固只是在比較沒那麼脆弱的狀態. 反脆弱的定義應該是:當暴露在波動、隨機、混亂和充滿壓力因子的環境中時,反而會受益、成長並茁壯的事物。例如: 人類的免疫系統, 免疫系統能讓我們從適當的壞事中獲益, 當身體恢復健康後, 讓我們能抵抗更多不利的環境因素.

因此, LeSS 的應對方式, 便是採取了反脆弱的想法. 不是去避免掉團隊之間的相依性, 而是適當地利用相依性, 讓團隊從此過程中成長, 讓團隊之後可以抵抗更多不利的環境因素.

以下是 Bas Vodde 在 Maximizing Dependencies with Interdependent Teams 演講中所提出的概念:

https://ithelp.ithome.com.tw/upload/images/20230927/201618096448OI6vdH.png
Pic source: https://less.works/less/structure/feature-teams

首先我們先釐清相依性的狀況. 這裡會有兩種相依狀況

(1) 非同步的相依

當某個團隊 1 和某個團隊 2 彼此有相依, 這個相依性發生在不同迭代, 導致這兩個團隊無法在同一個迭代中一起來處理, 這樣的相依性, 我們稱之為非同步相依

如上圖所示, 左邊 COMPONENT TEAMS 的部分, 對於 COMP A 團隊來說, 他是負責處理 COMPONENT A. 並且在這個迭代中, ITEM 1 對他來說是最先要處理的需求.

對於 COMP C 團隊來, ITEM 4 對他來說是最先要處理的需求. 但是因為 ITEM 4 會用到 COMPONENT A 和 C. 導致 COMP C 團隊需要和 COMP A 團隊合作.

但是 COMP A 團隊目前這個迭代正在忙於 ITEM 1, 他無法處理 ITEM 4 的事情. COMP C 團隊必須要等到之後才有機會完成 ITEM 4 的需求.

等到 COMP A 團隊有空, 回來要和 COMP C 團隊一起處理 ITEM4, 這時候可能換 COMP C 團隊忙於別的事情, 不見得就能跟 COMP A 團隊, 一起合作完成 ITEM 4 的需求

(2) 同步的相依

當某個團隊 1 和某個團隊 2 彼此有相依, 這個相依性發生在同一個迭代中, 這兩個團隊可以在同一個迭代中一起來處理, 這樣的相依性, 我們稱之為同步相依

人們對於是否有相依性不見得在意, 人們在意的是他們的工作無法進行, 這樣他們就無法有進展. 而非同步的相依, 會造成某個團隊想做時, 需要等到另一個團隊有空, 否則他們是無法去得進展. 因此這樣的相依性不被人們所喜愛. 這就是為什麼人們不喜歡相依性, 他們會希望每個團隊都是獨立沒有關係, 好讓他們的工作是可以有進展的.

但是同步的相依, 會造成團隊之間需要一起處理事情, 這樣的話, 會達到 LeSS 想要的效果. LeSS 希望大家可以略懂略懂, 而一起合作同一件事情, 便可以幫助雙方略懂略懂, 讓大家了解的範圍變大. 此外, 這樣也會讓工作比較有趣, 你不會老是都做同一種類型的事情, 你有機會嘗試新的東西, 並且與不同的人協作和學習.

LeSS 認為這兩種情況都會發生. 但是非同步相依發生時, 很難有好的解法, 雙方都會覺得被打擾. 因此, LeSS 想要在同步相依發生時, 好好利用它, 讓團隊從此過程中成長.

其實單一團隊的 Scrum, 內部也會遇到相同的狀況. 單一 Scrum 團隊中, 每個團隊成員也會有相依關係. 如果他們是不同時間有相依關係. 例如 成員 A 在迭代 3 要等 成員 B 跟他一起整合, 可是成員 B 在忙別的, 要到迭代 4 才有空. 但是 成員 A 在迭代 4 會有事忙, 不能在 迭代 4 去跟成員 B 去整合. 這樣的相依性就是非同步相依. 大家都不喜歡, 因為這樣的場景, 雙方進度都被阻礙, 都有人是覺得被打擾.

但如果是同步相依時, 這時候單一團隊的 Scrum, 團隊成員會進行搭檔編程 (pair programming) 和持續整合 (Continuous Integration). 這時候他們就不算是被打斷, 也不是在等待別人有空. 而是有相依的成員們, 可以一起協作, 工作共享, 一起相互學習.

所以在 LeSS 想要的相依性, 是指團隊或是成員之間, 在相同的時間內, 有共享的工作要處理. 他們會利用 搭檔編程 或 持續整合 之類的實踐, 讓雙方可以專注協作, 可以更即時給對方回饋. 他們會希望最大化這些類型的工作. 這樣團隊才能成長, 才能夠 1 + 1 > 2. 而不是只是一個個別的團隊和個人.


上一篇
Day 26完成的定義
下一篇
Day 28如何擴大學習 (1)
系列文
多團隊如何協作進行敏捷開發的利器 - Large Scale Scrum (LeSS)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言