2019年開年的第一個工作日,任何非發表了一封致全體華為員工的公開信,主題為:全面提升軟件工程能力與實踐,打造可信的高質量產品——致全體員工的一封信。
原文如下:
我今天寫信,是要和大家溝通公司如何全面提升軟件工程能力和實踐。二十年前的IPD變革,重構了我們的研發模式,實現了從依賴個人、偶然性推出成功產品,到制度化、持續地推出高質量產品的轉變。至今為止,我們的產品和解決方案已經在170多個國家安全穩定運行,並因此積累和贏得了全球數萬客戶的信任。今天,我們又處在一個新的起點,全面雲化、智能化、軟件定義一切等發展趨勢,對ICT基礎設施產品的可信提出了前所未有的要求。可信將成為客戶願買、敢買和政府接受、信任華為的基本條件。可信不僅僅是產品外在表現的高質量結果,更是產品內在實現的高質量過程,是結果和過程的雙重可驗證的高質量。而只有全面提升軟件工程能力和實踐,才有可能打造出可信的高質量產品。
公司已經明確,把網絡安全和隱私保護作為公司的最高綱領。我們要在每一個ICT基礎設施產品和解決方案中,都融入信任、構建高質量,關鍵內容包括:
安全性(Security) 。產品有良好的抗攻擊能力,保護業務和數據的機密性、完整性和可用性。
韌性(Resilience)。系統受攻擊時保持有定義的運行狀態,包括降級,以及遭遇攻擊時快速恢復的能力。
隱私性(Privacy)。遵從隱私保護既是法律法規的要求,也是價值觀的體現。用戶應該能夠適當地控制他們的數據的使用方式。信息的使用政策應該是對用戶透明的。用戶應該根據自己的需要來控制何時接收以及是否接收信息。用戶的隱私數據要有完善的保護能力和機制。
可靠性和可用性(Reliability& Availability)。產品能在生命週期內長期保障業務無故障運行,具備快速恢復和自我管理的能力,提供可預期的、一致的服務。
全面提升軟件工程能力和實踐,關乎公司未來的生存和發展,與我們每一個人都息息相關。在此,我希望全體員工、特別是軟件工程師們主動參與進來,從自己做起,踏踏實實,共同打造可信的高質量產品。
我們要轉變觀念,追求打造可信的高質量產品,不僅僅是功能、特性的高質量,也包括產品開發到交付過程的高質量。我們知道,功能、特性對產品至關重要,我們更知道,進度對滿足客戶需求也至關重要。今天,我們要把可信作為第一優先級,放在功能、特性和進度之上。除非客戶信任我們的產品,否則這些優秀的特性都沒有機會發揮價值。我們各級管理者和全體員工都不得以進度、功能、特性等為理由來降低可信的要求,確保可信的要求在執行過程中不變形。
我們要從最基礎的編碼質量做起,視高質量代碼為尊嚴和個人聲譽。代碼就像是高樓大廈的一磚一瓦,沒有高質量的代碼,可信的產品就是空中樓閣。我們要優化並遵循公司各種編程規範,遵從架構與設計原則,熟練使用各種編程庫和API,編寫出簡潔、規範、可讀性強、健壯安全的代碼。
我們要深刻理解架構的核心要素,基於可信導向來進行架構與設計。在確保可信的前提下,要在性能、功能、擴展性等方面做好權衡;慎重地定義我們的模塊與接口,真正做到高內聚與低耦合;我們要遵循權限和攻擊面最小化等安全設計原則,科學設計模塊之間的隔離與接口,提升安全性;低階架構與設計要遵循高階的架構與設計原則,在充分理解原有架構與設計的情況下,持續優化;我們要熟悉各種設計模式,重用公共成熟組件和服務,避免重複勞動。
我們要重構腐化的架構及不符合軟件工程規範和質量要求的歷史代碼。我們知道,再好的架構,其生命力也是有限的。隨著時間的推移、環境的變化以及新技術、新功能特性的引入,架構也會腐化。面對腐化了的架構,要毫不猶豫地去重構它。同時主動以可信設計原則為導向,去重構不符合軟件工程規範和質量要求的歷史代碼,提升軟件架構的生命力。
我們要深入鑽研軟件技術,尤其是安全技術。軟件技術是我們打造產品的基本工具,技術是否先進,技術選擇是否合理,將決定我們軟件的高度;我們要深入學習架構與設計、編碼、測試、安全、可用性、性能、維護性、體驗等技術,併科學運用這些技術。
我們要遵守過程的一致性。遵守適用的法律法規、遵循業界共識的標準、規範,確保規範到實現的一致性、代碼到二進制的一致性。架構要符合架構原則,設計要遵循設計模式,代碼要符合編程規範,最終做到需求與實現一致,達成各項對客戶的承諾。我們只有腳踏實地做好每一步,才能真正打造出可信的高質量產品。
為此,我們要改變行為習慣,追求精品。我們要開放透明、積極和勇於揭示問題並主動推動改進。軟件開發是一種創造性和藝術性的工作,需要充分發揮我們的聰明才智和潛力。我們要改變只重視功能結果、不重視代碼質量的行為習慣,要嚴格遵守軟件工程規範;改變被動的修修補補;改變碎片化知識獲取,主動去學習提升並貢獻經驗、代碼,形成共享知識庫。我們需要改變的行為和習慣還有很多,對絕大多數人來講都將是一個痛苦的轉變過程,會脫一層皮,但我相信大家能夠迎接這種挑戰。
更為重要的是,我們將通過變革形成一套適應上述變化的流程、組織與考核機制。我們要完善並增強透明、可回溯和可審計的全流程管理機制,以可信的視角,從初始設計、完整構建到產品生命週期管理,全面提升軟件工程能力和實踐。我們將全面強化以Committer角色為核心的代碼審核和提交機制,代碼經過更加嚴格和系統的審核才能合入版本。為此我們將建立一支更高水平的Committer角色群體,負責軟件架構的看護、代碼的審核和提交,整體保障合入代碼的高質量。我們要變革考核機制,要讓架構設計好、代碼寫得好的人脫穎而出,對編程能力不滿足要求的人給予幫助和培訓。但任何人如果編寫的代碼長時間不能合入版本,將會被團隊拋棄。
過去一百年來,世界上許多成功的公司都因不能適應變化而倒下。要適應外部變化,唯有自我進化,我們必須保持開放和持續變革。董事會已決定,全面提升軟件工程能力與實踐將以變革的方式來開展,由輪值董事長徐直軍總負責, 公司初始投入20億美元, 計劃用5年時間,在ICT基礎設施領域實現為客戶打造可信的高質量產品的目標。希望您支持並積極投入到這一偉大的變革。唯有如此,我們才能實現未來的願景和使命:把數字世界帶入每個人、每個家庭、每個組織,構建萬物互聯的智能世界。
閱讀更多 生意匯 的文章