一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

軟件開發(fā)從業(yè)者解讀任正非的新年公開信

Linux愛好者 ? 來源:lq ? 2019-01-28 15:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

之前***的***《全面提升軟件工程能力與實踐,打造可信的高質量產品》刷屏了,作為一個軟件工程專業(yè)科班出身的軟件開發(fā)從業(yè)者,自然是引起了我的好奇。仔細閱讀之下確實讓我大吃一驚,看似八股官方文,但細看之下是作者對于軟件工程的理解確實非常深刻,各種專業(yè)術語信手拈來,比喻恰到好處。

我對華為的研發(fā)其實一直挺好奇的,從傳統(tǒng)的硬件公司,到現在軟硬件齊頭并進,華為手機銷量都已經超過了蘋果,可見華為的軟硬件研發(fā)實力早已是全球領先了。***中的這一句:

二十年前的 IPD 變革,重構了我們的研發(fā)模式,實現了從依賴個人、偶然性推出成功產品,到制度化、持續(xù)地推出高質量產品的轉變。

也揭示了華為的軟件研發(fā)能做到領先水平的原因。

華為是在 1999 年開始從 IBM 引進 IPD 的,到今年 2019 年正好 20 年,在過去的 20 年里,IPD 幫助華為從游擊隊變成了正規(guī)軍,研發(fā)隊伍從幾千人到幾萬人,軟件產品也覆蓋到手機操作系統(tǒng)、應用、云服務。

我對 IPD 是不甚了解的,只知道 IPD(Integrated Product Development,集成產品開發(fā))是一種產品開發(fā)方法,但如果說軟件產品的開發(fā)方法,我是比較熟悉的,那就是軟件工程么!

***發(fā)出的這封信的大背景也很特殊,2018 年***開始,中興、華為首當其沖成為美國開刀的對象,跟風站隊的澳大利亞、新西蘭、英國也跳出來抵制華為,說華為不安全,可能含有***,竊聽***,這帽子一扣是很難扯清的!這就是為什么整封信從標題開始,一共 17 次提到兩個關鍵字:“可信”。

只有讓客戶覺得華為的產品“可信”,華為才能盡快走出這場危機,那么怎么才能做到可信?

如果你是餐廳老板,有人造謠你的廚房臟亂差,員工上完廁所不洗手,你怎么辦?最好的辦法自然是用先進的管理流程,并且讓整個做菜的過程盡可能公開透明。

所以信中有這樣一句話:

我們要轉變觀念,追求打造可信的高質量產品,不僅僅是功能、特性的高質量,也包括產品開發(fā)到交付過程的高質量。

要轉變觀念,不再只認結果的質量,還要追求過程質量了!而如何追求過程質量呢?那就是要:“全面提升軟件工程能力和實踐”

如果信到此為止,也就是個普通官方八股文了。領導們么,可不就是喜歡指個大方向,說你們要用軟件工程,要實施軟件工程,至于怎么用,那是你們的事情,畢竟做領導的哪有幾個真的懂軟件工程的,難得的是這封信居然有很多具體怎么做的內容。

軟件項目管理金三角

先看這一句:

我們各級管理者和全體員工都不得以進度、功能、特性等為理由來降低可信的要求,確??尚诺囊笤趫?zhí)行過程中不變形。

振聾發(fā)聵呀同志們,熱淚盈眶呀!生活中多少次:三個月的項目老板說你一個月就要給我做完;做到一半的項目,PM 說這個功能很重要,我們要加上去。最終怎么辦?犧牲質量唄!又想要馬兒跑得快又想要馬兒不吃草,天底下哪有那么好的事情!

軟件工程里面早就告訴我們了:時間、范圍、成本這三個要素直接決定了產品的質量!

希望各位老板別光學喬布斯,也學學***!

程序開發(fā)

2018年底程序員被裁的不少,很多程序員開始擔憂起前景來,其實如果你能做到這下面要求的應該是不擔心被裁的!

我們要從最基礎的編碼質量做起,視高質量代碼為尊嚴和個人聲譽。代碼就像是高樓大廈的一磚一瓦,沒有高質量的代碼,可信的產品就是空中樓閣。我們要優(yōu)化并遵循公司各種編程規(guī)范,遵從架構與設計原則,熟練使用各種編程庫和API,編寫出簡潔、規(guī)范、可讀性強、健壯安全的代碼。

