工程水平決定創新能力

2021-08-25 10:00:25 字數 4381 閱讀 3786

中國企業擁有世界上最強大的低成本製造體系,擁有最有潛力的廣闊市場以及最靈活最本土化的營銷體系,現在又有越來越多的企業把創新提到戰略高度,開始大力發展自己的研發和設計能力。但是中國企業依然很難持續製造出成功的產品。在乙個產品從最初的設計定義,到最終按時推向市場的一系列複雜環節上,大部分中國企業的管理經驗還停留在專案管理的階段上,只考慮到時間維度,而忽視了質量和成本的平衡。

其實,連線這些複雜環節的就是「工程」。關於工程,有各種各樣的定義,但是過濾掉眾多複雜的修飾,核心的無非是這樣一些字眼兒:

★應用技術、科學和機械知識,去設計材料、結構、機器、裝置、系統和流程,以完成預期的目標或發明;

★以最短的時間和精而少的人力。

相比較而言,微軟無疑是此中高手。回顧微軟的諸多產品windows、office、資料庫、瀏覽器等,都不是最初的原創者。但是微軟總是有能力快速把產品市場化,並持續推向成功,這背後是一套不斷成熟和完善的方**作支撐。

微軟亞洲工程院成立於2023年。不同於研究院,他們的重點在於最終產品的開發,7年間成績斐然。微軟ceo鮑爾默說:「微軟亞洲工程院締造了融技術創新、產品開發、研究成果轉換於一體的全新機構模式。」目前微軟5大產品研發方向——網際網路技術、移動技術、數字娛樂、windows工程以及面向新興市場創新技術和產品的孵化都在此設立了產品開發團隊。

《商業價值》雜誌不久前採訪了微軟亞洲工程院院長張巨集江博士。相信微軟的產品工程理念,對於其他行業的讀者也具有極強的實際意義。

q很多人都分不清工程和研發有什麼區別。工程到底是什麼?

a其實研發更多是強調某乙個技術,而工程更多的是把無數的技術怎麼融合到乙個產品中間去。在研究上,基本上不太講所謂的約束或者是妥協;而在工程上一定要有約束。有很多約束,乙個是成本約束、資源的約束,還有乙個是時間的約束,這些因素就更多了。

很多情況下,軟體因為本身有乙個創意的過程,所以大家會忽略它工程的性質。我們很容易誤解一件事情——我們給哪個公司外包了乙個軟體專案,把這叫工程,其實這不是工程,是乙個專案。工程是乙個設計和系統的流程。工程院很早做的一件事情,就是把微軟的產品開發理念加工了一下,在中國提出乙個產品開發的三足鼎立理念——專案經理、開發工程師和測試工程師一起工作,一起控制專案的進度。

舉個例子,在軟體工程上,產品最後整合要檢驗的時候,有乙個過程叫triage(分流),是說在戰場上進行戰地救護時,選擇救哪個、不救哪個傷員的過程,非常殘酷。但在戰場上,有限的資源,還要考慮恢復戰鬥力的需要,所以哪些送走,哪些傷員先不管,這是戰場醫生和**要做的一件事。對於軟體開發過程,已有成百上千的錯誤(bug),這時候你要把它分類,因為最後總是會有錯誤,你要知道哪些錯誤可以留,哪些不允許留。畢竟時間和資源都有限,總要有取捨,這需要測試、開發和專案經理反覆協調。測試工程師提供錯誤出現的頻度,而開發工程師則要提出修正錯誤需要的資源和時間,最終大家根據時間和資源來決定。

這是乙個非常複雜的過程。我用這個例子來說在乙個工程的過程中間,所牽扯到的方方面面很多。為什麼這麼強調流程,為什麼要強調一開始設計的時候,測試工程師就應該參與。因為從一開始就要想到,這個功能(feature)有沒有可測試性,這是乙個系統工程。

q的確是很複雜,整個工程體系,有沒有一些成熟的方**去管理這些東西呢?

a我剛才說到的三足鼎立,這是我們的方**。在流程過程上來看,任何乙個產品在開發過程中間,你要把它分成幾個里程碑。分的過程,也是一種方**。比如在第乙個里程碑要多花時間,因為還沒有程式設計,系統到了第二個里程碑還可以推倒重來,那麼到了第四個以後你可能就不能重來了。

