概念: 團隊分工合作
本原則係說明如何促進有效的協同作業。
主要說明

簡介

本原則強調促進理想的專案全面溝通之重要性。要達成此目標,需編制合適的團隊組織,並開闢有效的合作環境。

      
好處
  • 團隊生產力
  • 有效串連商業需求及軟體系統的開發和運作
型樣
  1. 激勵人員發揮最佳表現
  2. 塑造自主管理團隊。
  3. 鼓勵跨業務(例如分析師、開發人員、測試人員)合作
  4. 提供有效合作環境
  5. 管理日益演進的構件及作業,在整合化的環境下增進合作、進度及品質
  6. 整合商業、軟體以及作業團隊
反型樣
  • 培訓願意連假日都超時加班工作的超級開發人員
  • 擁有極度專業的人才與強大工具來執行任務,但團隊成員彼此極少合作,且各項工具缺乏整合。假設若每個人都盡忠職守,將可望獲得良好的最終成果

討論 

軟體交由積極密切合作的優秀人才研發。許多複雜的系統都需要熟悉各種技能的關係人共同合作,且極大型的專案往往超越地域及時區的疆界,為開發流程又注入更多的複雜性。這就是敏捷式開發社群的癥結所在,問題常出在人事及合作方式上,即所謂軟體開發中的人為因素。遵循本原則時 需先考量許多問題,如: 

  • 如何激勵人員發揮最佳表現?
  • 如何讓並行配置的團隊與分散式軟體團隊相互合作?
  • 如何促使負責不同業務、軟體開發及 IT 運作的所有團隊協同作業?

要達成有效合作,第一步是激勵團隊中的每一份子發揮最佳表現。自主管理團隊的觀念已廣受敏捷式社群的支持(請參閱概念:敏捷式作法與 RUP),其觀念基礎在於指派團隊達成所應交付的任務,並授予 團隊決策權,針對直接影響結果的所有問題做出決定。唯有 人們覺得自己對最終成果擔負重責大任時,才有充分的動力漂亮達成任務。誠如敏捷宣言所述:「以士氣高昂的兵卒為本開發專案。給予他們所需的環境及支援,並相信他們必不負使命。」

第二步是鼓勵跨業務合作。如 Walker Royce 所言:「軟體開發是一種團隊運動。」反覆式的作法能增進團隊通力合作的必要性。我們須 打破分析師、開發人員及測試人員之間的藩籬,擴大這些角色的職責,使其快速融入大環境以確保有效合作。每一位成員都必須瞭解專案的任務及願景。

隨著團隊成長,我們須提供有效的合作環境。如此的環境才能促進自動化測量值收集與狀態報告作業,以及自動化建置管理及 配置管理全程記錄。此自動化效率將減少開會的必要,讓團隊成員有更多時間投入生產及創造性活動。這樣的環境也能簡化溝通,消弭各團隊成員時空上的隔閡,進而實現更有效率的協同作業。此種環境的形式不拘,例如共用的專案工作室,乃至於網路串聯 或 Web 型解決方案如 Wikis,或是整合化的開發環境與配置,以及變更管理環境等。

隨著軟體在核心商業流程中愈來愈重要,團隊分工合作的效率也愈來愈受到重視。 在大多數組織中,負責從事業務、開發應用程式及執行應用程式的團隊經常溝通不良。

在此原則下,我們的終極目標是達成業務、軟體及系統運作團隊之間的整合化運作。由於軟體對於企業營運的方式日趨舉足輕重,實有必要促成以下三方通力合作:1) 決定當前及未來營運方針的團隊;2) 開發及支援軟體系統的團隊;及 3) 執行 IT 系統運作的團隊。在不少企業中,這三方之間都缺乏溝通。