Project 🚩 跨職能團隊是什麼?

Jayden Lin
Nov 16 · 7 min read

筆者任職 Yahoo ,《軟體需求溝通 ─ 從外商公司學跨部門協作開發》線上課程講師,紛絲團《程式猿吃香蕉🍌》

跨職能團隊 (Cross functional team) 是軟體業近年來非常流行的組織形式,由 PM 與設計師和工程師等不同職能的人一起設計與開發軟體,團隊中甚至是能包括公司外部的人,聽起來很不可思議,不同職能的人怎麼一起工作?這是這篇文章所要討論的。

本篇內容:
✔ 為什麼會有跨職能團隊?
✔ 跨職能團隊的定義與特色
✔ 跨職能團隊和傳統職能分工的差異

▍為什麼會有跨職能團隊?

跨職能團隊的出現,跟軟體開發方式的改變有很大的關係。

因為要能夠快速地回應市場變化,軟體開發的方式改變了,人們開始以更短的週期來開發軟體,舉例來說:

  • Java 以往都是每兩年釋出新版本,在 2018 年改為每半年釋出新版本
  • Chrome 瀏覽器在 2021 年從每六週釋出新版本,改為每四週釋出新版本

以做網站為例,在過去的開發方式下,我們會先作完整的規劃,再以較長的週期進行開發 (如下圖的上方列所示),等到長長的周期 (黃色長箭頭所示) 結束之後,我們才會知道軟體的成果長什麼樣子,因為時間較長,所以當軟體釋出的時候,很有可能我們做出來的產品已經不符合市場的需要。

而跨職能團隊可以有效的減短週期,將開發的過程變成多個「短週期」(如上圖下方列所示) ,因為在跨職能團隊中 PM 、工程師 、 設計師是在同一個「團隊」,所以從設計、開發、部署都是可以在團隊內做決定,可以將對外部的依賴降到最小,因此有能力用短週期 (黃色短箭頭所示) 來釋出產品。

▍跨職能團隊的定義與特色

根據維基百科的定義,跨職能團隊是一群具有不同職能專長的人,共同完成一個目標,團隊中甚至能夠包含公司組織外部的人參與,以下為跨職能團隊的特色:

這並不是說所有人要會做所有事 (現實中也不可能),而是團隊的「技能總和」要能夠完成所有的事情。意思是說大家的技能可以截長補短,共同完成任務即可,而不要要求所有人都是超人去以一擋百。在這樣的定義下,如果外部廠商是專案的重要成員,也應該納入跨職能團隊當中。

這時候可能會有人好奇,一個產品的上線,有時候還需要法務部門跟客服部門的支援,那麼是不是也要把他們和執行專案的工程師一起納入團隊?

答案是:是的,如果專案的進行需要法務或是客服的支援,則需要事先預定他們的人力,把他們當作團隊的一份子,這裡講的團隊並不是要求大家要變更部門,或是説辦公室座位一定要坐在一起,這裡講的是要像團隊一般地工作 (Work as a Team),彼此目標一致、溝通無礙更重要。舉例來說,團隊中不應該出現這樣的對話:

📢 原來我們可以請法務部門對跟廠商談簽約噢?
📢 原來我們可以直接請客服幫忙處理帳號登入問題噢?

如果出現這樣子的對話,則代表團隊的溝通出現障礙,或是成員目標並沒有一致。

在實務上團隊組建的部分,可以根據互動的頻率,把跨職能團隊分為核心成員和輔助支援的角色,如下圖所示:

一方面將團隊的「技能總和」最大化,另一方面將人數控管在一定的數量之內以方便溝通。我實際參加過的跨職能團隊有包含 PM 、設計師和工程師的組合,也有參加過包含商業開發 (Business Development) 、客戶服務 (Customer Service) 、工程師、PM 的組合。