我到今天做了6年了,也沒覺得自己是乙個所謂的工程專家。我下面有很多同事,他們是真正的專家。他們沒有技術背景,不是研究資料庫、人工智慧、搜尋引擎的,而是了解整個流程。當乙個新專案交給他,他能夠把整個專案分解成各個模組,這樣就避免了作坊式的做法。

q從研究院轉到工程院,你覺得最大的轉變是什麼?

a我當時轉做工程院的時候,我的老闆,也是整個全球研究院的院長對我說,做研究有很多優勢,別人只知道我們成功的東西,做10個專案有9個失敗了,你把它掃到地毯底下,別人都看不到了。但是做產品不一樣。做產品你做10件產品有9個成功,別人記住的是失敗的那個。從某種意義上,做工程失敗的可能性非常大,而成本也非常高。我覺得他其實強調了一點,在研究環境裡你是非常自由的,無所謂成功和失敗,因為失敗了證明這件事情不能做,本身也有積極的意義,你甚至還可以寫出**來,**一些失敗的原因。而做工程、做產品,最後只有乙個衡量——這個產品最後在市場上能不能賣出去?這裡面因素就多了,我們拋開市場的因素,還有技術因素、工程師因素,以及是否有很好的流程保證質量等等……

q聽你講了講,我覺得做工程院的院長要比做研究院長挑戰大得多?

a研發只要把握幾條,第乙個是好環境,第二能吸引好的人才。這兩條下面,作為院長,你要有比較好的悟性,能把握未來的發展方向。因為坦率地說,你不希望去干擾每個研究員做些什麼,但是大致的方向還是應該有所把握,可以通過獎勵機制,通過資源的分配來引導。所以,研究相對來說比較清晰、比較簡單。工程需要可控的因素很多,但事實上不可控的因素更多,要在可控和不可控之間進行平衡。

q您現在作為工程院的院長,每天工作的內容都是什麼呢?

a原來在研究院的時候,我們一年做一次院長回顧(review),基本上把整個院的專案有重點地過一遍,更多的是了解,大致知道我們的資源分配到哪些研究方向裡面去了。到工程院就是每個專案、每個里程碑都要有回顧。這種回顧真的是在做決定,而且你每個決定,都會看到成本和損失,以及產出。

q工程院對人才有什麼特殊要求嗎?

a做工程的人,需要具有兩個素質,乙個是對自己工作本身的技術很了解,第二要對工程的過程、流程要有一定的了解,這是對工程師的要求。

對於乙個管理人員,要求不僅對技術了解,對流程了解,還要有很好的執行力。在很多情況下,管理人員的判斷實際上很大程度上基於對技術和流程的了解,基於對資源和每個人能力的了解。我也會越來越強調人的抗壓能力。因為畢竟會有失敗,而且這種失敗,很多情況下不是自己可控的;加上技術發展也很快,我們每個人其實都承擔著很大的壓力。怎麼能夠保持樂觀的狀態,保持自己對於技術和工作的激情,我覺得都是非常重要的因素。

q工程院其實需要一些特別資深的人,在中國似乎這樣的人很難找?

a對,所謂資深的人,乙個是說純做技術的,做了10年,還在做技術。無論是做資料庫還是純程式設計,這樣的人少。因為我們的管理層,一線經理、二線經理甚至一直到總經理,都需要懂技術,而現在國內大部分人當了一線經理以後,就不再做程式設計了。而我們不僅要求一線經理要程式設計,二線經理還要做**檢查(code review)。

這個我覺得也不必特別失望。對我來說,認清了乙個現實,可以看到乙個國家的管理人才一定和它的工業水平是相當的。中國沒有很多具備大規模研究經驗的管理人員,因為沒有太多做大規模核心軟體的公司。

q再追問一下,怎樣描述現在研發、專案經理、產品經理之間的關係?現在產品經理很重要的工作就是定義乙個產品,和工程流程似乎有重合?