這一段是說給我們程序員看的,這其實也是對程序員的基本要求,大家看看自己,看看身邊,真能做到的有多少?像我一樣覺得自己還做的不夠好的,咱還是努力學***吧,多練練,多用點心肯定更沒問題的。

架構

說完程序員開始說架構師了:

我們要深刻理解架構的核心要素,基于可信導向來進行架構與設計。

看到沒有,又提到可信了,架構設計的時候,別再天馬行空,啥新酷用啥,啥流行用啥,一定要“可信導向”,架構設計目標先搞清楚!

再是細節(jié):

在確??尚诺那疤嵯?,要在性能、功能、擴展性等方面做好權衡;慎重地定義我們的模塊與接口,真正做到高內聚與低耦合;我們要遵循權限和攻擊面最小化等安全設計原則,科學設計模塊之間的隔離與接口,提升安全性;低階架構與設計要遵循高階的架構與設計原則,在充分理解原有架構與設計的情況下,持續(xù)優(yōu)化;我們要熟悉各種設計模式,重用公共成熟組件和服務,避免重復勞動。

“高內聚與低耦合”,“權限和攻擊面最小化”,“模塊之間的隔離與接口”,“重用公共成熟組件和服務”……道理我都明白,做到可不容易!

技術債務

華為這些年高速發(fā)展,早些年為了追求速度肯定也沒少走捷徑,這些年下來也肯定沒少欠技術債務,現在也是一個從追求速度到追求質量轉型的契機。所以信中說完架構開始講技術債務了:

我們要重構腐化的架構及不符合軟件工程規(guī)范和質量要求的歷史代碼。我們知道,再好的架構,其生命力也是有限的。隨著時間的推移、環(huán)境的變化以及新技術、新功能特性的引入,架構也會腐化。面對腐化了的架構,要毫不猶豫地去重構它。同時主動以可信設計原則為導向,去重構不符合軟件工程規(guī)范和質量要求的歷史代碼,提升軟件架構的生命力。

我們都知道,沒有萬能的架構,只有適合當時需求,當時技術條件和人員的架構,時間推移了很多架構就滿足不了要求了,就需要重構了!作為80后,小時候其實生活挺艱苦的,那時候我們穿衣服都講究的是:“新三年,舊三年,縫縫補補又三年”,架構也一樣嘛,不滿足需求我們先修修補補,真要重構挑戰(zhàn)還是不小的,但是不去做它會一直成為發(fā)展的一個障礙,這封信也算是推了一把:“面對腐化了的架構,要毫不猶豫地去重構它?!保斎荒阒貥?,也不要忘記“可信”這個根本目標:“同時主動以可信設計原則為導向”。

其實Google在這方面已經走在前面了,一直鼓勵重寫代碼,任何軟件每隔幾年就重寫一遍,這樣可以優(yōu)化代碼,采用最新技術,去掉一些沒有價值的功能,最重要的是讓新員工得到鍛煉,保持高昂的斗志。不知道這點是不是華為在像Google學***!

安全

這些年,互聯網發(fā)展很快,但是安全事故卻層出不窮:開房記錄被泄漏、密碼被泄漏、比特幣被盜……這***出業(yè)界其實對安全是不夠重視的,所以信中也不止一次提到安全問題:

公司已經明確,把網絡安全和隱私保護作為公司的最高綱領。”

“我們要深入鉆研軟件技術,尤其是安全技術?!?/p>

“我們要遵循權限和攻擊面最小化等安全設計原則,科學設計模塊之間的隔離與接口,提升安全性”

“編寫出簡潔、規(guī)范、可讀性強、健壯安全的代碼。

要打造一個“安全”的軟件,就是首先要有安全意識,然后要懂安全技術,在整個開發(fā)過程中要從架構設計、代碼方方面面去注意。

技術是工具

這些年開發(fā)界一直有些不好的風氣,就是都認為自己的技術是最牛的,寫后端的看不上前端的,用angular的看不上vue,寫PHP的認為自己的語言是全世界最好的,開發(fā)的還看不上測試的。但是信中這一句話不要忽視呀:“軟件技術是我們打造產品的基本工具”,技術只是工具,只是我們用來打造產品的工具!

