蔡國華 魏麗麗




摘 要:中國搜索的軟件研發業務參考國際軟件標準規范體系,通過多年實踐探索積累,構建了具備自身特色的質量管理流程體系,保證軟件項目實現按時、保質、可控的研發目標,為各項業務平穩快速發展奠定了堅實的基礎。
關鍵詞:質量管理體系;軟件研發;持續改進
1 背景
中國搜索是由中央七大新聞單位聯手打造的國家級互聯網高新企業,既有自主研發的項目和產品,也有與外部機構合作研發的項目和產品;既有部門獨立研發的項目,也有跨部門合作的項目。業務類型多、部門合作多、流程環節多,容易出現信息流轉不及時、過程細節有疏漏的問題。我們在如何有效地控制研發過程、保證研發質量方面做了大量探索和實踐,借鑒國內外先進管理辦法,結合多年積累的質量管理和運維運營工作經驗,制定了中國搜索軟件研發標準流程,形成研發過程嚴格控制質量,運維和運營過程不斷提升質量的全面質量流程管理體系。
2 質量流程管理體系設計
2.1 建立基于研發組織特點的技術管理架構
中國搜索的技術研發組織由搜索研發、移動研發、應用研發、人工智能、質量管理、運維和運營團隊以及若干重要項目研發團隊組成,研發團隊按業務類型承擔具體的研發任務,重大項目以獨立團隊的模式進行研發工作,質量管理團隊負責流程的制定、研發過程的質量保證,運維團隊負責產品上線以及線上業務的運維保障工作,運營團隊負責線上業務的運營工作,研發業務由技術管理辦公室統籌管理。
依據上述技術研發團隊的組織架構特點,我們設計了一套以項目為研發單位,基于矩陣式管理的技術管理架構,縱向管理中分設需求管理、技術研發管理、質量管理、運維管理,分別負責產品需求管理、技術研發管理、質量和測試管理、項目運行維護管理。橫向管理中分設產品團隊、研發團隊、質量團隊和運維團隊,在細化流程的同時,又保障技術管理的專業化。對于跨部門的項目,實行兩級管理模式,部門管理發揮管理部門職能,指導各產品、研發、質量、運維團隊開展工作,各團隊是執行層,負責研發管理工作的具體執行。
2.2 建立覆蓋關鍵流程的研發管理體系
產品調研、需求分析、開發、集成、測試、發布上線、運維和運營過程構成了軟件開發生命周期的整體業務流程。整體流程涉及多個業務和研發部門,原各部門流程獨立繁瑣,部門間接口不暢,如何保證信息在各部門之間及時、順暢地流轉就變得尤其的重要。
經過實踐,我們梳理了所有流程中的關鍵環節和主要路徑,將原來孤立的流程整合成一套覆蓋軟件研發生命周期的工作流程。整合后的研發流程不依賴組織架構和業務部門的約束,將產品需求、開發、集成、測試、運維、運營、質量管理等角色緊急地關聯在統一的流程上,借助信息流程管理平臺實現數據信息共享,信息流驅動業務流程自動流轉,信息流和業務流程統一,通過對關鍵流程的整合優化,大大提高了研發協作效率。
2.3 建立有效的質量保證體系
軟件產品質量涉及研發階段的各個環節和各個團隊,為了保證開發出來的軟件產品質量符合既定目標和標準,我們通過建立合適的研發流程、規范和方針,跟蹤和監控研發活動和產出物,對研發過程進行管理和控制,保證組織定義的軟件過程和規范在項目中得到遵循,保證質量計劃被貫徹執行,通過檢查、評審等手段提前識別項目中存在風險,發現并解決研發過程中的問題和缺陷,實現對研發過程的有效監控,保障軟件產品的過程質量。通過總結,持續優化研發流程,從流程上提高研發效率和產品質量。
軟件測試是進行軟件質量保證活動最直接有效的方法和手段之一,貫穿整個軟件研發生命周期,是研發過程中的關鍵活動之一。針對中國搜索不同的業務類型,我們建了完善的測試評價指標,覆蓋功能、性能、兼容性、安全性和易用性等方面,制定了及早介入項目、測試和研發全過程協同工作的測試流程,采用先進全面的測試方法和工具,發現軟件產品中的缺陷和問題,從結果上保證研發產品滿足既定目標和質量要求。
為了保證研發過程的完整性、正確性和可追溯性,借助配置管理工具subversion來記錄整個軟件產品的演化過程。結合研發組織架構和研發特點,建立了基于分級審批的靈活可控的權限控制策略、以及主干迭代開發上線,分支臨時性上線的配置變更控制策略,結合互聯網軟件通用的編碼規范和研發實踐,制定了適用的編碼規范,通過第三方或者自研發插件結合持續集成平臺,在研發過程中對編碼規范進行持續性檢查,從規范上保證源代碼的正確性、可讀性和易用性,從而提高研發產品的質量。
2.4 建立安全可控的運維管理體系
產品業務上線運行不是軟件研發過程的結束,而是過程的延續,是下一版本迭代的開始,其運行情況也是軟件產品質量的體現,因此線上業務系統的穩定運行和維護至關重要。開發過程中通過各種措施提升開發質量是為了減少線上問題的發生,通過對線上問題的分析,發現并消除引發問題的深層次原因,防止問題的再次發生,也促進了開發質量的改進。
通過實時監控線上業務系統的運行情況,及時發現系統地非正常狀態,通過對線上業務系統進行跟蹤和分析,對業務產品的性能、穩定性、可用性等非功能性進行定期檢查,提前識別出風險,及時發現研發過程中存在的問題,消除隱患,實現對研發過程的有效監控。我們對線上系統出現的各類問題建立全流程跟蹤機制,包括問題上報、分析,通過線上問題的回溯機制,從線上環境、版本發布、測試、開發、需求倒追問題的原因,提取典型的和有共性的問題加入日常監控中,加強監控力度,并在項目中進行典型案例分享,有效地避免了問題重復多次發生。
3 質量流程管理體系的實施保證
3.1 專業的流程管理平臺支撐研發流程高效運轉
通過對流程持續不斷地優化,中國搜索建立了支撐全生命周期的流程管理平臺。借助專業的流程管理工具,研發流程設計遵循按需整合、專業分工、協作高效的原則,覆蓋了公司全部業務產品系統。
流程管理平臺以需求為基礎,對流程進行整合配置,在不同生命周期階段,需求信息描述和進展動態實時更新,各種角色用戶在該平臺可看到一致的需求描述,開發和測試以需求為依據開展工作,一條業務需求從提出到形成最終的產品需求、轉為為開發任務,再到測試上線發布,可通過該平臺實現流程的自動流轉,同一項目或者產品的需求集在一個界面動態生成進展狀態看板。通過看板,可以方便直觀的查看各業務產品需求的進展狀態;通過測試管理系統可以對測試用例編寫、執行和缺陷進行有效管理;利用知識共享管理工具,對接口等公共信息進行整合共享;信息智能工具可自動收集抽取開發測試進度、缺陷、變更等各類項目數據,并進行加工,形成各種管理分析報告。
工欲善其事,必先利其器,面向全生命周期的流程管理平臺,對中國搜索質量流程管理體系的落地實施提供了有力的工具支撐和可視化管理,實現了軟件研發各階段的流程自動流轉和信息共享,提高了開發管理效率,有效支撐了公司業務的快速發展。
3.2 構建發布自動化,保證質量管理策略的高效準確實施
軟件研發過程中通過引入自動化工具,將大量繁瑣的手工操作通過工具實現自動化執行,是減少出錯幾率、提高工作效率、降低成本的最有效手段之一。中國搜索建立的自動化持續集成系統,適用于公司內絕大部分開發項目,只要是符合構建標準的項目,只需要通過參數配置和腳本技術,即可在系統中持續實現自動編譯、規范檢查、單元測試、和發布。通過提煉總結項目特征,我們創建了適合不同類型項目的模板,通過模板配置和參數化管理,使得自動化持續集成系統操作簡單、便于維護,目前該系統承擔了公司90%以上項目的自動化構建、集成和發布工作。
基于規范、集中、統一的自動化持續集成系統,在很多方面替代了人工操作和人工信息匯總,可以快速實施質量管理策略,為項目管理提供了可靠、有力的數據支撐。該系統擁有強大的基礎能力和靈活的擴展性,有著豐富的接口,可以方便的集成第三方工具,目前已經集成了cpplint、checkstyle、findbugs、pmd等分別針對c、c++、java代碼的靜態分析工具,還集成了單元測試工具gmock和junit來執行單元測試,可在每次構建中自動檢測發現代碼的缺陷和隱患,實現了代碼規范檢查、安全漏洞掃描等內容的質量監控,通過定時任務可進行周期性的任務自動調度,收集相關項目數據,形成可靠、完整的統計報告,極大地提高了開發效率和代碼質量。
3.3 加強反饋機制,提高用戶滿意度
軟件質量的判斷標準最終來源于客戶體驗,運營人員通過對線上業務系統的使用調研,及時了解使用過程中存在的問題,獲得用戶反饋信息,匯總反饋給開發團隊,通過新的迭代開發過程,改進軟件的設計與開發,完善業務系統以提升用戶體驗,通過持續不斷的反饋改進機制,有效地提高了對業務系統和產品的滿意度。
3.4 強化質量意識,融入公司文化
軟件產品的最終質量是各過程工作質量的最終體現,為提升最終軟件產品質量,軟件開發的各過程都應該嚴格按照規范流程執行,并持續對流程進行優化,除了可執行的規范流程、還需要通過日常培訓、檢查監督等多種方式,強化全員的質量意識,將質量要求融入日常研發過程,將質量體系管理與研發業務有效地融合,從而使產品研發能力不斷提高,業務快速穩定發展。
4 小結
基于關鍵路徑的研發體系和過程的質量控制、運維過程的業務保障和運營過程的質量反饋構成了中國搜索質量流程管理體系的完整過程。借助專業的流程管理平臺和工具,將研發流程、運維流程和運營流程的不斷完善和管理精細化程度不斷地深入,把質量意識貫徹到全員意識中,保證了產品的高質量研發。實踐證明,質量管理無需面面俱到,只要控制關鍵路徑,把握關鍵環節,就能夠有效地提升軟件產品研發的質量與效率。