a我來說一下微軟怎麼做。首先,要把研究拿出去,因為微軟的技術研究是非常開放的,要開發乙個新的產品,不僅看研究院有什麼技術,還要看整個市場有什麼技術,所以我把研究拿開。對於乙個新產品,有幾個部門牽扯進來,乙個是工程部門,我剛才說到了專案經理和測試工程師、開發工程師。還有市場部,乙個叫產品管理,乙個叫產品規劃。產品管理更多地是和市場打交道,了解市場需求;產品規劃是拿到這些市場需求以後,如何定義乙個新的產品。比如定義平板電腦的產品,但是市場的定義是從使用者角度出發的。到了工程院這裡,我們要做的就是從工程的角度來定義什麼叫平板電腦——筆輸入、多觸點等等,把產品的概念分解成乙個功能列表(feature list),這就引入到工程這一層了。市場部會提出時間的需求,工程部會回應大概需要多長時間。然後開發工程師看特徵列表以後,會提出完成這些功能(feature)需要用哪些新的技術,我們有哪些成熟的技術,甚至是我們已經有的程式。

q專案啟動以後,是不是跟市場部的互動就會少很多了?

q我知道你對美國的工程課程和院校做了不少研究。你覺得從工程院的角度來看,現在中國的教育有哪些問題?

a我其實並不願意特別明確地去批評中國的教育體系,我覺得每個教育體系都有它的歷史原因。

如果說乙個比較普遍的建議,我們每個學校不應該去追求大而全,應該停下來想一想,教育的宗旨到底是什麼?在美國大部分的企業,包括微軟,到學校招人並不追求一定要碩士,大部分的軟體工程師是本科畢業。為什麼我們在國內反而要招碩士呢?我們碩士質量是不是就那麼高,我們的碩士是不是真的多學了多少東西,或者多學了多少有用的東西呢?我們學理工的人,知道技術換代很快,所以最終強調的是學習的能力,對技術的悟性,對於流程的理解,這些是比較根本的東西。如果我們學校的教育體系裡這些東西被忽略掉了,反而學了很多課程,而這些課程可能學的時候有一半已經過時了,這是不是很大的資源浪費?從這個角度來看,我們應該反省一下。

我比較喜歡美國的harvey mudd college。這個學校在國內很少有人聽到,是美國本科最好的學校,很多孩子要去這個學校,像伯克利都不會考慮的。這個學校一年只招100多個學生,總共只有不到600名學生,而且只有本科。它的教學宗旨強調三點——系統、設計、經驗,這就是工學院。而乙個理學院往往強調的是創意和思維,強調探索。所以理學院的課程更加鬆散一些,這邊的課程就耦合得很緊。

這個學校最有名的課程就是工程,它不分電子工程還是化學工程,強調的專業就是「工程」。課程強調的就是系統設計、通過實驗進行學習,最後乙個是專業性的實踐。它的課程設定強調的是技術的寬度和精專,然後強調的是跨領域,強調的是解決問題的能力。

微軟張巨集江 工程水平決定創新能力

在研究環境裡,無所謂成功和失敗,而做工程 做產品,最後只有乙個衡量 這個產品最後在市場上能不能賣出去?雖然中國號稱盛產工程師,雖然我國的教育體系被認為最適合培養工程師,但是,其實 工程 這個詞在中國是被完全忽視的。中國企業擁有世界上最強大的低成本製造體系,擁有最有潛力的廣闊市場以及最靈活最本土化的營...

技術水平與學習能力水平

我在思考乙個問題,本科與專科的的區別在那?差距在那?剛開始工作的時候,感覺大家都一樣沒啥太大的區別,就是乙個本本不一樣,技術掌握的水平不一樣。後來。我發現,我錯了,乙個本科和乙個專科的差距,不是本本,更不是大家的技術水平不一樣,而是,學習能力的差距,以前,老師i說,龜兔賽跑,烏龜獲得了勝利。我門就覺...

為何程式設計水平決定軟體質量

外部使用者要求 正確,高效,健壯,易用和可靠 內部維護人員要求 可維護 易讀,易讀,易debug,注釋清晰,容易擴充套件 內部測試人員要求 可測試,易用,易理解 企業產品化要求 1 可擴充套件,可移植,可配置,靈活,重用性高,模組和元件化 因此質量不是無中生有,是有具體的需求驅動,質量也是為了滿足某...