“管理五字法”打造高績效團隊
【摘要】某大型國企資訊化專案平臺採用業內先進的微服務開發架構。根據“先試點,後推廣”的實施策略,選取各方面相對成熟的模組進行微服務試點探索,取得了“從0到1”的開創性成果,為平臺的最終實現提供了有力保障。
本文作者作為試點團隊負責人,發揮自身人力資源管理優勢,與微服務新技術、產品型專案管理有機結合,大膽創新,通過實踐總結,形成了獨具特點、具有推廣價值的激發小微技術團隊高績效的管理方法-“小、快、通、產、學” 管理五字法 。
隨著網際網路行業的迅猛發展,敏捷、精益、持續交付方法論的深入人心,虛擬化技術與DevOps文化的快速發展,傳統的單塊軟體架構面臨著越來越多的挑戰,已逐漸無法適應網際網路時代對軟體的要求。
在這一背景下,微服務架構逐漸流行。它提倡將單塊架構的應用劃分成一組小的服務,服務之間互相協調、互相配合,為使用者提供最終價值。每個服務執行在其獨立的程序中,服務與服務間採用輕量級的通訊機制互相溝通。每個服務都圍繞著具體業務進行構建,並且能夠被獨立地部署到生產環境、類生產環境。
隨著使用者需求個性化、產品生命週期變短,微服務架構將是未來軟體架構朝著靈活性、擴充套件性、伸縮性以及高可用性發展的必然方向。無論何種新技術,都必須藉助人的一系列智力活動才能得以實現,而且團隊協作共同達成目標已成為常態。
一般而言,絕大多數的問題歸根結底是人的問題,因此在面對綜合素質高且思想異常活躍的團隊時,必須要高度重視人力資源管理。從尊重個體出發,在發揮個人主觀能動性的前提下,啟用每個單元細胞,進而 激發團隊 活力,提高微服務團隊整體績效水平成為試點探索的核心所在。
1. “小”,保持合理的團隊規模和結構,是高績效微服務團隊的基礎條件
微服務團隊的組織結構必須是跨功能的、強搭配的DevOps開發運維一體化團隊,理論上團隊人數在10人左右。
人數太少,不能獨立地完成團隊職能;人數太多,其運作速度又會有所下降。微服務架構是按照業務的功能進行劃分,每個單一的業務功能成為一個服務,每個服務對應一個獨立的團隊,團隊裡包含業務需求人員、使用者互動UI設計師、後臺服務開發人員、測試、DBA、運營和運維人員。在業務服務的內部實現需要升級或者變更時,團隊內的各角色成員進行溝通即可,而不需要進行跨團隊溝通,這大大提高了溝通效率。
由於是試點探索,整個集團資訊化平臺(以下簡稱“平臺”)專案組沒有先期可借鑑的經驗,在第三方諮詢公司的建議下,試點微服務團隊按照功能實現所涵蓋的全部角色進行人員配置,包括業務諮詢顧問、前端工程師(PC端、移動端)、開發工程師(PC端、移動端)、測試工程師、程式碼管理工程師等共計13人。
團隊組建後,第一時間明確了試點的目標,明晰了各小組負責人、各方職責以及溝通機制,組建了目標明確、步調一致、各司其職、溝通高效的團隊組織架構。實踐證明,因為是小微團隊,體量適中,而且大家各有所長、分工明確,打破了組間屏障,極大降低了日常溝通成本,行動更加靈活方便,作戰能力大大提升。
2.“快”,採用敏捷開發模式和基層設施的自動化,是團隊高效率的保障
敏捷開發以需求進化為核心,採用迭代、循序漸進的方法進行軟體開發。在敏捷開發中,軟體專案在構建初期被切分成多個子專案,各個子專案的成果都經過測試,具備視覺化、可整合和可執行使用的特徵。
雲化及自動化部署等技術極大地降低了微服務構建、部署和運維的難度。團隊要依據微服務不斷進行流程變革,通過應用持續整合和持續交付,實現生命週期管理和基礎設施自動化,可以大量縮短微服務交付時間,提升微服務交付效率。
試點啟動前,為了保證在規定時間內達成試點目標,與平臺專案組就試點範圍進行了邊界明確。
o首先僅選取某一成熟模組下的典型功能作為試點功能,並且明確業務方案以設計初期的功能方案為依據,後期不斷迭代;
o同時採用敏捷迭代開發方式,隨著新業務需求的梳理和輸入進而實現功能的迭代;
o需要呼叫其他模組的內容,包括組織、人員、角色、通用元件、UI標準等先用擋板隔離,即用敏捷方式先實現本微服務的主體功能,提高“自消化”能力,同時梳理與其他微服務間的介面,但介面資料先採取模擬資料處理,後期待其他微服務實現後再打通介面間的呼叫關係;
o過程文件採用簡化便捷的處理方式,並做好知識管理,做到邊試點、邊總結、邊規範。
整體而言,本次試點的設計方案、功能開發、文件標準都採取了敏捷思維,保證了快捷高效的微服務開發節奏。
3.“通”,建立良好的溝通環境,保證和諧共贏的微服務團隊氛圍,提高團隊凝聚力和戰鬥力
不論團隊內外,傳遞資訊效果最好、效率最高的方式是面對面的交流。微服務的實現,同樣要求業務人員和開發人員通力合作,高頻、高效溝通,避免出現資訊遞減以及期望偏差。因此把微服務的使用者故事打印出來掛到白板上,讓團隊所有成員銘記於心,此舉會大大強化團隊對微服務的邊界認識。
雖然隨著團隊的反思和學習,使用者故事有可能會發生變更,但只要讓團隊形成共識一致的意見,讓業務、開發和測試達成一致,清楚瞭解要做、能做、不能做的事情,溝通即為有效,因為實現了溝而通。
由於微服務團隊包括各種角色的人員,用同一種“語言”說話,是任務達成的基礎,因此高效溝通顯得尤為關鍵。試點團隊主要從三種途徑暢通溝通渠道:
o從地域上,指定團隊聯合辦公區域,佈置白板、投影、視訊工具等溝通輔助工具,要求所有成員集中辦公,溝通交流無縫無地域對接;
o從資訊上,反覆強除錯點的大目標和各小組的階段目標;功能設計方案若有變更或增減將在第一時間進行變更通知,保證團隊所有成員接收到的資訊是對稱透明的;
o從心理上,營造一種張弛有度、自我管理、自我學習的團隊氛圍,通過談心、充分授權、信任尊重、團隊建設等管理方式,讓大家在和諧快樂的工作氛圍下實現目標一致、無障礙溝通、共同進退。
4.“產”,小步快跑,快速持續產生交付物,用關鍵產出驅動開發,提高團隊的交付能力
微服務開發迭代週期不能太長,要防止集體畫大餅,重點關注每日和每週的工作目標,而且要倒逼團隊產出進而推動整個專案目標的實現。
團隊交付週期必須短且可評估,上線成為家常便飯,隨時迭代,而不是過去短則數月、長則一年的大爆炸模式。形成有規律、有質量的團隊交付節奏,並讓軟體系統時刻處於可釋出狀態是團隊的共同責任。
因此,做好專案的過程管理十分重要。首先,組織團隊各小組對工作計劃進行詳細討論,達成共識,明確清晰的工作計劃和工作產出物;其次,要求各小組長每天下班前對工作計劃進行重新整理細化,達到工作進度公開透明,掀起組間競賽的目的。在功能開發進入白熱化階段,各小組甚至將每天工作完成情況用資料呈現在白板上,充分調動了大家的工作積極性,達到了非常好的效果。
由於強調有效產出,試點團隊總結的文件資料為後期平臺功能推廣打下了堅實基礎。最終形成的文件資料除功能實現的相關成果外,還有兩類工作成果:一類為工作產出物,包括需求規格說明書、詳細設計說明書、業務流程圖、資料庫設計、測試用例以及梳理的介面、呼叫矩陣、介面欄位等;另一類為過程跟蹤產出物,包括工作計劃、工作日報、問題清單、會議紀要等。
5.“學”,持續改進,重視學習和反饋,打造高績效的微服務團隊
持續學習、改進微服務團隊,微服務架構才能持續發展下去,保持最新鮮的生命力。因此增強學習本領,在試點團隊內營造善於學習、勇於實踐的濃厚氛圍顯得至關重要。
試點中,團隊成員堅持開放創新共享的思想,學以致用、指導實踐、推動工作,做到既把學到的知識運用於實踐,又在實踐中增長解決問題的新本領。通過自己學、組內學、團隊學,促進團隊成員共同學習、共同成長、共同進步,提高團隊的綜合作戰能力,逐步成長為全功能團隊。
作為試點團隊,為後續微服務團隊當好先遣團是首要任務。因此在每天下午的工作例會上,除了簡要彙報工作進度外,各類主題分享成為重中之重,包括各小組遇到的困難、需要協調解決的問題、資源調配、經驗總結、業務知識、開發知識等等。
這樣不僅能在最短時間內暴露問題,而且快速提升了團隊成員發現問題、解決問題、總結匯報、溝通表達、自主學習等能力,同時為試點總結會提供了大量寶貴的素材。
綜上,微服務架構催生出的微服務團隊既要有理論指導,更要有符合企業文化,符合專案自身特色的量體裁衣運作。
而一支高績效微服務團隊的打造,既要靈活運用“小、快、通、產、學”管理五字法,還需要其他配套機制的有力補充,例如團隊負責人團隊管理、組織協調的能力;團隊成員快速響應、溝通學習的能力;企業的專案精細化管理水平;專案的總體管控能力等。
本文作者任職於該大型國企