在執行 Scrum 時, 很多人在討論, Scrum 團隊中是否該有專職測試人員?
因為很多人會覺得 Scrum 團隊就應該全部都是開發人員, 不該有專職測試人員, 這樣就不敏捷了, 這樣就是 waterfall.
那到底怎樣的配置才是對的呢?
首先, 讓我們看看 Scrum Guide 怎麼說:
Scrum Teams 是跨職能(cross-functional)的,也就是說,成員們擁有在 Sprint 內創造價值所需的所有技能。他們也是自我管理(self-managing)的,也就是說,他們在團隊內部決定誰做什麼、何時做以及如何做。
所以他只說 Scrum team 要是 跨職能(cross-functional)的, 但是是不是有要專職測試人員, 他沒說.
但是這裡有個名詞: 跨職能(cross-functional). 這裡我們要同步一下, 讓我們看看 wiki 怎麼說
A cross-functional team, also known as a multidisciplinary team or interdisciplinary team,[1] is a group of people with different functional expertise working toward a common goal.[2] It may include people from finance, marketing, operations, and human resources departments. Typically, it includes employees from all levels of an organization. Members may also come from outside an organization (in particular, from suppliers, key customers, or consultants).
他只說要有不同職能專長的人, 但是也沒說專職測試人員不行.
所以從定義來說, 沒有哪裡說 Scrum Team 要不要有專職測試人員.
那為什麼大家常常會討論Scrum Team 要不要有專職測試人員 呢? 讓我大膽來猜測一下
(1) 測試人員何去何從
如果原先就有測試人員, 但是要跑 Scrum, 如果 Scrum 團隊不能有 測試人員, 那他們要去哪裡?
有些組織為了保留他們, 所以就繼續把他們留在團隊中.
有些組織雖然留下他們, 但是會跟他們說, 要自己去做轉型, 一段時間後可能就沒有這個角色
(2) 測試不夠, 品質不行
很多組織會想保留測試人員, 是因為他們不相信開發人員的測試.
因為根據他們的經驗, 開發人員大多沒有測試的知識, 所以會測不好. 這個是可以學的
另外一個比較難的是心態, 開發人員對測試的工作比較不重視, 或者不喜歡, 所以開發人員做起來效果就沒那麼好
(3) 迭代的時間不夠做測試
老實說, 迭代的時間並不長, 開發人員能把功能寫完就是謝天謝地了, 他能再多做些單元測試或是整合測試, 就可以說是超級工程師了.
可是測試只需要做單元測試或整合測試嗎? 當然不是, 有功能測試, 壓力測試, 安全測試, 回歸測試等等. 那些怎麼辦呢?
是可以排成 user story 去處理, 但是這也意味這個功能並沒有真正做完, 後面還有些測試的 story 要進行.
有些團隊為了達到形式上的敏捷, 就不做那些, 就直接交付, 就說他們很敏捷
有些團隊知道這樣不行會出事, 因此就保留專職測試人員, 去接著把後續的測試活動給做完, 所以有些成員就會覺得他們是 min watefall, 不敏捷
是不是哪些測試都要做呢? 確實可以根據產品所在階段來決定. 如果你是 1.0 的產品, 先去試水溫, 會比完美重要. 但如果你是公司 cash cow 的產品, 品質就不能掉以輕心. 這種取捨就是好的.
(4) 我們都是開發人員
我們都是開發人員出身, 沒有測試人員, 只好我們自己來做測試.
所以有些組織真的很認真把開發人員訓練得很好, 他們很會做測試, 很小心品質
而有些組織也不怎麼測試, 但是有錯來, 他們解的很快, 這樣可能也相安無事. 如果產品沒有太多人用的話
有些組織也沒太多測試, 他們心態上還是以開發人員自居, 覺得測試不是他們的事, 有 bug 再說. 當然這樣的 agile 就很恐怖了
因此, 可以肯定的是 Scrum 團隊沒有說不能有專職的測試人員.
至於要不要有測試人員, 就看你在不在乎品質, 或者你是有處理品質的方式, 還是你也不太 care 品質.
不要拿有專職的測試人員就是不敏捷來推託.
文章標籤
全站熱搜
留言列表