“技術是否先進,技術選擇是否合理,將決定我們軟件的高度;”,技術的選型,不僅看的是不是先進,還要看是不是適合當前產品項目,并不是什么什么新酷就用什么!

“我們要深入學***架構與設計、編碼、測試、安全、可用性、性能、維護性、體驗等技術,并科學運用這些技術。”,既然技術只是工具,那么我們就沒必要給自己設置各種技術壁壘障礙。如果開發(fā)就只學編碼,測試就只學測試,認為安全那應該是搞安全的事,這樣的話是非常不利于團體協(xié)作的,每個人都在一個領域能有深入的鉆研,同時對其他領域有一定了解,對個人,對團隊是非常有利的一件事。這樣也不需要DevOps這種為了兼顧開發(fā)、測試、運維三種角色而存在的工種!

一致性

我們做軟件開發(fā)的都知道,也看過很多段子:從客戶的需求,到最終的實現,總是差別很大;我們在項目初始的時候制定了很多規(guī)范,卻總是不了了之,難以執(zhí)行;我們良好的設計,在編碼實現的時候,因為趕進度、開發(fā)人員偷懶等各種原因繞開設計,抄近路,最后設計和編碼無法一致……

一致性在軟件開發(fā)領域一直都是理想美好而現實卻很殘酷,信中也提到:

我們要遵守過程的一致性。遵守適用的法律法規(guī)、遵循業(yè)界共識的標準、規(guī)范,確保規(guī)范到實現的一致性、代碼到二進制的一致性。架構要符合架構原則,設計要遵循設計模式,代碼要符合編程規(guī)范,最終做到需求與實現一致,達成各項對客戶的承諾。我們只有腳踏實地做好每一步,才能真正打造出可信的高質量產品。

無論這個目標有多難,但是從“遵守過程的一致性”開始,在每個階段都去做到一致性,“腳踏實地做好每一步”,還是有希望做到,“真正打造出可信的高質量產品”。

改變***慣

在實施軟件工程的過程中,有兩個難題,一個就是轉變思想,另一個就是改變***慣了,這種改變的過程也一定是很痛苦的。

為此,我們要改變行為***慣,追求精品。我們要開放透明、積極和勇于揭示問題并主動推動改進。軟件開發(fā)是一種創(chuàng)造性和藝術性的工作,需要充分發(fā)揮我們的聰明才智和潛力。我們要改變只重視功能結果、不重視代碼質量的行為***慣,要嚴格遵守軟件工程規(guī)范;改變被動的修修補補;改變碎片化知識獲取,主動去學***提升并貢獻經驗、代碼,形成共享知識庫。我們需要改變的行為和***慣還有很多,對絕大多數人來講都將是一個痛苦的轉變過程,會脫一層皮,但我相信大家能夠迎接這種挑戰(zhàn)。

從事軟件開發(fā)工作越久,恐怕養(yǎng)成的壞***慣就越多,信中列的幾條都很有代表性:

“只重視功能結果、不重視代碼質量”“功能實現完了就完事了,質量那是QA的事”,這種壞***慣不改質量是很難有保障的

“不遵守軟件工程規(guī)范”軟件工程的各種規(guī)范不是約束,也不是擺設,而是實實在在為了團隊整體更好的協(xié)作。對于定好的規(guī)范,要嚴格執(zhí)行,不合理的規(guī)范,也要提出來一起改進。

“被動的修修補補”為了能繼續(xù)湊合,繼續(xù)修修補補,而沒有考慮重構改進,也是一個不好的***慣。

“碎片化知識獲取,不主動去學***提升”在現在的信息時代,碎片化的知識獲取是容易的,但是像軟件工程這種知識,僅僅通過碎片化的學***還是不夠的,必須的主動的,系統(tǒng)的去學***,雖然這個過程會很辛苦,但是是非常有必要的。

“不愿意貢獻經驗、代碼,不去形成共享知識庫”很多人不愿意去分享知識和經驗,有的是因為太懶,有的是覺得沒什么好處。但是分享本身就是一個學***和提升的最好手段!知識庫這種事不僅是對別人,對自己也是一個特別好的過程。想象下你新加入一個團隊,如果這個團隊有很好的知識庫,你可以通過知識庫很快的上手工作,同樣的,如果你把你的經驗寫到知識庫,后面的新人也可以受益你的貢獻!

