中國工商銀行軟件開發中心 龔光慶

為進一步提升研發效率,不斷改進對客服務水平,軟件開發中心未來將重點開展敏捷迭代研發、精細化管理、社區化開發、團隊柔性化等一系列研發模式創新舉措,以快速支持工商銀行的經營轉型和改革發展。
研發模式轉型涉及文化、組織、流程、技術、度量等領域的變革,為了避免對組織影響過大,開發中心將通過逐步實施不同層級的敏捷實踐,按照團隊、中心和企業級等模式開展敏捷開發工作,不斷優化研發管理模式。先在重點項目中實施中心級敏捷迭代研發模式,在不依賴外部條件改變的情況下在開發階段按風險和價值原則分多個迭代進行開發,實現內部快速迭代交付,以提高業務的可預期性及產品交付質量,為實現企業級敏捷轉型奠定基礎,后續將在全部項目中推廣實施。
業務需求到達后,產品經理牽頭將業務需求拆分為小顆粒的“需求條目”,并進行優先級排序,研發團隊通過“時間箱”的管理方式,按月迭代開展需求條目的設計、編碼、功能測試工作。迭代的劃分以面向風險和價值為原則,每個迭代交付的版本符合可測試、可交付及用戶可感知的原則。每個迭代完成后產品經理和流程測試經理對需求條目進行驗收,驗收通過后提交測試部門開展流程測試工作,并啟動下一迭代。通過迭代分批交付需求條目,將加快需求條目端到端的流動率,提高項目完成情況的可見度。同時,通過迭代完成小批量需求,減少功能和流程測試的的等待時間,加速版本質量反饋,避免質量風險的積壓。

圖1 迭代研發模式
敏捷迭代與持續集成密切相關,中心擬通過強化持續集成標準化、規范化建設,建立涵蓋自動化測試、自動化編譯和部署、自動化代碼檢查、看板與團隊規則、團隊建設和意識等持續集成關鍵領域的標準。通過持續集成標準化,團隊可快捷地按照推薦方式開展持續集成,建立融入應用研發過程的持續集成過程和流水線,少走彎路,快速擴大持續集成實施范圍,為敏捷迭代研發提供基礎保障。
快速迭代交付離不開自動化測試,開發中心將大力推進自動化測試覆蓋范圍,并建立應用產品的自動化測試評價模型,通過評價模型引導項目團隊按照正確的方法開展自動化測試,模型可從自動化測試覆蓋率、案例腳本質量、自動化結果分析能力、測試管理規范性等多角度對團隊情況自動化測試開展進行評價,評價結果可輔助團隊尋找差距,有針對性地完成自動化測試改進,提高自動化測試的效率和效果。
為了加強研發管理的過程控制和提升研發效能,軟件開發中心擬逐步把精細化管理的理念引入到項目研發管理中,通過明確崗位職責,完善工作流程和管理標準,細化需求和任務的管理粒度,實現工作任務和人員狀態的透明化管理,努力構建高效有序的研發管理體系,持續提升研發效率和質量。
以項目下更小粒度的需求條目為主線進行需求端到端管理。需求條目強調業務視角、以原始需求為輸入端,以可交付的產品為輸出端;圍繞用戶使用場景分析用戶需求,將業務人員提出的大塊需求細分為具體的需求條目,項目研發的所有活動都以“需求條目”為主線,組織不同角色人員參與設計、開發、測試、驗收等研發過程各環節工作,以便加強上下游、前后端的溝通交流,同時串聯研發過程各環節的文檔信息和工程活動,從而實現需求從分析、設計、開發、測試、投產的全流程追溯管理。
需求子條目下掛接具體的研發任務,通過對任務進行細粒度的劃分,把研發任務細分為設計、編碼、功能測試三類任務。對項目研發過程工作進行細化,并制定每個管理過程的工作規范和出口標準,對過程關鍵輸出物開展評審、復核等質量管控工作。通過細粒度的任務分解和跟蹤,跨部門和跨團隊對需要協同的對象比較容易聚焦,相互配合工作的進展也變得一目了然,減少了溝通成本并提高了溝通效果。
通過實施需求條目和任務條目的精細化管理,各管理層人員通過各種定制化的管理視圖(組織級視圖、部門級視圖、團隊級視圖、版本維度、項目維度、需求維度),能夠全面快速掌握部門、成員、版本、項目、需求等多維度的工作進度、飽和度等工作狀態,為資源管理和質量控制提供有效的可視化管理手段:
1.資源管理:根據年度版本規劃,預估工作飽和度和人力資源缺口,每季度、每月、每周根據任務接收情況對評估結果進行調整,并預估后續人力資源情況,動態預估動態調整,避免人力資源缺口風險。

