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