如果你理解了瀑布方法和敏捷方法是連續體,它們之間并沒有明顯的界限,那么你就能更成功地交付敏捷項目;而且,你能更成功地向你的同事介紹你所采用的項目管理方法的價值和原因,不管他們采用的是敏捷式方法還是瀑布式方法。
混合使用敏捷式與瀑布式方法
在本節中,我們要看一下,利用你對項目管理和產品管理的理解,結合你精心選取的管理方法,該如何在瀑布的背景下管理敏捷項目。
有些迭代或敏捷項目必須與瀑布式項目在企業中共存,這種現象并不稀奇??赡苁悄悴块T的項目正向敏捷轉型,而公司里的其他項目卻沒有。似乎這兩種項目不能很好地在企業中共存,實際上創造一種可行的并存模式并不太困難。為了與瀑布式項目團隊的成員和其他合作者更好地溝通,你需要弄清楚你實際上在使用哪種項目管理模型(迭代式或敏捷式),這有助于你制定清晰的溝通計劃。
圖 4 信封方法
當與沒有實行迭代或敏捷方法的部門溝通時,講清楚你的流程、程序和你對瀑布團隊的期望、他們對你的期望,是很重要的。
我在跟他們溝通時會使用一種我稱為“信封法”的方法(圖4)。信封法是在同一項目中整合瀑布和敏捷模式的一種框架。這個方法由一系列嵌套的隔層或信封組成,用信封來隔離開不同層間的內容。
項目經理可以使用這種方法來保護敏捷團隊,尤其是在迭代期間。在迭代結束前,任何事情都不應該干擾團隊創建可以運行的軟件。項目負責人可能要更改backlog,平臺服務組可能要修改環境。這時項目經理都應該不遺余力地來保護團隊,使他們能不受干擾地做他們最擅長的事。
第一個信封
最里面的信封是由敏捷團隊來執行的工作:軟件開發、單元測試、組件測試、集成測試和缺陷修正。敏捷團隊負責人(在Scrum中是Scrum Master或迭代經理)是第一位的問題解決者。敏捷團隊負責人要負責團隊內部的溝通、指導開發團隊、工作阻塞時幫忙區分團隊工作的優先級。通常,敏捷團隊負責人要負責團隊的健康和快樂。敏捷團隊負責人不能解決的問題會升級到項目經理那里。項目經理也像團隊的保護者一樣,會保護團隊正常工作、免受復雜的外部組織的干擾。為了達到這種微妙的平衡,敏捷團隊負責人和項目經理的工作關系要非常融洽才行。如果項目相對較小,那么敏捷團隊負責人和項目經理可能就是同一個人。不過我盡量避免這樣做,因為我認為敏捷團隊負責人是一個非常關鍵的角色,他必須獨立。這個角色可以由團隊中負責其他事情的人員兼任,但最好不是項目經理。
在多團隊項目中,敏捷團隊負責人和項目經理會組織一些會議,一起處理團隊的工作:
聯合的迭代計劃
迭代協調
聯合迭代演示
聯合回顧
聯合的迭代計劃——迭代計劃應盡可能由統一的團隊在同一天、同一個房間中做出。在撰寫本文時,我正在協助項目團隊準備迭代計劃會議,它由四個敏捷團隊、超過100人組成,其中包括項目發起人和外部(瀑布)成員。每隔一次迭代(兩周一個迭代),整個團隊(很多人距離很遠)會參加聯合的迭代計劃會議。會議需要8小時。前兩個小時是集體討論。每個項目團隊都會分享關于他們Sprint的主題,以及關于這個主題的目標。他們也討論所有識別出的跨團隊依賴關系。其他團隊可以對這個團隊自由提問,以找出所有潛在的包括資源或人員的跨團隊依賴關系。如果所有的團隊都分享過了,并且已經識別了所有的跨團隊依賴關系,這群人就在這個房間里分散成他們的小團隊,每個小團隊都有投影儀。而每個單周,人們不來現場,每個團隊就會召開電話會議。團隊開始分解他們在當前迭代中所選的工作。這是一個嘈雜卻高度協作的過程,一些人為團隊分享專業技能,非?;钴S。此外,當他們遇到跨團隊的工作任務時,他們會邀請涉及到的團隊來一起計劃如何開展工作。這天結束后團隊一起回來,并對迭代成果互相作出承諾。最后,在當天舉行簡短的回顧,以找出下次可以改進的地方。
迭代協同——在迭代期間,敏捷團隊負責人和項目經理可能會遇到許多需要跨團隊協作的問題。為促進跨團隊協作順利進行,我鼓勵團隊在迭代計劃會議上討論并確定下來他們將會與哪些團隊有協作需求:可能是由于共享了人員或資源(如服務器、共享的網絡服務、或其他的技術資源)而需要協作。鼓勵敏捷團隊負責人去參加其他團隊的關鍵迭代會議(如每日站立會議、同行評審等)。此外,項目經理和敏捷團隊負責人常常會一起討論已識別的跨項目依賴關系,以及敏捷團隊負責人通過參加其他團隊的關鍵迭代會議所了解到的其他新情況。項目經理參加這個會議是為了了解跨團隊的依賴關系,并確定項目團隊是否需要他們幫忙解決問題。
聯合迭代演示——在每次迭代結束時,團隊會向項目發起人演示可以工作的軟件。演示是由幾個團隊聯合起來做的。應該按照客戶在生產系統中所需遵循的流程來演示,這樣才有意義。即使流程需要在幾個團隊間流轉,也要按照系統的正常邏輯順序來確定迭代演示的順序。讓所有團隊參加系統全程完整的演示非常重要,因為軟件是所有團隊共同完成的,而且也是對大家工作成果的尊重。演示是慶祝迭代成功和認可你同事們工作的好時機。在迭代演示時,項目經理的主要職責是幫忙讓演示順利進行。這是項目經理當服務型領導的時候:如果投影儀壞了,或者電話會議時電話出問題了,項目經理要負責解決這些問題,以便讓團隊能專注于向發起人演示他們的成果。
聯合回顧——迭代結束后,每個團隊都要回顧他們的工作過程以便于以后工作的改進。這時項目經理和敏捷團隊負責人都可以當回顧會議的主持人。我發現讓敏捷團隊負責人當主持人是很有幫助的,因為在下次迭代中主要由他們負責幫助團隊進行改進。除了單個團隊的回顧外,整個團隊還應該參加聯合的回顧。雖然沒必要每次迭代都召開這樣的回顧會議,但是我建議至少每隔一個迭代要召開一次。聯合的回顧關注團隊內的協作情況,以及為了改善工作環境、提高工作效率、促進溝通和協作,團隊能做哪些改進工作。
第二個信封和第三個信封