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