圖2 精細化管理流程
2.質量控制:基于任務條目的計劃合理安排設計評審、安全防控檢查、代碼雙人復核、自動化單元測試、靜態測試等研發任務,通過跟蹤質量,控制研發任務的執行進度和結果,及時發現研發過程中影響產品質量的問題,提前干預并協調解決,以提高產品質量。
為提升研發團隊的協作效能、充分發揮各類技術資產的最大價值以及加強與各界合作方的融合共建,軟件開發中心加快創新步伐,研究形成社區化開發模式并在實踐中取得了較好的效果。
軟件開發中心在對業界主流研發協作工具進行深入研究的基礎上,著力構建統一的社區協作平臺,為社區化開發模式的落地提供強大的技術支撐。一是支持各類需求、問題、任務的線上交流與有序跟進,透明化管理;二是支持資產集中共享,多人協作編輯,用戶可訂閱、檢索或參與討論及完善;三是支持協作編碼,不同團隊人員借助社區代碼審核機制,可建立代碼提交、審核、入庫等一體化的協作開發流程。與此同時,社區協作平臺通過統一的對外協作門戶,整合提供標準化的接口服務,打造面向各界合作方開放的統一接入門戶,提供便捷的接口信息及資料獲取渠道,及時受理用戶反饋的各類問題和意見,協助合作方更好、更廣泛參與金融軟件的應用創新研發,加快互聯網金融生態圈建設,實現多方共贏。
通過建立社區化的研發運營模式,推動跨團隊、跨部門、跨機構協同開發共建,為產品研發尤其是公共技術平臺的研發和推廣、新技術的研究和應用,建立開放、透明、有序的線上協作機制,并在社區中落地,設置社區版主、社區牽頭人員、社區用戶及社區貢獻者等不同社區角色開展具體工作。主要體現在兩個層面:一是問題、需求、任務、方案等統一在社區中進行線上溝通,透明化管理,如圖3所示;二是產品或新技術牽頭團隊在社區中開放源代碼訪問入口,支持其他團隊參與協同開發共建,如圖4所示。
建設企業級的技術資產體系主要體現在對資產進行集中管理、建立內聯及動態保鮮等三個方面。一是實現資產集中管理,在社區中集中管理各類技術資產,包括相關的研究成果、制度規范、產品的需求、架構、代碼、測試案例、用戶手冊及經驗總結等重要資產,形成資產全視圖,確保資產有效積累、共享和傳承。二是建立資產關聯關系,借助技術手段,建立各項關鍵資產的內在關聯,例如代碼與測試案例的關聯、需求與代碼的關聯等,形成資產有機體,利于各角色關聯學習,快速獲取所需內容及知識。三是及時更新維護資產信息,通過制定規則,明確維護資產的主要角色及時效要求,及時對新產生的資產進行歸集、對存量資產進行保鮮,以確保資產持續可用。
在團隊管理上,引入業界社交理念,基于社區個人主頁、粉絲等社交屬性,結合適當的宣傳、評優等活動,建立社交型團隊管理機制。通過個人主頁,對團隊成員在社區中參與的項目、提交的代碼、共享的研究成果及發表的評論等所有的耕耘和貢獻,集中進行展示。通過粉絲機制,支持關注、跟隨自己感興趣的人,建立社區“人際”鏈接,彰顯個人價值,提升榮譽感及影響力。同時,通過對社區的分層管理、對話題活躍度的排名等方式宣傳及推送熱點內容,通過定期評優活動,獎勵社區中的活躍人員,在管理上積極引導社區互動和智慧碰撞。社交型機制借社交之力形成軟性激勵,促進個人創新貢獻及相互交流啟發,打造集體智慧大腦,提升團隊整體活力和能力。

圖3 基于社區的跨團隊問題、需求、任務線上溝通協作
為保障全行轉型發展戰略,集中資源優先保障重點項目,開發中心持續加強內外部資源動態管理,通過研究建立重點項目研發資源模型,強化員工多元能力培養、創建共享人員池、實施資源動態調配措施等方式,識別資源投入合理性,提高組織彈性,推動團隊管理柔性化,實現部門間的靈活調度,為人力資源跨部門調配提供保障。
為提高重點產品的快速交付能力,確保全年重點工作任務按時保質完成,開發中心研究建立了應用研發工作靈活分配措施,強調各部門日常應注重多技能人員培養,能從事多領域開發,做好隨時支援其他部門重點項目建設的準備,后續要求有資源風險的開發部門在項目前期向中心提出資源調配申請,中心優先在研發部內按對口應用協調資源,如果不能解決,再跨研發部協調,支援部門參與開發的工作量計入本部門,由支援部門負責支援人員的日常管理工作。

圖4 基于社區的跨團隊協同開發共建
開發中心進一步加強人員多元能力培養,建立共享人力資源池和復合型小型化的團隊,實現面向業務目標、面向重點項目需要的動態人員調配管理。在研發部內部從各部門選取部分人員,建立邏輯共享人員池,當研發資源緊張時,從共享人員池中抽調部分人員進行調配。對共享人員,在版本評優及績效評價方面給予適當傾斜。
根據總行要求,積極參與總行柔性研發團隊工作,參與集中辦公,加強與業務部門的融合,派有經驗的管理人員擔任研發牽頭人員,負責柔性團隊的管理工作,并要求中心相關部門做好對柔性團隊的支持,同時建立相應的柔性團隊管理機制,充分發揮柔性團隊的研發優勢。