“軟件工程”和“質量工程”需要依靠架構技術

“軟件工程”和“質量工程”需要依靠架構技術,而不是依靠CMM和QA管理流程。一切工程問題,首先要思考能否通過技術解決,當前技術無法解決的問題,暫時由管理手段代勞,同時不停止尋找技術手段。

所有的涉及到人的管理最終都要歸結到人管理還是制度管理的問題上,軟件項目管理也不例外,如果過多的依賴于人的管理,那么項目經理的職責就太重了,優(yōu)秀的項目經理本身就是稀缺資源,最終會變成一個瓶頸。

所以通過架構技術和工具,把管理流程落實下來是一個非常好的方式。有兩個例子可以很好的說明這點。

早些年軟件項目團隊是非常龐大的,各個服務龐大模塊緊密,所以管理成本很高,后來微服務這種架構提出后,將大的服務拆成小的服務,整個組織也從大項目部門拆分成各個小組,各小組可以獨立更新維護。

另一個例子是以前單元測試和代碼審查還有自動部署很難執(zhí)行,后來借助源代碼管理工具和CI(Continuous integration,持續(xù)集成)工具,就可以很容易的進行代碼審查、并且可以確保單元測試測試跑通過后才進行部署。這一點其實信中也有體現:

我們將全面強化以Committer角色為核心的代碼審核和提交機制,代碼經過更加嚴格和系統(tǒng)的審核才能合入版本。為此我們將建立一支更高水平的Committer角色群體,負責軟件架構的看護、代碼的審核和提交,整體保障合入代碼的高質量。我們要變革考核機制,要讓架構設計好、代碼寫得好的人脫穎而出,對編程能力不滿足要求的人給予幫助和培訓。但任何人如果編寫的代碼長時間不能合入版本,將會被團隊拋棄。

軟件工程就像一個國家的農業(yè)

軟件工程就像一個國家的農業(yè),是最基礎的設施!

很感動,這些年軟件工程被提起的其實不多,大家關注的更多是各種新酷的技術,而對于這種軟件開發(fā)最基礎的理論視而不見。還有人一提到軟件工程,就馬上說軟件工程不是銀彈。軟件工程從來不說自己是銀彈,就像現代醫(yī)學,也不會號稱自己包治百病,只會不斷改進,對癥下藥!

希望這封信能帶動軟件工程在國內的更多發(fā)展,也希望我這篇淺顯的文章能幫助大家更好的理解一些軟件工程的概念。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 軟件開發(fā)

    關注

    0

    文章

    642

    瀏覽量

    28568
  • 華為
    +關注

    關注

    216

    文章

    35197

    瀏覽量

    255782
  • 任正非
    +關注

    關注

    6

    文章

    272

    瀏覽量

    31721