跨職能團隊會模糊彼此職能的界線,舉例來說:前端工程師可以去支援後端工程師的工作,工程師對於產品的想法也可以反饋給產品經理,所有人都具備有產品的所有權 (Ownership) 。這裡有一點必須說明:

互相支援並不是強迫團隊的成員去做不擅長的事

這裡提到的前端工程師「可以」去支援後端工程師的工作,但並不是強迫。當然,如果前端工程師「有意願」去做後端工程師的工作,但現實狀況是前端人力不足,所以不允許轉換工作,那也:

不該昧於現實團隊狀況,而強迫轉換工作

跨職能團隊的產生是為了讓產品能夠更快速地回應市場要求,因此大家可以互相支援,若無法做到而勉強去做,這樣反而本末倒置了。正確的做法是,當發現團隊成員無法互相支援時,可以安排教育訓練,設定目標一步步將團隊成員的能力強化。

將共同的目標納入績效評估對於跨職能團隊能否成功至關重要,否則便會出現各做各的情況。以下圖為例:假設一間廣告平台公司,目標為「增加廣告購買」,意思為希望有更多廣告主可以在平台上購買廣告,將這個目標拆解下來為「新增不同通路的廣告格式」,又可以拆解為「新通路的合約」、「新廣告格式購買」以及「新廣告格式報表」等等。

這時候我們的跨職能團隊就可以有:

  • 法務部門代表,負責合約的進度。
  • 工程師團隊 (前端、後端、 資料工程師) 負責新廣告格式開發以及報表開發。
  • 產品經理:負責規劃新廣告格式,以及驗證商業成果。
  • 設計師:負責設計新廣告格式的介面與購買流程。

這些團隊成員日常緊密地合作,有共同的目標,績效也是共同承擔。

▍跨職能團隊和傳統職能分工的差異

可能有些人會好奇,看起來跨職能團隊也是分工合作,那麼這跟傳統的職能分工有什麼差別?

傳統的職能分工有如接力賽(如下圖所示),PM 寫完規格之後,交由設計師設計流程與畫面,最後由工程師進行開發,這樣的軟體開發方式,很容易讓不同職能的人,只專注在自己的任務當中,忽略了整體目標。以接力賽的例子來說,就像跑完了自己的那一段之後,好像剩餘的路段就可以事不關己了。

在跨職能團隊的開發當中,更像是下圖英式橄欖球中的並列爭球 (Scrum),大家聚在一起出力,依照實際與對手對抗的狀況,在某些情況下你出多一點力,在某些情況下我出多一點力,彼此都看得到對方的目前的狀態 (看是不是有被對手突破),並且大家都有共同的目標 (爭球)。

就像跨職能團隊一樣,某些時候工程師以技術的觀點多出一點力,某些時候產品經理以產品的觀點多出一點力,彼此互相分享進度,並且共同的目標都是要把專案完成。

▍小結

以上是我對跨職能團隊的分享,希望對大家有幫助,下一篇文章會談到七個對跨職能團隊常見的誤解,敬請期待!

若是喜歡我分享的內容,歡迎幫我按個拍手,可拍 50下,給我一點鼓勵,或是加入我的粉絲團《程式猿吃香蕉🍌》,一起分享軟體知識與心得!

程式猿吃香蕉

喜歡將軟體知識以簡單生動的方式講給你聽

程式猿吃香蕉

『來點更營養的軟體知識,吃香蕉吧!』我們是一群軟體開發愛好者,喜歡將軟體知識以簡單生動的方式講給你聽,順口好消化,營養又健康!

Jayden Lin

Written by

Yahoo 擔任 Lead Engineer,負責廣告系統,帶團隊做跨國開發。也是《程式猿吃香蕉》團隊創辦人,喜歡將實用的軟體知識以簡單生動的方式講給大家聽 😄😄😄

程式猿吃香蕉

『來點更營養的軟體知識,吃香蕉吧!』我們是一群軟體開發愛好者,喜歡將軟體知識以簡單生動的方式講給你聽,順口好消化,營養又健康!