原文標題:從軟件工程的角度,解讀任正非的新年公開信

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    2025年汽車行業(yè)趨勢解讀:AI在汽車軟件開發(fā)中的應用、代碼安全挑戰(zhàn)等(附Perforce QAC / Klocwork工具推薦)

    隨著AI技術深入嵌入式系統(tǒng),汽車軟件已成為智能出行的核心要素。根據Perforce發(fā)布的《2025年汽車軟件開發(fā)現狀報告》,全球650多名汽車從業(yè)者共同揭示了AI在汽車行業(yè)的演進趨勢、挑戰(zhàn)與應對策略。
    的頭像 發(fā)表于 06-13 15:03 ?412次閱讀
    2025年汽車行業(yè)趨勢<b class='flag-5'>解讀</b>:AI在汽車<b class='flag-5'>軟件開發(fā)</b>中的應用、代碼安全挑戰(zhàn)等(附Perforce QAC / Klocwork工具推薦)

    非在人民日報發(fā)聲:干就完了 :芯片問題沒必要擔心

    關于華為的消息總是被更多關注,我們看到人民日報刊發(fā)了與華為的精彩對話;總金句很多,比如:國家越開放,會促使我們更加進步; 比如??不去想困難,干就完了,一步一步往前走。
    的頭像 發(fā)表于 06-10 13:59 ?778次閱讀

    我國軟件開發(fā)者數量超過940萬

    在近日舉辦的開放原子開發(fā)者大會上,工業(yè)和信息化部負責人傳來了一則令人振奮的消息:我國軟件開發(fā)者數量已經突破940萬大關。這一數據不僅彰顯了我國在軟件開發(fā)領域的雄厚實力,也預示著我國在全球軟件開
    的頭像 發(fā)表于 12-23 11:08 ?610次閱讀

    【「大話芯片制造」閱讀體驗】+內容概述,適讀人群

    ,對于小白來說可能不是那么通俗易懂。對于了解一些,但沒有全方面概念的從業(yè)者來說,這本書是不可多的寶藏。對于本專業(yè)人士,書中的半導體行業(yè)發(fā)展歷程,發(fā)現問題,解決問題的全過程,也有非常不錯的參考價值。 以下是本書的部分目錄,后續(xù)內容我也會在之后給大家分享。
    發(fā)表于 12-21 16:32

    BQ7690x軟件開發(fā)指南

    電子發(fā)燒友網站提供《BQ7690x軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 11-07 10:19 ?1次下載
    BQ7690x<b class='flag-5'>軟件開發(fā)</b>指南

    TMS320C6201 DSP軟件開發(fā)技術

    電子發(fā)燒友網站提供《TMS320C6201 DSP軟件開發(fā)技術.pdf》資料免費下載
    發(fā)表于 10-26 09:25 ?0次下載
    TMS320C6201 DSP<b class='flag-5'>軟件開發(fā)</b>技術

    PGA460軟件開發(fā)指南

    電子發(fā)燒友網站提供《PGA460軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 10-09 10:30 ?7次下載
    PGA460<b class='flag-5'>軟件開發(fā)</b>指南

    PGA450-Q1軟件開發(fā)指南

    電子發(fā)燒友網站提供《PGA450-Q1軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-30 14:25 ?1次下載
    PGA450-Q1<b class='flag-5'>軟件開發(fā)</b>指南

    ECU電控軟件開發(fā)及測試介紹

    本文重點介紹符合AutoSar架構的應用軟件開發(fā)、MBD開發(fā)模式下的軟件質量評估與優(yōu)化方案、復雜場景下的ECU性能壓力測試方案。
    的頭像 發(fā)表于 09-26 14:25 ?4043次閱讀
    ECU電控<b class='flag-5'>軟件開發(fā)</b>及測試介紹

    大數據從業(yè)者必知必會的Hive SQL調優(yōu)技巧

    大數據從業(yè)者必知必會的Hive SQL調優(yōu)技巧 摘要 :在大數據領域中,Hive SQL被廣泛應用于數據倉庫的數據查詢和分析。然而,由于數據量龐大和復雜的查詢需求,Hive SQL查詢的性能往往
    的頭像 發(fā)表于 09-24 13:30 ?687次閱讀

    TUSS44x0軟件開發(fā)指南

    電子發(fā)燒友網站提供《TUSS44x0軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 09-14 10:59 ?0次下載
    TUSS44x0<b class='flag-5'>軟件開發(fā)</b>指南

    BQ769x2軟件開發(fā)指南

    電子發(fā)燒友網站提供《BQ769x2軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-26 09:12 ?1次下載
    BQ769x2<b class='flag-5'>軟件開發(fā)</b>指南

    軟件開發(fā)分為多少個階段

    軟件開發(fā)分為多少個階段 第一階段:需要分析及確認階段 系統(tǒng)需要分析階段,明確項目需求,確保所有利益相關者對項目目標、功能、性能、安全、用戶接口等方面有共同的理解和期望。 需求分析:對收集到的需求
    的頭像 發(fā)表于 08-21 14:27 ?1017次閱讀

    BQ769x2 軟件開發(fā)指南

    電子發(fā)燒友網站提供《BQ769x2 軟件開發(fā)指南.pdf》資料免費下載
    發(fā)表于 08-12 14:41 ?0次下載

    嵌入式軟件開發(fā)與AI整合

    嵌入式軟件開發(fā)與AI整合是當前技術發(fā)展的重要趨勢之一。隨著人工智能技術的快速發(fā)展,嵌入式系統(tǒng)越來越多地集成了AI算法,以實現更復雜的智能功能。以下是關于嵌入式軟件開發(fā)與AI整合的詳細分析
    的頭像 發(fā)表于 07-31 09:25 ?1343次閱讀
    嵌入式<b class='flag-5'>軟件開發(fā)</b>與AI整合